From f1517c19fd48627684e4cdf1128948c5991a3874 Mon Sep 17 00:00:00 2001 From: Ugljesa Jovanovic Date: Sat, 13 Jun 2020 10:06:38 +0200 Subject: [PATCH] Remove gitignored node modules --- .gitignore | 6 +- .../node_modules/.bin/_mocha | 647 - .../node_modules/.bin/he | 148 - .../node_modules/.bin/mkdirp | 33 - .../node_modules/.bin/mocha | 89 - .../node_modules/balanced-match/.npmignore | 5 - .../node_modules/balanced-match/LICENSE.md | 21 - .../node_modules/balanced-match/README.md | 91 - .../node_modules/balanced-match/index.js | 59 - .../node_modules/balanced-match/package.json | 77 - .../node_modules/brace-expansion/LICENSE | 21 - .../node_modules/brace-expansion/README.md | 129 - .../node_modules/brace-expansion/index.js | 201 - .../node_modules/brace-expansion/package.json | 75 - .../node_modules/browser-stdout/LICENSE | 5 - .../node_modules/browser-stdout/README.md | 40 - .../node_modules/browser-stdout/index.js | 25 - .../node_modules/browser-stdout/package.json | 46 - .../node_modules/commander/CHANGELOG.md | 356 - .../node_modules/commander/LICENSE | 22 - .../node_modules/commander/Readme.md | 408 - .../node_modules/commander/index.js | 1231 - .../node_modules/commander/package.json | 69 - .../node_modules/commander/typings/index.d.ts | 309 - .../node_modules/concat-map/.travis.yml | 4 - .../node_modules/concat-map/LICENSE | 18 - .../node_modules/concat-map/README.markdown | 62 - .../node_modules/concat-map/example/map.js | 6 - .../node_modules/concat-map/index.js | 13 - .../node_modules/concat-map/package.json | 88 - .../node_modules/concat-map/test/map.js | 39 - .../node_modules/debug/.coveralls.yml | 1 - .../node_modules/debug/.eslintrc | 14 - .../node_modules/debug/.npmignore | 9 - .../node_modules/debug/.travis.yml | 20 - .../node_modules/debug/CHANGELOG.md | 395 - .../node_modules/debug/LICENSE | 19 - .../node_modules/debug/Makefile | 58 - .../node_modules/debug/README.md | 368 - .../node_modules/debug/karma.conf.js | 70 - .../node_modules/debug/node.js | 1 - .../node_modules/debug/package.json | 82 - .../node_modules/debug/src/browser.js | 195 - .../node_modules/debug/src/debug.js | 225 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 186 - .../node_modules/diff/CONTRIBUTING.md | 39 - .../node_modules/diff/LICENSE | 31 - .../node_modules/diff/README.md | 211 - .../node_modules/diff/dist/diff.js | 1843 - .../node_modules/diff/dist/diff.min.js | 416 - .../node_modules/diff/lib/convert/dmp.js | 24 - .../node_modules/diff/lib/convert/xml.js | 35 - .../node_modules/diff/lib/diff/array.js | 24 - .../node_modules/diff/lib/diff/base.js | 235 - .../node_modules/diff/lib/diff/character.js | 17 - .../node_modules/diff/lib/diff/css.js | 21 - .../node_modules/diff/lib/diff/json.js | 108 - .../node_modules/diff/lib/diff/line.js | 50 - .../node_modules/diff/lib/diff/sentence.js | 21 - .../node_modules/diff/lib/diff/word.js | 70 - .../node_modules/diff/lib/index.js | 74 - .../node_modules/diff/lib/patch/apply.js | 180 - .../node_modules/diff/lib/patch/create.js | 148 - .../node_modules/diff/lib/patch/merge.js | 396 - .../node_modules/diff/lib/patch/parse.js | 147 - .../node_modules/diff/lib/util/array.js | 27 - .../diff/lib/util/distance-iterator.js | 47 - .../node_modules/diff/lib/util/params.js | 18 - .../node_modules/diff/package.json | 97 - .../node_modules/diff/release-notes.md | 247 - .../node_modules/diff/runtime.js | 3 - .../node_modules/diff/yarn.lock | 5729 -- .../escape-string-regexp/index.js | 11 - .../node_modules/escape-string-regexp/license | 21 - .../escape-string-regexp/package.json | 81 - .../escape-string-regexp/readme.md | 27 - .../node_modules/fs.realpath/LICENSE | 43 - .../node_modules/fs.realpath/README.md | 33 - .../node_modules/fs.realpath/index.js | 66 - .../node_modules/fs.realpath/old.js | 303 - .../node_modules/fs.realpath/package.json | 59 - .../node_modules/glob/LICENSE | 15 - .../node_modules/glob/README.md | 368 - .../node_modules/glob/changelog.md | 67 - .../node_modules/glob/common.js | 240 - .../node_modules/glob/glob.js | 790 - .../node_modules/glob/package.json | 76 - .../node_modules/glob/sync.js | 486 - .../node_modules/growl/.eslintrc.json | 14 - .../node_modules/growl/.tags | 195 - .../node_modules/growl/.tags1 | 166 - .../node_modules/growl/.travis.yml | 21 - .../node_modules/growl/History.md | 77 - .../node_modules/growl/Readme.md | 109 - .../node_modules/growl/lib/growl.js | 340 - .../node_modules/growl/package.json | 67 - .../node_modules/growl/test.js | 31 - .../node_modules/has-flag/index.js | 8 - .../node_modules/has-flag/license | 9 - .../node_modules/has-flag/package.json | 76 - .../node_modules/has-flag/readme.md | 70 - .../node_modules/he/LICENSE-MIT.txt | 20 - .../node_modules/he/README.md | 379 - .../node_modules/he/bin/he | 148 - .../node_modules/he/he.js | 342 - .../node_modules/he/man/he.1 | 78 - .../node_modules/he/package.json | 88 - .../node_modules/inflight/LICENSE | 15 - .../node_modules/inflight/README.md | 37 - .../node_modules/inflight/inflight.js | 54 - .../node_modules/inflight/package.json | 58 - .../node_modules/inherits/LICENSE | 16 - .../node_modules/inherits/README.md | 42 - .../node_modules/inherits/inherits.js | 9 - .../node_modules/inherits/inherits_browser.js | 27 - .../node_modules/inherits/package.json | 61 - .../node_modules/kotlin/README.md | 20 - .../node_modules/kotlin/kotlin.js | 49560 ---------------- .../node_modules/kotlin/kotlin.js.map | 1 - .../node_modules/kotlin/kotlin.meta.js | 2 - .../kotlin/kotlin/jquery/jquery.kjsm | Bin 1848 -> 0 bytes .../kotlin/kotlin/jquery/ui/ui.kjsm | Bin 762 -> 0 bytes .../kotlin/kotlin/annotation/annotation.kjsm | Bin 1232 -> 0 bytes .../kotlin/kotlin/kotlin/browser/browser.kjsm | Bin 264 -> 0 bytes .../kotlin/collections/collections.kjsm | Bin 148734 -> 0 bytes .../kotlin/comparisons/comparisons.kjsm | Bin 5539 -> 0 bytes .../kotlin/kotlin/contracts/contracts.kjsm | Bin 1517 -> 0 bytes .../kotlin/kotlin/coroutines/coroutines.kjsm | Bin 4072 -> 0 bytes .../coroutines/intrinsics/intrinsics.kjsm | Bin 1429 -> 0 bytes .../coroutines/js/internal/internal.kjsm | Bin 273 -> 0 bytes .../kotlin/kotlin/kotlin/dom/dom.kjsm | Bin 663 -> 0 bytes .../kotlin/experimental/experimental.kjsm | Bin 951 -> 0 bytes .../kotlin/kotlin/internal/internal.kjsm | Bin 2450 -> 0 bytes .../kotlin/kotlin/kotlin/io/io.kjsm | Bin 932 -> 0 bytes .../kotlin/kotlin/kotlin/js/js.kjsm | Bin 11511 -> 0 bytes .../kotlin/kotlin/kotlin/jvm/jvm.kjsm | Bin 1604 -> 0 bytes .../kotlin/kotlin/kotlin/kotlin.kjsm | Bin 22122 -> 0 bytes .../kotlin/kotlin/kotlin/math/math.kjsm | Bin 4801 -> 0 bytes .../kotlin/native/concurrent/concurrent.kjsm | Bin 479 -> 0 bytes .../kotlin/kotlin/properties/properties.kjsm | Bin 1268 -> 0 bytes .../kotlin/kotlin/kotlin/random/random.kjsm | Bin 2928 -> 0 bytes .../kotlin/kotlin/kotlin/ranges/ranges.kjsm | Bin 11359 -> 0 bytes .../kotlin/reflect/js/internal/internal.kjsm | Bin 3017 -> 0 bytes .../kotlin/kotlin/kotlin/reflect/reflect.kjsm | Bin 5033 -> 0 bytes .../kotlin/kotlin/sequences/sequences.kjsm | Bin 17159 -> 0 bytes .../kotlin/kotlin/kotlin/text/text.kjsm | Bin 24349 -> 0 bytes .../kotlin/org/khronos/webgl/webgl.kjsm | Bin 24241 -> 0 bytes .../kotlin/org/w3c/css/masking/masking.kjsm | Bin 753 -> 0 bytes .../org/w3c/dom/clipboard/clipboard.kjsm | Bin 890 -> 0 bytes .../kotlin/kotlin/org/w3c/dom/css/css.kjsm | Bin 8372 -> 0 bytes .../kotlin/kotlin/org/w3c/dom/dom.kjsm | Bin 81761 -> 0 bytes .../kotlin/org/w3c/dom/events/events.kjsm | Bin 6038 -> 0 bytes .../w3c/dom/mediacapture/mediacapture.kjsm | Bin 8095 -> 0 bytes .../kotlin/org/w3c/dom/parsing/parsing.kjsm | Bin 384 -> 0 bytes .../w3c/dom/pointerevents/pointerevents.kjsm | Bin 1723 -> 0 bytes .../kotlin/kotlin/org/w3c/dom/svg/svg.kjsm | Bin 13246 -> 0 bytes .../kotlin/kotlin/org/w3c/dom/url/url.kjsm | Bin 980 -> 0 bytes .../kotlin/kotlin/org/w3c/fetch/fetch.kjsm | Bin 3974 -> 0 bytes .../kotlin/kotlin/org/w3c/files/files.kjsm | Bin 1894 -> 0 bytes .../org/w3c/notifications/notifications.kjsm | Bin 2847 -> 0 bytes .../org/w3c/performance/performance.kjsm | Bin 1192 -> 0 bytes .../kotlin/org/w3c/workers/workers.kjsm | Bin 7027 -> 0 bytes .../kotlin/kotlin/org/w3c/xhr/xhr.kjsm | Bin 2580 -> 0 bytes .../kotlin/kotlin/root-package.kjsm | Bin 2787 -> 0 bytes .../node_modules/kotlin/package.json | 47 - .../node_modules/minimatch/LICENSE | 15 - .../node_modules/minimatch/README.md | 209 - .../node_modules/minimatch/minimatch.js | 923 - .../node_modules/minimatch/package.json | 64 - .../node_modules/minimist/.travis.yml | 4 - .../node_modules/minimist/LICENSE | 18 - .../node_modules/minimist/example/parse.js | 2 - .../node_modules/minimist/index.js | 187 - .../node_modules/minimist/package.json | 71 - .../node_modules/minimist/readme.markdown | 73 - .../node_modules/minimist/test/dash.js | 24 - .../minimist/test/default_bool.js | 20 - .../node_modules/minimist/test/dotted.js | 16 - .../node_modules/minimist/test/long.js | 31 - .../node_modules/minimist/test/parse.js | 318 - .../minimist/test/parse_modified.js | 9 - .../node_modules/minimist/test/short.js | 67 - .../node_modules/minimist/test/whitespace.js | 8 - .../node_modules/mkdirp/.travis.yml | 8 - .../node_modules/mkdirp/LICENSE | 21 - .../node_modules/mkdirp/bin/usage.txt | 12 - .../node_modules/mkdirp/examples/pow.js | 6 - .../node_modules/mkdirp/index.js | 98 - .../node_modules/mkdirp/package.json | 62 - .../node_modules/mkdirp/readme.markdown | 100 - .../node_modules/mkdirp/test/chmod.js | 41 - .../node_modules/mkdirp/test/clobber.js | 38 - .../node_modules/mkdirp/test/mkdirp.js | 28 - .../node_modules/mkdirp/test/opts_fs.js | 29 - .../node_modules/mkdirp/test/opts_fs_sync.js | 27 - .../node_modules/mkdirp/test/perm.js | 32 - .../node_modules/mkdirp/test/perm_sync.js | 36 - .../node_modules/mkdirp/test/race.js | 37 - .../node_modules/mkdirp/test/rel.js | 32 - .../node_modules/mkdirp/test/return.js | 25 - .../node_modules/mkdirp/test/return_sync.js | 24 - .../node_modules/mkdirp/test/root.js | 19 - .../node_modules/mkdirp/test/sync.js | 32 - .../node_modules/mkdirp/test/umask.js | 28 - .../node_modules/mkdirp/test/umask_sync.js | 32 - .../node_modules/mocha/CHANGELOG.md | 2000 - .../node_modules/mocha/LICENSE | 22 - .../node_modules/mocha/README.md | 104 - .../node_modules/mocha/bin/_mocha | 647 - .../node_modules/mocha/bin/mocha | 89 - .../node_modules/mocha/bin/options.js | 49 - .../node_modules/mocha/browser-entry.js | 191 - .../node_modules/mocha/index.js | 3 - .../node_modules/mocha/lib/browser/growl.js | 5 - .../mocha/lib/browser/progress.js | 119 - .../node_modules/mocha/lib/browser/tty.js | 13 - .../node_modules/mocha/lib/context.js | 101 - .../node_modules/mocha/lib/hook.js | 46 - .../node_modules/mocha/lib/interfaces/bdd.js | 114 - .../mocha/lib/interfaces/common.js | 160 - .../mocha/lib/interfaces/exports.js | 58 - .../mocha/lib/interfaces/index.js | 6 - .../mocha/lib/interfaces/qunit.js | 95 - .../node_modules/mocha/lib/interfaces/tdd.js | 102 - .../node_modules/mocha/lib/mocha.js | 613 - .../node_modules/mocha/lib/ms.js | 96 - .../node_modules/mocha/lib/pending.js | 12 - .../node_modules/mocha/lib/reporters/base.js | 540 - .../mocha/lib/reporters/base.js.orig | 498 - .../node_modules/mocha/lib/reporters/doc.js | 78 - .../node_modules/mocha/lib/reporters/dot.js | 74 - .../node_modules/mocha/lib/reporters/html.js | 388 - .../node_modules/mocha/lib/reporters/index.js | 19 - .../mocha/lib/reporters/json-stream.js | 69 - .../node_modules/mocha/lib/reporters/json.js | 127 - .../mocha/lib/reporters/json.js.orig | 128 - .../mocha/lib/reporters/landing.js | 100 - .../node_modules/mocha/lib/reporters/list.js | 69 - .../mocha/lib/reporters/markdown.js | 105 - .../node_modules/mocha/lib/reporters/min.js | 44 - .../node_modules/mocha/lib/reporters/nyan.js | 269 - .../mocha/lib/reporters/progress.js | 99 - .../node_modules/mocha/lib/reporters/spec.js | 89 - .../node_modules/mocha/lib/reporters/tap.js | 76 - .../node_modules/mocha/lib/reporters/xunit.js | 207 - .../node_modules/mocha/lib/runnable.js | 441 - .../node_modules/mocha/lib/runner.js | 1009 - .../node_modules/mocha/lib/suite.js | 427 - .../node_modules/mocha/lib/template.html | 18 - .../node_modules/mocha/lib/test.js | 46 - .../node_modules/mocha/lib/utils.js | 670 - .../node_modules/mocha/mocha.css | 326 - .../node_modules/mocha/mocha.js | 16046 ----- .../node_modules/mocha/package.json | 1848 - .../node_modules/ms/index.js | 152 - .../node_modules/ms/license.md | 21 - .../node_modules/ms/package.json | 69 - .../node_modules/ms/readme.md | 51 - .../node_modules/multiplatform-crypto.js | 3132 - .../node_modules/multiplatform-crypto.js.map | 1 - .../node_modules/multiplatform-crypto.meta.js | 1 - .../com/ionspin/kotlin/crypto/crypto.kjsm | Bin 894 -> 0 bytes .../kotlin/crypto/hash/blake2b/blake2b.kjsm | Bin 1925 -> 0 bytes .../com/ionspin/kotlin/crypto/hash/hash.kjsm | Bin 668 -> 0 bytes .../ionspin/kotlin/crypto/hash/sha/sha.kjsm | Bin 2614 -> 0 bytes .../kotlin/crypto/symmetric/symmetric.kjsm | Bin 4016 -> 0 bytes .../node_modules/once/LICENSE | 15 - .../node_modules/once/README.md | 79 - .../node_modules/once/once.js | 42 - .../node_modules/once/package.json | 67 - .../node_modules/path-is-absolute/index.js | 20 - .../node_modules/path-is-absolute/license | 21 - .../path-is-absolute/package.json | 75 - .../node_modules/path-is-absolute/readme.md | 59 - .../node_modules/supports-color/browser.js | 5 - .../node_modules/supports-color/index.js | 131 - .../node_modules/supports-color/license | 9 - .../node_modules/supports-color/package.json | 85 - .../node_modules/supports-color/readme.md | 66 - .../node_modules/wrappy/LICENSE | 15 - .../node_modules/wrappy/README.md | 36 - .../node_modules/wrappy/package.json | 59 - .../node_modules/wrappy/wrappy.js | 33 - 284 files changed, 5 insertions(+), 106647 deletions(-) delete mode 100755 multiplatform-crypto-delegated/node_modules/.bin/_mocha delete mode 100755 multiplatform-crypto-delegated/node_modules/.bin/he delete mode 100755 multiplatform-crypto-delegated/node_modules/.bin/mkdirp delete mode 100755 multiplatform-crypto-delegated/node_modules/.bin/mocha delete mode 100644 multiplatform-crypto-delegated/node_modules/balanced-match/.npmignore delete mode 100644 multiplatform-crypto-delegated/node_modules/balanced-match/LICENSE.md delete mode 100644 multiplatform-crypto-delegated/node_modules/balanced-match/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/balanced-match/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/balanced-match/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/brace-expansion/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/brace-expansion/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/brace-expansion/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/brace-expansion/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/browser-stdout/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/browser-stdout/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/browser-stdout/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/browser-stdout/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/commander/CHANGELOG.md delete mode 100644 multiplatform-crypto-delegated/node_modules/commander/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/commander/Readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/commander/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/commander/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/commander/typings/index.d.ts delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/.travis.yml delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/README.markdown delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/example/map.js delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/concat-map/test/map.js delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/.coveralls.yml delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/.eslintrc delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/.npmignore delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/.travis.yml delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/CHANGELOG.md delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/Makefile delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/karma.conf.js delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/node.js delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/src/browser.js delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/src/debug.js delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/src/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/debug/src/node.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/CONTRIBUTING.md delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/dist/diff.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/dist/diff.min.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/convert/dmp.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/convert/xml.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/array.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/base.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/character.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/css.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/json.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/line.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/sentence.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/diff/word.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/patch/apply.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/patch/create.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/patch/merge.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/patch/parse.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/util/array.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/util/distance-iterator.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/lib/util/params.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/release-notes.md delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/runtime.js delete mode 100644 multiplatform-crypto-delegated/node_modules/diff/yarn.lock delete mode 100644 multiplatform-crypto-delegated/node_modules/escape-string-regexp/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/escape-string-regexp/license delete mode 100644 multiplatform-crypto-delegated/node_modules/escape-string-regexp/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/escape-string-regexp/readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/fs.realpath/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/fs.realpath/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/fs.realpath/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/fs.realpath/old.js delete mode 100644 multiplatform-crypto-delegated/node_modules/fs.realpath/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/changelog.md delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/common.js delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/glob.js delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/glob/sync.js delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/.eslintrc.json delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/.tags delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/.tags1 delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/.travis.yml delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/History.md delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/Readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/lib/growl.js delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/growl/test.js delete mode 100644 multiplatform-crypto-delegated/node_modules/has-flag/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/has-flag/license delete mode 100644 multiplatform-crypto-delegated/node_modules/has-flag/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/has-flag/readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/he/LICENSE-MIT.txt delete mode 100644 multiplatform-crypto-delegated/node_modules/he/README.md delete mode 100755 multiplatform-crypto-delegated/node_modules/he/bin/he delete mode 100644 multiplatform-crypto-delegated/node_modules/he/he.js delete mode 100644 multiplatform-crypto-delegated/node_modules/he/man/he.1 delete mode 100644 multiplatform-crypto-delegated/node_modules/he/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/inflight/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/inflight/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/inflight/inflight.js delete mode 100644 multiplatform-crypto-delegated/node_modules/inflight/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/inherits/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/inherits/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/inherits/inherits.js delete mode 100644 multiplatform-crypto-delegated/node_modules/inherits/inherits_browser.js delete mode 100644 multiplatform-crypto-delegated/node_modules/inherits/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js.map delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin.meta.js delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/jquery/jquery.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/jquery/ui/ui.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/annotation/annotation.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/browser/browser.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/collections/collections.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/comparisons/comparisons.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/contracts/contracts.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/coroutines/coroutines.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/coroutines/intrinsics/intrinsics.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/coroutines/js/internal/internal.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/dom/dom.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/experimental/experimental.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/internal/internal.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/io/io.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/js/js.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/jvm/jvm.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/kotlin.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/math/math.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/native/concurrent/concurrent.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/properties/properties.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/random/random.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/ranges/ranges.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/reflect/js/internal/internal.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/reflect/reflect.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/sequences/sequences.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/text/text.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/khronos/webgl/webgl.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/css/masking/masking.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/clipboard/clipboard.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/css/css.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/dom.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/events/events.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/mediacapture/mediacapture.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/parsing/parsing.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/pointerevents/pointerevents.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/svg/svg.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/url/url.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/fetch/fetch.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/files/files.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/notifications/notifications.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/performance/performance.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/workers/workers.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/xhr/xhr.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/kotlin/root-package.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/kotlin/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/minimatch/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/minimatch/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/minimatch/minimatch.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimatch/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/.travis.yml delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/example/parse.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/readme.markdown delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/dash.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/default_bool.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/dotted.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/long.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/parse.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/parse_modified.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/short.js delete mode 100644 multiplatform-crypto-delegated/node_modules/minimist/test/whitespace.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/.travis.yml delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/bin/usage.txt delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/examples/pow.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/readme.markdown delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/chmod.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/clobber.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/mkdirp.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs_sync.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/perm.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/perm_sync.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/race.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/rel.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/return.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/return_sync.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/root.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/sync.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/umask.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mkdirp/test/umask_sync.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/CHANGELOG.md delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/README.md delete mode 100755 multiplatform-crypto-delegated/node_modules/mocha/bin/_mocha delete mode 100755 multiplatform-crypto-delegated/node_modules/mocha/bin/mocha delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/bin/options.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/browser-entry.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/browser/growl.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/browser/progress.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/browser/tty.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/context.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/hook.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/bdd.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/common.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/exports.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/qunit.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/tdd.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/mocha.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/ms.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/pending.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js.orig delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/doc.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/dot.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/html.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json-stream.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js.orig delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/landing.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/list.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/markdown.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/min.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/nyan.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/progress.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/spec.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/tap.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/xunit.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/runnable.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/runner.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/suite.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/template.html delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/test.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/lib/utils.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/mocha.css delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/mocha.js delete mode 100644 multiplatform-crypto-delegated/node_modules/mocha/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/ms/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/ms/license.md delete mode 100644 multiplatform-crypto-delegated/node_modules/ms/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/ms/readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js.map delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto.meta.js delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/crypto.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/blake2b/blake2b.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/hash.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/sha/sha.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/symmetric/symmetric.kjsm delete mode 100644 multiplatform-crypto-delegated/node_modules/once/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/once/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/once/once.js delete mode 100644 multiplatform-crypto-delegated/node_modules/once/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/path-is-absolute/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/path-is-absolute/license delete mode 100644 multiplatform-crypto-delegated/node_modules/path-is-absolute/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/path-is-absolute/readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/supports-color/browser.js delete mode 100644 multiplatform-crypto-delegated/node_modules/supports-color/index.js delete mode 100644 multiplatform-crypto-delegated/node_modules/supports-color/license delete mode 100644 multiplatform-crypto-delegated/node_modules/supports-color/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/supports-color/readme.md delete mode 100644 multiplatform-crypto-delegated/node_modules/wrappy/LICENSE delete mode 100644 multiplatform-crypto-delegated/node_modules/wrappy/README.md delete mode 100644 multiplatform-crypto-delegated/node_modules/wrappy/package.json delete mode 100644 multiplatform-crypto-delegated/node_modules/wrappy/wrappy.js diff --git a/.gitignore b/.gitignore index 868225a..d17c8f7 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,10 @@ build/ /package.json /multiplatform-crypto/src/jsMain/npm/node_modules /multiplatform-crypto/src/jsMain/npm/package-lock.json +/multiplatform-crypto-delegated/node_modules +/multiplatform-crypto-delegated/package.json +/multiplatform-crypto-delegated/package-lock.json + /sodiumWrapper/include/ /sodiumWrapper/lib/ /sodiumWrapper/ios-include/ @@ -24,4 +28,4 @@ build/ /sodiumWrapper/static-macos-x86-64/ /sodiumWrapper/static-mingw-x86-64/ /sodiumWrapper/static-tvos/ -/sodiumWrapper/static-watchos/ \ No newline at end of file +/sodiumWrapper/static-watchos/ diff --git a/multiplatform-crypto-delegated/node_modules/.bin/_mocha b/multiplatform-crypto-delegated/node_modules/.bin/_mocha deleted file mode 100755 index 7e2a47a..0000000 --- a/multiplatform-crypto-delegated/node_modules/.bin/_mocha +++ /dev/null @@ -1,647 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -/* eslint no-unused-vars: off */ - -/** - * Module dependencies. - */ - -const program = require('commander'); -const path = require('path'); -const fs = require('fs'); -const minimatch = require('minimatch'); -const resolve = path.resolve; -const exists = fs.existsSync; -const Mocha = require('../'); -const utils = Mocha.utils; -const interfaceNames = Object.keys(Mocha.interfaces); -const join = path.join; -const cwd = process.cwd(); -const getOptions = require('./options'); -const mocha = new Mocha(); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -const Date = global.Date; -const setTimeout = global.setTimeout; -const setInterval = global.setInterval; -const clearTimeout = global.clearTimeout; -const clearInterval = global.clearInterval; - -/** - * Exits Mocha when tests + code under test has finished execution (default) - * @param {number} code - Exit code; typically # of failures - */ -const exitLater = code => { - process.on('exit', () => { - process.exit(Math.min(code, 255)); - }); -}; - -/** - * Exits Mocha when Mocha itself has finished execution, regardless of - * what the tests or code under test is doing. - * @param {number} code - Exit code; typically # of failures - */ -const exit = code => { - const clampedCode = Math.min(code, 255); - let draining = 0; - - // Eagerly set the process's exit code in case stream.write doesn't - // execute its callback before the process terminates. - process.exitCode = clampedCode; - - // flush output for Node.js Windows pipe bug - // https://github.com/joyent/node/issues/6247 is just one bug example - // https://github.com/visionmedia/mocha/issues/333 has a good discussion - const done = () => { - if (!draining--) { - process.exit(clampedCode); - } - }; - - const streams = [process.stdout, process.stderr]; - - streams.forEach(stream => { - // submit empty write request and wait for completion - draining += 1; - stream.write('', done); - }); - - done(); -}; - -/** - * Parse list. - */ -const list = str => str.split(/ *, */); - -/** - * Parse multiple flag. - */ -const collect = (val, memo) => memo.concat(val); - -/** - * Hide the cursor. - */ -const hideCursor = () => { - process.stdout.write('\u001b[?25l'); -}; - -/** - * Show the cursor. - */ -const showCursor = () => { - process.stdout.write('\u001b[?25h'); -}; - -/** - * Stop play()ing. - */ -const stop = () => { - process.stdout.write('\u001b[2K'); - clearInterval(play.timer); -}; - -/** - * Play the given array of strings. - */ -const play = (arr, interval) => { - const len = arr.length; - interval = interval || 100; - let i = 0; - - play.timer = setInterval(() => { - const str = arr[i++ % len]; - process.stdout.write(`\u001b[0G${str}`); - }, interval); -}; - -/** - * Files. - */ - -let files = []; - -/** - * Globals. - */ - -let globals = []; - -/** - * Requires. - */ - -const requires = []; - -/** - * Images. - */ - -const images = { - fail: path.join(__dirname, '..', 'assets', 'growl', 'error.png'), - pass: path.join(__dirname, '..', 'assets', 'growl', 'ok.png') -}; - -// options - -program - .version( - JSON.parse( - fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8') - ).version - ) - .usage('[debug] [options] [files]') - .option( - '-A, --async-only', - 'force all tests to take a callback (async) or return a promise' - ) - .option('-c, --colors', 'force enabling of colors') - .option('-C, --no-colors', 'force disabling of colors') - .option('-G, --growl', 'enable growl notification support') - .option('-O, --reporter-options ', 'reporter-specific options') - .option('-R, --reporter ', 'specify the reporter to use', 'spec') - .option('-S, --sort', 'sort test files') - .option('-b, --bail', 'bail after first test failure') - .option('-d, --debug', "enable node's debugger, synonym for node --debug") - .option('-g, --grep ', 'only run tests matching ') - .option('-f, --fgrep ', 'only run tests containing ') - .option('-gc, --expose-gc', 'expose gc extension') - .option('-i, --invert', 'inverts --grep and --fgrep matches') - .option('-r, --require ', 'require the given module') - .option('-s, --slow ', '"slow" test threshold in milliseconds [75]') - .option('-t, --timeout ', 'set test-case timeout in milliseconds [2000]') - .option( - '-u, --ui ', - `specify user-interface (${interfaceNames.join('|')})`, - 'bdd' - ) - .option('-w, --watch', 'watch files for changes') - .option('--check-leaks', 'check for global variable leaks') - .option('--full-trace', 'display the full stack trace') - .option( - '--compilers :,...', - 'use the given module(s) to compile files', - list, - [] - ) - .option('--debug-brk', "enable node's debugger breaking on the first line") - .option( - '--globals ', - 'allow the given comma-delimited global [names]', - list, - [] - ) - .option('--es_staging', 'enable all staged features') - .option( - '--harmony<_classes,_generators,...>', - 'all node --harmony* flags are available' - ) - .option( - '--preserve-symlinks', - 'Instructs the module loader to preserve symbolic links when resolving and caching modules' - ) - .option('--icu-data-dir', 'include ICU data') - .option( - '--inline-diffs', - 'display actual/expected differences inline within each string' - ) - .option('--no-diff', 'do not show a diff on failure') - .option('--inspect', 'activate devtools in chrome') - .option( - '--inspect-brk', - 'activate devtools in chrome and break on the first line' - ) - .option('--interfaces', 'display available interfaces') - .option('--no-deprecation', 'silence deprecation warnings') - .option( - '--exit', - 'force shutdown of the event loop after test run: mocha will call process.exit' - ) - .option('--no-timeouts', 'disables timeouts, given implicitly with --debug') - .option('--no-warnings', 'silence all node process warnings') - .option('--opts ', 'specify opts path', 'test/mocha.opts') - .option('--perf-basic-prof', 'enable perf linux profiler (basic support)') - .option('--napi-modules', 'enable experimental NAPI modules') - .option('--prof', 'log statistical profiling information') - .option('--log-timer-events', 'Time events including external callbacks') - .option('--recursive', 'include sub directories') - .option('--reporters', 'display available reporters') - .option( - '--retries ', - 'set numbers of time to retry a failed test case' - ) - .option( - '--throw-deprecation', - 'throw an exception anytime a deprecated function is used' - ) - .option('--trace', 'trace function calls') - .option('--trace-deprecation', 'show stack traces on deprecations') - .option('--trace-warnings', 'show stack traces on node process warnings') - .option('--use_strict', 'enforce strict mode') - .option( - '--watch-extensions ,...', - 'additional extensions to monitor with --watch', - list, - ['js'] - ) - .option('--delay', 'wait for async suite definition') - .option('--allow-uncaught', 'enable uncaught errors to propagate') - .option('--forbid-only', 'causes test marked with only to fail the suite') - .option( - '--forbid-pending', - 'causes pending tests and test marked with skip to fail the suite' - ) - .option( - '--file ', - 'include a file to be ran during the suite', - collect, - [] - ) - .option('--exclude ', 'a file or glob pattern to ignore', collect, []); - -program._name = 'mocha'; - -// init command - -program - .command('init ') - .description('initialize a client-side mocha setup at ') - .action(path => { - const mkdir = require('mkdirp'); - mkdir.sync(path); - const css = fs.readFileSync(join(__dirname, '..', 'mocha.css')); - const js = fs.readFileSync(join(__dirname, '..', 'mocha.js')); - const tmpl = fs.readFileSync(join(__dirname, '..', 'lib/template.html')); - fs.writeFileSync(join(path, 'mocha.css'), css); - fs.writeFileSync(join(path, 'mocha.js'), js); - fs.writeFileSync(join(path, 'tests.js'), ''); - fs.writeFileSync(join(path, 'index.html'), tmpl); - process.exit(0); - }); - -// --globals - -program.on('option:globals', val => { - globals = globals.concat(list(val)); -}); - -// --reporters - -program.on('option:reporters', () => { - console.log(); - console.log(' dot - dot matrix'); - console.log(' doc - html documentation'); - console.log(' spec - hierarchical spec list'); - console.log(' json - single json object'); - console.log(' progress - progress bar'); - console.log(' list - spec-style listing'); - console.log(' tap - test-anything-protocol'); - console.log(' landing - unicode landing strip'); - console.log(' xunit - xunit reporter'); - console.log(' min - minimal reporter (great with --watch)'); - console.log(' json-stream - newline delimited json events'); - console.log(' markdown - markdown documentation (github flavour)'); - console.log(' nyan - nyan cat!'); - console.log(); - process.exit(); -}); - -// --interfaces - -program.on('option:interfaces', () => { - console.log(''); - interfaceNames.forEach(interfaceName => { - console.log(` ${interfaceName}`); - }); - console.log(''); - process.exit(); -}); - -// -r, --require - -module.paths.push(cwd, join(cwd, 'node_modules')); - -program.on('option:require', mod => { - const abs = exists(mod) || exists(`${mod}.js`); - if (abs) { - mod = resolve(mod); - } - requires.push(mod); -}); - -// If not already done, load mocha.opts -if (!process.env.LOADED_MOCHA_OPTS) { - getOptions(); -} - -// parse args - -program.parse(process.argv); - -// infinite stack traces - -Error.stackTraceLimit = Infinity; // TODO: config - -// reporter options - -const reporterOptions = {}; -if (program.reporterOptions !== undefined) { - program.reporterOptions.split(',').forEach(opt => { - const L = opt.split('='); - if (L.length > 2 || L.length === 0) { - throw new Error(`invalid reporter option '${opt}'`); - } else if (L.length === 2) { - reporterOptions[L[0]] = L[1]; - } else { - reporterOptions[L[0]] = true; - } - }); -} - -// reporter - -mocha.reporter(program.reporter, reporterOptions); - -// --no-colors - -if (!program.colors) { - mocha.useColors(false); -} - -// --colors - -if (~process.argv.indexOf('--colors') || ~process.argv.indexOf('-c')) { - mocha.useColors(true); -} - -// --inline-diffs - -if (program.inlineDiffs) { - mocha.useInlineDiffs(true); -} - -// --no-diff - -if (process.argv.indexOf('--no-diff') !== -1) { - mocha.hideDiff(true); -} - -// --slow - -if (program.slow) { - mocha.suite.slow(program.slow); -} - -// --no-timeouts - -if (!program.timeouts) { - mocha.enableTimeouts(false); -} - -// --timeout - -if (program.timeout) { - mocha.suite.timeout(program.timeout); -} - -// --bail - -mocha.suite.bail(program.bail); - -// --grep - -if (program.grep) { - mocha.grep(program.grep); -} - -// --fgrep - -if (program.fgrep) { - mocha.fgrep(program.fgrep); -} - -// --invert - -if (program.invert) { - mocha.invert(); -} - -// --check-leaks - -if (program.checkLeaks) { - mocha.checkLeaks(); -} - -// --stack-trace - -if (program.fullTrace) { - mocha.fullTrace(); -} - -// --growl - -if (program.growl) { - mocha.growl(); -} - -// --async-only - -if (program.asyncOnly) { - mocha.asyncOnly(); -} - -// --delay - -if (program.delay) { - mocha.delay(); -} - -// --allow-uncaught - -if (program.allowUncaught) { - mocha.allowUncaught(); -} - -// --globals - -mocha.globals(globals); - -// --retries - -if (program.retries) { - mocha.suite.retries(program.retries); -} - -// --forbid-only - -if (program.forbidOnly) mocha.forbidOnly(); - -// --forbid-pending - -if (program.forbidPending) mocha.forbidPending(); - -// custom compiler support - -if (program.compilers.length > 0) { - require('util').deprecate(() => {}, - '"--compilers" will be removed in a future version of Mocha; see https://git.io/vdcSr for more info')(); -} -const extensions = ['js']; -program.compilers.forEach(c => { - const idx = c.indexOf(':'); - const ext = c.slice(0, idx); - let mod = c.slice(idx + 1); - - if (mod[0] === '.') { - mod = join(process.cwd(), mod); - } - require(mod); - extensions.push(ext); - program.watchExtensions.push(ext); -}); - -// requires - -requires.forEach(mod => { - require(mod); -}); - -// interface - -mocha.ui(program.ui); - -// args - -const args = program.args; - -// default files to test/*.{js,coffee} - -if (!args.length) { - args.push('test'); -} - -args.forEach(arg => { - let newFiles; - try { - newFiles = utils.lookupFiles(arg, extensions, program.recursive); - } catch (err) { - if (err.message.indexOf('cannot resolve path') === 0) { - console.error( - `Warning: Could not find any test files matching pattern: ${arg}` - ); - return; - } - - throw err; - } - - if (typeof newFiles !== 'undefined') { - if (typeof newFiles === 'string') { - newFiles = [newFiles]; - } - newFiles = newFiles.filter(fileName => - program.exclude.every(pattern => !minimatch(fileName, pattern)) - ); - } - - files = files.concat(newFiles); -}); - -if (!files.length) { - console.error('No test files found'); - process.exit(1); -} - -// resolve -let fileArgs = program.file.map(path => resolve(path)); -files = files.map(path => resolve(path)); - -if (program.sort) { - files.sort(); -} - -// add files given through --file to be ran first -files = fileArgs.concat(files); - -// --watch - -let runner; -let loadAndRun; -let purge; -let rerun; - -if (program.watch) { - console.log(); - hideCursor(); - process.on('SIGINT', () => { - showCursor(); - console.log('\n'); - process.exit(130); - }); - - const watchFiles = utils.files(cwd, ['js'].concat(program.watchExtensions)); - let runAgain = false; - - loadAndRun = () => { - try { - mocha.files = files; - runAgain = false; - runner = mocha.run(() => { - runner = null; - if (runAgain) { - rerun(); - } - }); - } catch (e) { - console.log(e.stack); - } - }; - - purge = () => { - watchFiles.forEach(file => { - delete require.cache[file]; - }); - }; - - loadAndRun(); - - rerun = () => { - purge(); - stop(); - if (!program.grep) { - mocha.grep(null); - } - mocha.suite = mocha.suite.clone(); - mocha.suite.ctx = new Mocha.Context(); - mocha.ui(program.ui); - loadAndRun(); - }; - - utils.watch(watchFiles, () => { - runAgain = true; - if (runner) { - runner.abort(); - } else { - rerun(); - } - }); -} else { - // load - - mocha.files = files; - runner = mocha.run(program.exit ? exit : exitLater); -} - -process.on('SIGINT', () => { - runner.abort(); - - // This is a hack: - // Instead of `process.exit(130)`, set runner.failures to 130 (exit code for SIGINT) - // The amount of failures will be emitted as error code later - runner.failures = 130; -}); diff --git a/multiplatform-crypto-delegated/node_modules/.bin/he b/multiplatform-crypto-delegated/node_modules/.bin/he deleted file mode 100755 index cfdfd6c..0000000 --- a/multiplatform-crypto-delegated/node_modules/.bin/he +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/env node -(function() { - - var fs = require('fs'); - var he = require('../he.js'); - var strings = process.argv.splice(2); - var stdin = process.stdin; - var data; - var timeout; - var action; - var options = {}; - var log = console.log; - - var main = function() { - var option = strings[0]; - var count = 0; - - if (/^(?:-h|--help|undefined)$/.test(option)) { - log( - 'he v%s - https://mths.be/he', - he.version - ); - log([ - '\nUsage:\n', - '\the [--escape] string', - '\the [--encode] [--use-named-refs] [--everything] [--allow-unsafe] [--decimal] string', - '\the [--decode] [--attribute] [--strict] string', - '\the [-v | --version]', - '\the [-h | --help]', - '\nExamples:\n', - '\the --escape \\', - '\techo \'© 𝌆\' | he --decode' - ].join('\n')); - return process.exit(option ? 0 : 1); - } - - if (/^(?:-v|--version)$/.test(option)) { - log('v%s', he.version); - return process.exit(0); - } - - strings.forEach(function(string) { - // Process options - if (string == '--escape') { - action = 'escape'; - return; - } - if (string == '--encode') { - action = 'encode'; - return; - } - if (string == '--use-named-refs') { - action = 'encode'; - options.useNamedReferences = true; - return; - } - if (string == '--everything') { - action = 'encode'; - options.encodeEverything = true; - return; - } - if (string == '--allow-unsafe') { - action = 'encode'; - options.allowUnsafeSymbols = true; - return; - } - if (string == '--decimal') { - action = 'encode'; - options.decimal = true; - return; - } - if (string == '--decode') { - action = 'decode'; - return; - } - if (string == '--attribute') { - action = 'decode'; - options.isAttributeValue = true; - return; - } - if (string == '--strict') { - action = 'decode'; - options.strict = true; - return; - } - // Process string(s) - var result; - if (!action) { - log('Error: he requires at least one option and a string argument.'); - log('Try `he --help` for more information.'); - return process.exit(1); - } - try { - result = he[action](string, options); - log(result); - count++; - } catch(error) { - log(error.message + '\n'); - log('Error: failed to %s.', action); - log('If you think this is a bug in he, please report it:'); - log('https://github.com/mathiasbynens/he/issues/new'); - log( - '\nStack trace using he@%s:\n', - he.version - ); - log(error.stack); - return process.exit(1); - } - }); - if (!count) { - log('Error: he requires a string argument.'); - log('Try `he --help` for more information.'); - return process.exit(1); - } - // Return with exit status 0 outside of the `forEach` loop, in case - // multiple strings were passed in. - return process.exit(0); - }; - - if (stdin.isTTY) { - // handle shell arguments - main(); - } else { - // Either the script is called from within a non-TTY context, or `stdin` - // content is being piped in. - if (!process.stdout.isTTY) { - // The script was called from a non-TTY context. This is a rather uncommon - // use case we don’t actively support. However, we don’t want the script - // to wait forever in such cases, so… - timeout = setTimeout(function() { - // …if no piped data arrived after a whole minute, handle shell - // arguments instead. - main(); - }, 60000); - } - data = ''; - stdin.on('data', function(chunk) { - clearTimeout(timeout); - data += chunk; - }); - stdin.on('end', function() { - strings.push(data.trim()); - main(); - }); - stdin.resume(); - } - -}()); diff --git a/multiplatform-crypto-delegated/node_modules/.bin/mkdirp b/multiplatform-crypto-delegated/node_modules/.bin/mkdirp deleted file mode 100755 index d95de15..0000000 --- a/multiplatform-crypto-delegated/node_modules/.bin/mkdirp +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env node - -var mkdirp = require('../'); -var minimist = require('minimist'); -var fs = require('fs'); - -var argv = minimist(process.argv.slice(2), { - alias: { m: 'mode', h: 'help' }, - string: [ 'mode' ] -}); -if (argv.help) { - fs.createReadStream(__dirname + '/usage.txt').pipe(process.stdout); - return; -} - -var paths = argv._.slice(); -var mode = argv.mode ? parseInt(argv.mode, 8) : undefined; - -(function next () { - if (paths.length === 0) return; - var p = paths.shift(); - - if (mode === undefined) mkdirp(p, cb) - else mkdirp(p, mode, cb) - - function cb (err) { - if (err) { - console.error(err.message); - process.exit(1); - } - else next(); - } -})(); diff --git a/multiplatform-crypto-delegated/node_modules/.bin/mocha b/multiplatform-crypto-delegated/node_modules/.bin/mocha deleted file mode 100755 index 38d09fb..0000000 --- a/multiplatform-crypto-delegated/node_modules/.bin/mocha +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env node - -'use strict'; - -/** - * This tiny wrapper file checks for known node flags and appends them - * when found, before invoking the "real" _mocha(1) executable. - */ - -const spawn = require('child_process').spawn; -const path = require('path'); -const getOptions = require('./options'); -const args = [path.join(__dirname, '_mocha')]; - -// Load mocha.opts into process.argv -// Must be loaded here to handle node-specific options -getOptions(); - -process.argv.slice(2).forEach(arg => { - const flag = arg.split('=')[0]; - - switch (flag) { - case '-d': - args.unshift('--debug'); - args.push('--no-timeouts'); - break; - case 'debug': - case '--debug': - case '--debug-brk': - case '--inspect': - case '--inspect-brk': - args.unshift(arg); - args.push('--no-timeouts'); - break; - case '-gc': - case '--expose-gc': - args.unshift('--expose-gc'); - break; - case '--gc-global': - case '--es_staging': - case '--no-deprecation': - case '--no-warnings': - case '--prof': - case '--log-timer-events': - case '--throw-deprecation': - case '--trace-deprecation': - case '--trace-warnings': - case '--use_strict': - case '--allow-natives-syntax': - case '--perf-basic-prof': - case '--napi-modules': - args.unshift(arg); - break; - default: - if (arg.indexOf('--harmony') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--trace') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--icu-data-dir') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--max-old-space-size') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--preserve-symlinks') === 0) { - args.unshift(arg); - } else { - args.push(arg); - } - break; - } -}); - -const proc = spawn(process.execPath, args, { - stdio: 'inherit' -}); -proc.on('exit', (code, signal) => { - process.on('exit', () => { - if (signal) { - process.kill(process.pid, signal); - } else { - process.exit(code); - } - }); -}); - -// terminate children. -process.on('SIGINT', () => { - proc.kill('SIGINT'); // calls runner.abort() - proc.kill('SIGTERM'); // if that didn't work, we're probably in an infinite loop, so make it die. -}); diff --git a/multiplatform-crypto-delegated/node_modules/balanced-match/.npmignore b/multiplatform-crypto-delegated/node_modules/balanced-match/.npmignore deleted file mode 100644 index ae5d8c3..0000000 --- a/multiplatform-crypto-delegated/node_modules/balanced-match/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -test -.gitignore -.travis.yml -Makefile -example.js diff --git a/multiplatform-crypto-delegated/node_modules/balanced-match/LICENSE.md b/multiplatform-crypto-delegated/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e4..0000000 --- a/multiplatform-crypto-delegated/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/balanced-match/README.md b/multiplatform-crypto-delegated/node_modules/balanced-match/README.md deleted file mode 100644 index 08e918c..0000000 --- a/multiplatform-crypto-delegated/node_modules/balanced-match/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/balanced-match/index.js b/multiplatform-crypto-delegated/node_modules/balanced-match/index.js deleted file mode 100644 index 1685a76..0000000 --- a/multiplatform-crypto-delegated/node_modules/balanced-match/index.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/multiplatform-crypto-delegated/node_modules/balanced-match/package.json b/multiplatform-crypto-delegated/node_modules/balanced-match/package.json deleted file mode 100644 index 8a7a0f5..0000000 --- a/multiplatform-crypto-delegated/node_modules/balanced-match/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_from": "balanced-match@^1.0.0", - "_id": "balanced-match@1.0.0", - "_inBundle": false, - "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "_location": "/balanced-match", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "balanced-match@^1.0.0", - "name": "balanced-match", - "escapedName": "balanced-match", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767", - "_spec": "balanced-match@^1.0.0", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/brace-expansion", - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/balanced-match/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "license": "MIT", - "main": "index.js", - "name": "balanced-match", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "scripts": { - "bench": "make bench", - "test": "make test" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "version": "1.0.0" -} diff --git a/multiplatform-crypto-delegated/node_modules/brace-expansion/LICENSE b/multiplatform-crypto-delegated/node_modules/brace-expansion/LICENSE deleted file mode 100644 index de32266..0000000 --- a/multiplatform-crypto-delegated/node_modules/brace-expansion/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Julian Gruber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/brace-expansion/README.md b/multiplatform-crypto-delegated/node_modules/brace-expansion/README.md deleted file mode 100644 index 6b4e0e1..0000000 --- a/multiplatform-crypto-delegated/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) -[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## Sponsors - -This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! - -Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/brace-expansion/index.js b/multiplatform-crypto-delegated/node_modules/brace-expansion/index.js deleted file mode 100644 index 0478be8..0000000 --- a/multiplatform-crypto-delegated/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,201 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} - diff --git a/multiplatform-crypto-delegated/node_modules/brace-expansion/package.json b/multiplatform-crypto-delegated/node_modules/brace-expansion/package.json deleted file mode 100644 index e1f261e..0000000 --- a/multiplatform-crypto-delegated/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_from": "brace-expansion@^1.1.7", - "_id": "brace-expansion@1.1.11", - "_inBundle": false, - "_integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "_location": "/brace-expansion", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "brace-expansion@^1.1.7", - "name": "brace-expansion", - "escapedName": "brace-expansion", - "rawSpec": "^1.1.7", - "saveSpec": null, - "fetchSpec": "^1.1.7" - }, - "_requiredBy": [ - "/minimatch" - ], - "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "_shasum": "3c7fcbf529d87226f3d2f52b966ff5271eb441dd", - "_spec": "brace-expansion@^1.1.7", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/minimatch", - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/brace-expansion/issues" - }, - "bundleDependencies": false, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "deprecated": false, - "description": "Brace expansion as known from sh/bash", - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "keywords": [], - "license": "MIT", - "main": "index.js", - "name": "brace-expansion", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "scripts": { - "bench": "matcha test/perf/bench.js", - "gentest": "bash test/generate.sh", - "test": "tape test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "version": "1.1.11" -} diff --git a/multiplatform-crypto-delegated/node_modules/browser-stdout/LICENSE b/multiplatform-crypto-delegated/node_modules/browser-stdout/LICENSE deleted file mode 100644 index 775f6ce..0000000 --- a/multiplatform-crypto-delegated/node_modules/browser-stdout/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Copyright 2018 kumavis - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/browser-stdout/README.md b/multiplatform-crypto-delegated/node_modules/browser-stdout/README.md deleted file mode 100644 index f32028a..0000000 --- a/multiplatform-crypto-delegated/node_modules/browser-stdout/README.md +++ /dev/null @@ -1,40 +0,0 @@ -### wat? - -`process.stdout` in your browser. - -### wai? - -iono. cuz hakz. - -### hau? - -```js -var BrowserStdout = require('browser-stdout') - -myStream.pipe(BrowserStdout()) -``` - -### monkey - -You can monkey-patch `process.stdout` for your dependency graph like this: - -``` -process.stdout = require('browser-stdout')() -var coolTool = require('module-that-uses-stdout-somewhere-in-its-depths') -``` - -### opts - -opts are passed directly to `stream.Writable`. -additionally, a label arg can be used to label console output. - -```js -BrowserStdout({ - objectMode: true, - label: 'dataz', -}) -``` - -### ur doin it rong - -i accept pr's. \ No newline at end of file diff --git a/multiplatform-crypto-delegated/node_modules/browser-stdout/index.js b/multiplatform-crypto-delegated/node_modules/browser-stdout/index.js deleted file mode 100644 index daf39c3..0000000 --- a/multiplatform-crypto-delegated/node_modules/browser-stdout/index.js +++ /dev/null @@ -1,25 +0,0 @@ -var WritableStream = require('stream').Writable -var inherits = require('util').inherits - -module.exports = BrowserStdout - - -inherits(BrowserStdout, WritableStream) - -function BrowserStdout(opts) { - if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) - - opts = opts || {} - WritableStream.call(this, opts) - this.label = (opts.label !== undefined) ? opts.label : 'stdout' -} - -BrowserStdout.prototype._write = function(chunks, encoding, cb) { - var output = chunks.toString ? chunks.toString() : chunks - if (this.label === false) { - console.log(output) - } else { - console.log(this.label+':', output) - } - process.nextTick(cb) -} diff --git a/multiplatform-crypto-delegated/node_modules/browser-stdout/package.json b/multiplatform-crypto-delegated/node_modules/browser-stdout/package.json deleted file mode 100644 index 1c78074..0000000 --- a/multiplatform-crypto-delegated/node_modules/browser-stdout/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "_from": "browser-stdout@1.3.1", - "_id": "browser-stdout@1.3.1", - "_inBundle": false, - "_integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "_location": "/browser-stdout", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "browser-stdout@1.3.1", - "name": "browser-stdout", - "escapedName": "browser-stdout", - "rawSpec": "1.3.1", - "saveSpec": null, - "fetchSpec": "1.3.1" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "_shasum": "baa559ee14ced73452229bad7326467c61fabd60", - "_spec": "browser-stdout@1.3.1", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "kumavis" - }, - "bugs": { - "url": "https://github.com/kumavis/browser-stdout/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "`process.stdout` in your browser.", - "homepage": "https://github.com/kumavis/browser-stdout#readme", - "license": "ISC", - "main": "index.js", - "name": "browser-stdout", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/kumavis/browser-stdout.git" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "version": "1.3.1" -} diff --git a/multiplatform-crypto-delegated/node_modules/commander/CHANGELOG.md b/multiplatform-crypto-delegated/node_modules/commander/CHANGELOG.md deleted file mode 100644 index 5e2f813..0000000 --- a/multiplatform-crypto-delegated/node_modules/commander/CHANGELOG.md +++ /dev/null @@ -1,356 +0,0 @@ - -2.15.0 / 2018-03-07 -================== - - * Update downloads badge to point to graph of downloads over time instead of duplicating link to npm - * Arguments description - -2.14.1 / 2018-02-07 -================== - - * Fix typing of help function - -2.14.0 / 2018-02-05 -================== - - * only register the option:version event once - * Fixes issue #727: Passing empty string for option on command is set to undefined - * enable eqeqeq rule - * resolves #754 add linter configuration to project - * resolves #560 respect custom name for version option - * document how to override the version flag - * document using options per command - -2.13.0 / 2018-01-09 -================== - - * Do not print default for --no- - * remove trailing spaces in command help - * Update CI's Node.js to LTS and latest version - * typedefs: Command and Option types added to commander namespace - -2.12.2 / 2017-11-28 -================== - - * fix: typings are not shipped - -2.12.1 / 2017-11-23 -================== - - * Move @types/node to dev dependency - -2.12.0 / 2017-11-22 -================== - - * add attributeName() method to Option objects - * Documentation updated for options with --no prefix - * typings: `outputHelp` takes a string as the first parameter - * typings: use overloads - * feat(typings): update to match js api - * Print default value in option help - * Fix translation error - * Fail when using same command and alias (#491) - * feat(typings): add help callback - * fix bug when description is add after command with options (#662) - * Format js code - * Rename History.md to CHANGELOG.md (#668) - * feat(typings): add typings to support TypeScript (#646) - * use current node - -2.11.0 / 2017-07-03 -================== - - * Fix help section order and padding (#652) - * feature: support for signals to subcommands (#632) - * Fixed #37, --help should not display first (#447) - * Fix translation errors. (#570) - * Add package-lock.json - * Remove engines - * Upgrade package version - * Prefix events to prevent conflicts between commands and options (#494) - * Removing dependency on graceful-readlink - * Support setting name in #name function and make it chainable - * Add .vscode directory to .gitignore (Visual Studio Code metadata) - * Updated link to ruby commander in readme files - -2.10.0 / 2017-06-19 -================== - - * Update .travis.yml. drop support for older node.js versions. - * Fix require arguments in README.md - * On SemVer you do not start from 0.0.1 - * Add missing semi colon in readme - * Add save param to npm install - * node v6 travis test - * Update Readme_zh-CN.md - * Allow literal '--' to be passed-through as an argument - * Test subcommand alias help - * link build badge to master branch - * Support the alias of Git style sub-command - * added keyword commander for better search result on npm - * Fix Sub-Subcommands - * test node.js stable - * Fixes TypeError when a command has an option called `--description` - * Update README.md to make it beginner friendly and elaborate on the difference between angled and square brackets. - * Add chinese Readme file - -2.9.0 / 2015-10-13 -================== - - * Add option `isDefault` to set default subcommand #415 @Qix- - * Add callback to allow filtering or post-processing of help text #434 @djulien - * Fix `undefined` text in help information close #414 #416 @zhiyelee - -2.8.1 / 2015-04-22 -================== - - * Back out `support multiline description` Close #396 #397 - -2.8.0 / 2015-04-07 -================== - - * Add `process.execArg` support, execution args like `--harmony` will be passed to sub-commands #387 @DigitalIO @zhiyelee - * Fix bug in Git-style sub-commands #372 @zhiyelee - * Allow commands to be hidden from help #383 @tonylukasavage - * When git-style sub-commands are in use, yet none are called, display help #382 @claylo - * Add ability to specify arguments syntax for top-level command #258 @rrthomas - * Support multiline descriptions #208 @zxqfox - -2.7.1 / 2015-03-11 -================== - - * Revert #347 (fix collisions when option and first arg have same name) which causes a bug in #367. - -2.7.0 / 2015-03-09 -================== - - * Fix git-style bug when installed globally. Close #335 #349 @zhiyelee - * Fix collisions when option and first arg have same name. Close #346 #347 @tonylukasavage - * Add support for camelCase on `opts()`. Close #353 @nkzawa - * Add node.js 0.12 and io.js to travis.yml - * Allow RegEx options. #337 @palanik - * Fixes exit code when sub-command failing. Close #260 #332 @pirelenito - * git-style `bin` files in $PATH make sense. Close #196 #327 @zhiyelee - -2.6.0 / 2014-12-30 -================== - - * added `Command#allowUnknownOption` method. Close #138 #318 @doozr @zhiyelee - * Add application description to the help msg. Close #112 @dalssoft - -2.5.1 / 2014-12-15 -================== - - * fixed two bugs incurred by variadic arguments. Close #291 @Quentin01 #302 @zhiyelee - -2.5.0 / 2014-10-24 -================== - - * add support for variadic arguments. Closes #277 @whitlockjc - -2.4.0 / 2014-10-17 -================== - - * fixed a bug on executing the coercion function of subcommands option. Closes #270 - * added `Command.prototype.name` to retrieve command name. Closes #264 #266 @tonylukasavage - * added `Command.prototype.opts` to retrieve all the options as a simple object of key-value pairs. Closes #262 @tonylukasavage - * fixed a bug on subcommand name. Closes #248 @jonathandelgado - * fixed function normalize doesn’t honor option terminator. Closes #216 @abbr - -2.3.0 / 2014-07-16 -================== - - * add command alias'. Closes PR #210 - * fix: Typos. Closes #99 - * fix: Unused fs module. Closes #217 - -2.2.0 / 2014-03-29 -================== - - * add passing of previous option value - * fix: support subcommands on windows. Closes #142 - * Now the defaultValue passed as the second argument of the coercion function. - -2.1.0 / 2013-11-21 -================== - - * add: allow cflag style option params, unit test, fixes #174 - -2.0.0 / 2013-07-18 -================== - - * remove input methods (.prompt, .confirm, etc) - -1.3.2 / 2013-07-18 -================== - - * add support for sub-commands to co-exist with the original command - -1.3.1 / 2013-07-18 -================== - - * add quick .runningCommand hack so you can opt-out of other logic when running a sub command - -1.3.0 / 2013-07-09 -================== - - * add EACCES error handling - * fix sub-command --help - -1.2.0 / 2013-06-13 -================== - - * allow "-" hyphen as an option argument - * support for RegExp coercion - -1.1.1 / 2012-11-20 -================== - - * add more sub-command padding - * fix .usage() when args are present. Closes #106 - -1.1.0 / 2012-11-16 -================== - - * add git-style executable subcommand support. Closes #94 - -1.0.5 / 2012-10-09 -================== - - * fix `--name` clobbering. Closes #92 - * fix examples/help. Closes #89 - -1.0.4 / 2012-09-03 -================== - - * add `outputHelp()` method. - -1.0.3 / 2012-08-30 -================== - - * remove invalid .version() defaulting - -1.0.2 / 2012-08-24 -================== - - * add `--foo=bar` support [arv] - * fix password on node 0.8.8. Make backward compatible with 0.6 [focusaurus] - -1.0.1 / 2012-08-03 -================== - - * fix issue #56 - * fix tty.setRawMode(mode) was moved to tty.ReadStream#setRawMode() (i.e. process.stdin.setRawMode()) - -1.0.0 / 2012-07-05 -================== - - * add support for optional option descriptions - * add defaulting of `.version()` to package.json's version - -0.6.1 / 2012-06-01 -================== - - * Added: append (yes or no) on confirmation - * Added: allow node.js v0.7.x - -0.6.0 / 2012-04-10 -================== - - * Added `.prompt(obj, callback)` support. Closes #49 - * Added default support to .choose(). Closes #41 - * Fixed the choice example - -0.5.1 / 2011-12-20 -================== - - * Fixed `password()` for recent nodes. Closes #36 - -0.5.0 / 2011-12-04 -================== - - * Added sub-command option support [itay] - -0.4.3 / 2011-12-04 -================== - - * Fixed custom help ordering. Closes #32 - -0.4.2 / 2011-11-24 -================== - - * Added travis support - * Fixed: line-buffered input automatically trimmed. Closes #31 - -0.4.1 / 2011-11-18 -================== - - * Removed listening for "close" on --help - -0.4.0 / 2011-11-15 -================== - - * Added support for `--`. Closes #24 - -0.3.3 / 2011-11-14 -================== - - * Fixed: wait for close event when writing help info [Jerry Hamlet] - -0.3.2 / 2011-11-01 -================== - - * Fixed long flag definitions with values [felixge] - -0.3.1 / 2011-10-31 -================== - - * Changed `--version` short flag to `-V` from `-v` - * Changed `.version()` so it's configurable [felixge] - -0.3.0 / 2011-10-31 -================== - - * Added support for long flags only. Closes #18 - -0.2.1 / 2011-10-24 -================== - - * "node": ">= 0.4.x < 0.7.0". Closes #20 - -0.2.0 / 2011-09-26 -================== - - * Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs] - -0.1.0 / 2011-08-24 -================== - - * Added support for custom `--help` output - -0.0.5 / 2011-08-18 -================== - - * Changed: when the user enters nothing prompt for password again - * Fixed issue with passwords beginning with numbers [NuckChorris] - -0.0.4 / 2011-08-15 -================== - - * Fixed `Commander#args` - -0.0.3 / 2011-08-15 -================== - - * Added default option value support - -0.0.2 / 2011-08-15 -================== - - * Added mask support to `Command#password(str[, mask], fn)` - * Added `Command#password(str, fn)` - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/multiplatform-crypto-delegated/node_modules/commander/LICENSE b/multiplatform-crypto-delegated/node_modules/commander/LICENSE deleted file mode 100644 index 10f997a..0000000 --- a/multiplatform-crypto-delegated/node_modules/commander/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2011 TJ Holowaychuk - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/commander/Readme.md b/multiplatform-crypto-delegated/node_modules/commander/Readme.md deleted file mode 100644 index a29da40..0000000 --- a/multiplatform-crypto-delegated/node_modules/commander/Readme.md +++ /dev/null @@ -1,408 +0,0 @@ -# Commander.js - - -[![Build Status](https://api.travis-ci.org/tj/commander.js.svg?branch=master)](http://travis-ci.org/tj/commander.js) -[![NPM Version](http://img.shields.io/npm/v/commander.svg?style=flat)](https://www.npmjs.org/package/commander) -[![NPM Downloads](https://img.shields.io/npm/dm/commander.svg?style=flat)](https://npmcharts.com/compare/commander?minimal=true) -[![Join the chat at https://gitter.im/tj/commander.js](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tj/commander.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - - The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/commander-rb/commander). - [API documentation](http://tj.github.com/commander.js/) - - -## Installation - - $ npm install commander --save - -## Option parsing - -Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options. - -```js -#!/usr/bin/env node - -/** - * Module dependencies. - */ - -var program = require('commander'); - -program - .version('0.1.0') - .option('-p, --peppers', 'Add peppers') - .option('-P, --pineapple', 'Add pineapple') - .option('-b, --bbq-sauce', 'Add bbq sauce') - .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble') - .parse(process.argv); - -console.log('you ordered a pizza with:'); -if (program.peppers) console.log(' - peppers'); -if (program.pineapple) console.log(' - pineapple'); -if (program.bbqSauce) console.log(' - bbq'); -console.log(' - %s cheese', program.cheese); -``` - -Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc. - -Note that multi-word options starting with `--no` prefix negate the boolean value of the following word. For example, `--no-sauce` sets the value of `program.sauce` to false. - -```js -#!/usr/bin/env node - -/** - * Module dependencies. - */ - -var program = require('commander'); - -program - .option('--no-sauce', 'Remove sauce') - .parse(process.argv); - -console.log('you ordered a pizza'); -if (program.sauce) console.log(' with sauce'); -else console.log(' without sauce'); -``` - -## Version option - -Calling the `version` implicitly adds the `-V` and `--version` options to the command. -When either of these options is present, the command prints the version number and exits. - - $ ./examples/pizza -V - 0.0.1 - -If you want your program to respond to the `-v` option instead of the `-V` option, simply pass custom flags to the `version` method using the same syntax as the `option` method. - -```js -program - .version('0.0.1', '-v, --version') -``` - -The version flags can be named anything, but the long option is required. - -## Command-specific options - -You can attach options to a command. - -```js -#!/usr/bin/env node - -var program = require('commander'); - -program - .command('rm ') - .option('-r, --recursive', 'Remove recursively') - .action(function (dir, cmd) { - console.log('remove ' + dir + (cmd.recursive ? ' recursively' : '')) - }) - -program.parse(process.argv) -``` - -A command's options are validated when the command is used. Any unknown options will be reported as an error. However, if an action-based command does not define an action, then the options are not validated. - -## Coercion - -```js -function range(val) { - return val.split('..').map(Number); -} - -function list(val) { - return val.split(','); -} - -function collect(val, memo) { - memo.push(val); - return memo; -} - -function increaseVerbosity(v, total) { - return total + 1; -} - -program - .version('0.1.0') - .usage('[options] ') - .option('-i, --integer ', 'An integer argument', parseInt) - .option('-f, --float ', 'A float argument', parseFloat) - .option('-r, --range ..', 'A range', range) - .option('-l, --list ', 'A list', list) - .option('-o, --optional [value]', 'An optional value') - .option('-c, --collect [value]', 'A repeatable value', collect, []) - .option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0) - .parse(process.argv); - -console.log(' int: %j', program.integer); -console.log(' float: %j', program.float); -console.log(' optional: %j', program.optional); -program.range = program.range || []; -console.log(' range: %j..%j', program.range[0], program.range[1]); -console.log(' list: %j', program.list); -console.log(' collect: %j', program.collect); -console.log(' verbosity: %j', program.verbose); -console.log(' args: %j', program.args); -``` - -## Regular Expression -```js -program - .version('0.1.0') - .option('-s --size ', 'Pizza size', /^(large|medium|small)$/i, 'medium') - .option('-d --drink [drink]', 'Drink', /^(coke|pepsi|izze)$/i) - .parse(process.argv); - -console.log(' size: %j', program.size); -console.log(' drink: %j', program.drink); -``` - -## Variadic arguments - - The last argument of a command can be variadic, and only the last argument. To make an argument variadic you have to - append `...` to the argument name. Here is an example: - -```js -#!/usr/bin/env node - -/** - * Module dependencies. - */ - -var program = require('commander'); - -program - .version('0.1.0') - .command('rmdir [otherDirs...]') - .action(function (dir, otherDirs) { - console.log('rmdir %s', dir); - if (otherDirs) { - otherDirs.forEach(function (oDir) { - console.log('rmdir %s', oDir); - }); - } - }); - -program.parse(process.argv); -``` - - An `Array` is used for the value of a variadic argument. This applies to `program.args` as well as the argument passed - to your action as demonstrated above. - -## Specify the argument syntax - -```js -#!/usr/bin/env node - -var program = require('commander'); - -program - .version('0.1.0') - .arguments(' [env]') - .action(function (cmd, env) { - cmdValue = cmd; - envValue = env; - }); - -program.parse(process.argv); - -if (typeof cmdValue === 'undefined') { - console.error('no command given!'); - process.exit(1); -} -console.log('command:', cmdValue); -console.log('environment:', envValue || "no environment given"); -``` -Angled brackets (e.g. ``) indicate required input. Square brackets (e.g. `[env]`) indicate optional input. - -## Git-style sub-commands - -```js -// file: ./examples/pm -var program = require('commander'); - -program - .version('0.1.0') - .command('install [name]', 'install one or more packages') - .command('search [query]', 'search with optional query') - .command('list', 'list packages installed', {isDefault: true}) - .parse(process.argv); -``` - -When `.command()` is invoked with a description argument, no `.action(callback)` should be called to handle sub-commands, otherwise there will be an error. This tells commander that you're going to use separate executables for sub-commands, much like `git(1)` and other popular tools. -The commander will try to search the executables in the directory of the entry script (like `./examples/pm`) with the name `program-command`, like `pm-install`, `pm-search`. - -Options can be passed with the call to `.command()`. Specifying `true` for `opts.noHelp` will remove the option from the generated help output. Specifying `true` for `opts.isDefault` will run the subcommand if no other subcommand is specified. - -If the program is designed to be installed globally, make sure the executables have proper modes, like `755`. - -### `--harmony` - -You can enable `--harmony` option in two ways: -* Use `#! /usr/bin/env node --harmony` in the sub-commands scripts. Note some os version don’t support this pattern. -* Use the `--harmony` option when call the command, like `node --harmony examples/pm publish`. The `--harmony` option will be preserved when spawning sub-command process. - -## Automated --help - - The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free: - -``` - $ ./examples/pizza --help - - Usage: pizza [options] - - An application for pizzas ordering - - Options: - - -h, --help output usage information - -V, --version output the version number - -p, --peppers Add peppers - -P, --pineapple Add pineapple - -b, --bbq Add bbq sauce - -c, --cheese Add the specified type of cheese [marble] - -C, --no-cheese You do not want any cheese - -``` - -## Custom help - - You can display arbitrary `-h, --help` information - by listening for "--help". Commander will automatically - exit once you are done so that the remainder of your program - does not execute causing undesired behaviours, for example - in the following executable "stuff" will not output when - `--help` is used. - -```js -#!/usr/bin/env node - -/** - * Module dependencies. - */ - -var program = require('commander'); - -program - .version('0.1.0') - .option('-f, --foo', 'enable some foo') - .option('-b, --bar', 'enable some bar') - .option('-B, --baz', 'enable some baz'); - -// must be before .parse() since -// node's emit() is immediate - -program.on('--help', function(){ - console.log(' Examples:'); - console.log(''); - console.log(' $ custom-help --help'); - console.log(' $ custom-help -h'); - console.log(''); -}); - -program.parse(process.argv); - -console.log('stuff'); -``` - -Yields the following help output when `node script-name.js -h` or `node script-name.js --help` are run: - -``` - -Usage: custom-help [options] - -Options: - - -h, --help output usage information - -V, --version output the version number - -f, --foo enable some foo - -b, --bar enable some bar - -B, --baz enable some baz - -Examples: - - $ custom-help --help - $ custom-help -h - -``` - -## .outputHelp(cb) - -Output help information without exiting. -Optional callback cb allows post-processing of help text before it is displayed. - -If you want to display help by default (e.g. if no command was provided), you can use something like: - -```js -var program = require('commander'); -var colors = require('colors'); - -program - .version('0.1.0') - .command('getstream [url]', 'get stream URL') - .parse(process.argv); - -if (!process.argv.slice(2).length) { - program.outputHelp(make_red); -} - -function make_red(txt) { - return colors.red(txt); //display the help text in red on the console -} -``` - -## .help(cb) - - Output help information and exit immediately. - Optional callback cb allows post-processing of help text before it is displayed. - -## Examples - -```js -var program = require('commander'); - -program - .version('0.1.0') - .option('-C, --chdir ', 'change the working directory') - .option('-c, --config ', 'set config path. defaults to ./deploy.conf') - .option('-T, --no-tests', 'ignore test hook'); - -program - .command('setup [env]') - .description('run setup commands for all envs') - .option("-s, --setup_mode [mode]", "Which setup mode to use") - .action(function(env, options){ - var mode = options.setup_mode || "normal"; - env = env || 'all'; - console.log('setup for %s env(s) with %s mode', env, mode); - }); - -program - .command('exec ') - .alias('ex') - .description('execute the given remote cmd') - .option("-e, --exec_mode ", "Which exec mode to use") - .action(function(cmd, options){ - console.log('exec "%s" using %s mode', cmd, options.exec_mode); - }).on('--help', function() { - console.log(' Examples:'); - console.log(); - console.log(' $ deploy exec sequential'); - console.log(' $ deploy exec async'); - console.log(); - }); - -program - .command('*') - .action(function(env){ - console.log('deploying "%s"', env); - }); - -program.parse(process.argv); -``` - -More Demos can be found in the [examples](https://github.com/tj/commander.js/tree/master/examples) directory. - -## License - -MIT diff --git a/multiplatform-crypto-delegated/node_modules/commander/index.js b/multiplatform-crypto-delegated/node_modules/commander/index.js deleted file mode 100644 index fb648be..0000000 --- a/multiplatform-crypto-delegated/node_modules/commander/index.js +++ /dev/null @@ -1,1231 +0,0 @@ -/** - * Module dependencies. - */ - -var EventEmitter = require('events').EventEmitter; -var spawn = require('child_process').spawn; -var path = require('path'); -var dirname = path.dirname; -var basename = path.basename; -var fs = require('fs'); - -/** - * Inherit `Command` from `EventEmitter.prototype`. - */ - -require('util').inherits(Command, EventEmitter); - -/** - * Expose the root command. - */ - -exports = module.exports = new Command(); - -/** - * Expose `Command`. - */ - -exports.Command = Command; - -/** - * Expose `Option`. - */ - -exports.Option = Option; - -/** - * Initialize a new `Option` with the given `flags` and `description`. - * - * @param {String} flags - * @param {String} description - * @api public - */ - -function Option(flags, description) { - this.flags = flags; - this.required = ~flags.indexOf('<'); - this.optional = ~flags.indexOf('['); - this.bool = !~flags.indexOf('-no-'); - flags = flags.split(/[ ,|]+/); - if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift(); - this.long = flags.shift(); - this.description = description || ''; -} - -/** - * Return option name. - * - * @return {String} - * @api private - */ - -Option.prototype.name = function() { - return this.long - .replace('--', '') - .replace('no-', ''); -}; - -/** - * Return option name, in a camelcase format that can be used - * as a object attribute key. - * - * @return {String} - * @api private - */ - -Option.prototype.attributeName = function() { - return camelcase(this.name()); -}; - -/** - * Check if `arg` matches the short or long flag. - * - * @param {String} arg - * @return {Boolean} - * @api private - */ - -Option.prototype.is = function(arg) { - return this.short === arg || this.long === arg; -}; - -/** - * Initialize a new `Command`. - * - * @param {String} name - * @api public - */ - -function Command(name) { - this.commands = []; - this.options = []; - this._execs = {}; - this._allowUnknownOption = false; - this._args = []; - this._name = name || ''; -} - -/** - * Add command `name`. - * - * The `.action()` callback is invoked when the - * command `name` is specified via __ARGV__, - * and the remaining arguments are applied to the - * function for access. - * - * When the `name` is "*" an un-matched command - * will be passed as the first arg, followed by - * the rest of __ARGV__ remaining. - * - * Examples: - * - * program - * .version('0.0.1') - * .option('-C, --chdir ', 'change the working directory') - * .option('-c, --config ', 'set config path. defaults to ./deploy.conf') - * .option('-T, --no-tests', 'ignore test hook') - * - * program - * .command('setup') - * .description('run remote setup commands') - * .action(function() { - * console.log('setup'); - * }); - * - * program - * .command('exec ') - * .description('run the given remote command') - * .action(function(cmd) { - * console.log('exec "%s"', cmd); - * }); - * - * program - * .command('teardown [otherDirs...]') - * .description('run teardown commands') - * .action(function(dir, otherDirs) { - * console.log('dir "%s"', dir); - * if (otherDirs) { - * otherDirs.forEach(function (oDir) { - * console.log('dir "%s"', oDir); - * }); - * } - * }); - * - * program - * .command('*') - * .description('deploy the given env') - * .action(function(env) { - * console.log('deploying "%s"', env); - * }); - * - * program.parse(process.argv); - * - * @param {String} name - * @param {String} [desc] for git-style sub-commands - * @return {Command} the new command - * @api public - */ - -Command.prototype.command = function(name, desc, opts) { - if (typeof desc === 'object' && desc !== null) { - opts = desc; - desc = null; - } - opts = opts || {}; - var args = name.split(/ +/); - var cmd = new Command(args.shift()); - - if (desc) { - cmd.description(desc); - this.executables = true; - this._execs[cmd._name] = true; - if (opts.isDefault) this.defaultExecutable = cmd._name; - } - cmd._noHelp = !!opts.noHelp; - this.commands.push(cmd); - cmd.parseExpectedArgs(args); - cmd.parent = this; - - if (desc) return this; - return cmd; -}; - -/** - * Define argument syntax for the top-level command. - * - * @api public - */ - -Command.prototype.arguments = function(desc) { - return this.parseExpectedArgs(desc.split(/ +/)); -}; - -/** - * Add an implicit `help [cmd]` subcommand - * which invokes `--help` for the given command. - * - * @api private - */ - -Command.prototype.addImplicitHelpCommand = function() { - this.command('help [cmd]', 'display help for [cmd]'); -}; - -/** - * Parse expected `args`. - * - * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`. - * - * @param {Array} args - * @return {Command} for chaining - * @api public - */ - -Command.prototype.parseExpectedArgs = function(args) { - if (!args.length) return; - var self = this; - args.forEach(function(arg) { - var argDetails = { - required: false, - name: '', - variadic: false - }; - - switch (arg[0]) { - case '<': - argDetails.required = true; - argDetails.name = arg.slice(1, -1); - break; - case '[': - argDetails.name = arg.slice(1, -1); - break; - } - - if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') { - argDetails.variadic = true; - argDetails.name = argDetails.name.slice(0, -3); - } - if (argDetails.name) { - self._args.push(argDetails); - } - }); - return this; -}; - -/** - * Register callback `fn` for the command. - * - * Examples: - * - * program - * .command('help') - * .description('display verbose help') - * .action(function() { - * // output help here - * }); - * - * @param {Function} fn - * @return {Command} for chaining - * @api public - */ - -Command.prototype.action = function(fn) { - var self = this; - var listener = function(args, unknown) { - // Parse any so-far unknown options - args = args || []; - unknown = unknown || []; - - var parsed = self.parseOptions(unknown); - - // Output help if necessary - outputHelpIfNecessary(self, parsed.unknown); - - // If there are still any unknown options, then we simply - // die, unless someone asked for help, in which case we give it - // to them, and then we die. - if (parsed.unknown.length > 0) { - self.unknownOption(parsed.unknown[0]); - } - - // Leftover arguments need to be pushed back. Fixes issue #56 - if (parsed.args.length) args = parsed.args.concat(args); - - self._args.forEach(function(arg, i) { - if (arg.required && args[i] == null) { - self.missingArgument(arg.name); - } else if (arg.variadic) { - if (i !== self._args.length - 1) { - self.variadicArgNotLast(arg.name); - } - - args[i] = args.splice(i); - } - }); - - // Always append ourselves to the end of the arguments, - // to make sure we match the number of arguments the user - // expects - if (self._args.length) { - args[self._args.length] = self; - } else { - args.push(self); - } - - fn.apply(self, args); - }; - var parent = this.parent || this; - var name = parent === this ? '*' : this._name; - parent.on('command:' + name, listener); - if (this._alias) parent.on('command:' + this._alias, listener); - return this; -}; - -/** - * Define option with `flags`, `description` and optional - * coercion `fn`. - * - * The `flags` string should contain both the short and long flags, - * separated by comma, a pipe or space. The following are all valid - * all will output this way when `--help` is used. - * - * "-p, --pepper" - * "-p|--pepper" - * "-p --pepper" - * - * Examples: - * - * // simple boolean defaulting to false - * program.option('-p, --pepper', 'add pepper'); - * - * --pepper - * program.pepper - * // => Boolean - * - * // simple boolean defaulting to true - * program.option('-C, --no-cheese', 'remove cheese'); - * - * program.cheese - * // => true - * - * --no-cheese - * program.cheese - * // => false - * - * // required argument - * program.option('-C, --chdir ', 'change the working directory'); - * - * --chdir /tmp - * program.chdir - * // => "/tmp" - * - * // optional argument - * program.option('-c, --cheese [type]', 'add cheese [marble]'); - * - * @param {String} flags - * @param {String} description - * @param {Function|*} [fn] or default - * @param {*} [defaultValue] - * @return {Command} for chaining - * @api public - */ - -Command.prototype.option = function(flags, description, fn, defaultValue) { - var self = this, - option = new Option(flags, description), - oname = option.name(), - name = option.attributeName(); - - // default as 3rd arg - if (typeof fn !== 'function') { - if (fn instanceof RegExp) { - var regex = fn; - fn = function(val, def) { - var m = regex.exec(val); - return m ? m[0] : def; - }; - } else { - defaultValue = fn; - fn = null; - } - } - - // preassign default value only for --no-*, [optional], or - if (!option.bool || option.optional || option.required) { - // when --no-* we make sure default is true - if (!option.bool) defaultValue = true; - // preassign only if we have a default - if (defaultValue !== undefined) { - self[name] = defaultValue; - option.defaultValue = defaultValue; - } - } - - // register the option - this.options.push(option); - - // when it's passed assign the value - // and conditionally invoke the callback - this.on('option:' + oname, function(val) { - // coercion - if (val !== null && fn) { - val = fn(val, self[name] === undefined ? defaultValue : self[name]); - } - - // unassigned or bool - if (typeof self[name] === 'boolean' || typeof self[name] === 'undefined') { - // if no value, bool true, and we have a default, then use it! - if (val == null) { - self[name] = option.bool - ? defaultValue || true - : false; - } else { - self[name] = val; - } - } else if (val !== null) { - // reassign - self[name] = val; - } - }); - - return this; -}; - -/** - * Allow unknown options on the command line. - * - * @param {Boolean} arg if `true` or omitted, no error will be thrown - * for unknown options. - * @api public - */ -Command.prototype.allowUnknownOption = function(arg) { - this._allowUnknownOption = arguments.length === 0 || arg; - return this; -}; - -/** - * Parse `argv`, settings options and invoking commands when defined. - * - * @param {Array} argv - * @return {Command} for chaining - * @api public - */ - -Command.prototype.parse = function(argv) { - // implicit help - if (this.executables) this.addImplicitHelpCommand(); - - // store raw args - this.rawArgs = argv; - - // guess name - this._name = this._name || basename(argv[1], '.js'); - - // github-style sub-commands with no sub-command - if (this.executables && argv.length < 3 && !this.defaultExecutable) { - // this user needs help - argv.push('--help'); - } - - // process argv - var parsed = this.parseOptions(this.normalize(argv.slice(2))); - var args = this.args = parsed.args; - - var result = this.parseArgs(this.args, parsed.unknown); - - // executable sub-commands - var name = result.args[0]; - - var aliasCommand = null; - // check alias of sub commands - if (name) { - aliasCommand = this.commands.filter(function(command) { - return command.alias() === name; - })[0]; - } - - if (this._execs[name] && typeof this._execs[name] !== 'function') { - return this.executeSubCommand(argv, args, parsed.unknown); - } else if (aliasCommand) { - // is alias of a subCommand - args[0] = aliasCommand._name; - return this.executeSubCommand(argv, args, parsed.unknown); - } else if (this.defaultExecutable) { - // use the default subcommand - args.unshift(this.defaultExecutable); - return this.executeSubCommand(argv, args, parsed.unknown); - } - - return result; -}; - -/** - * Execute a sub-command executable. - * - * @param {Array} argv - * @param {Array} args - * @param {Array} unknown - * @api private - */ - -Command.prototype.executeSubCommand = function(argv, args, unknown) { - args = args.concat(unknown); - - if (!args.length) this.help(); - if (args[0] === 'help' && args.length === 1) this.help(); - - // --help - if (args[0] === 'help') { - args[0] = args[1]; - args[1] = '--help'; - } - - // executable - var f = argv[1]; - // name of the subcommand, link `pm-install` - var bin = basename(f, '.js') + '-' + args[0]; - - // In case of globally installed, get the base dir where executable - // subcommand file should be located at - var baseDir, - link = fs.lstatSync(f).isSymbolicLink() ? fs.readlinkSync(f) : f; - - // when symbolink is relative path - if (link !== f && link.charAt(0) !== '/') { - link = path.join(dirname(f), link); - } - baseDir = dirname(link); - - // prefer local `./` to bin in the $PATH - var localBin = path.join(baseDir, bin); - - // whether bin file is a js script with explicit `.js` extension - var isExplicitJS = false; - if (exists(localBin + '.js')) { - bin = localBin + '.js'; - isExplicitJS = true; - } else if (exists(localBin)) { - bin = localBin; - } - - args = args.slice(1); - - var proc; - if (process.platform !== 'win32') { - if (isExplicitJS) { - args.unshift(bin); - // add executable arguments to spawn - args = (process.execArgv || []).concat(args); - - proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] }); - } else { - proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] }); - } - } else { - args.unshift(bin); - proc = spawn(process.execPath, args, { stdio: 'inherit' }); - } - - var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP']; - signals.forEach(function(signal) { - process.on(signal, function() { - if (proc.killed === false && proc.exitCode === null) { - proc.kill(signal); - } - }); - }); - proc.on('close', process.exit.bind(process)); - proc.on('error', function(err) { - if (err.code === 'ENOENT') { - console.error('\n %s(1) does not exist, try --help\n', bin); - } else if (err.code === 'EACCES') { - console.error('\n %s(1) not executable. try chmod or run with root\n', bin); - } - process.exit(1); - }); - - // Store the reference to the child process - this.runningCommand = proc; -}; - -/** - * Normalize `args`, splitting joined short flags. For example - * the arg "-abc" is equivalent to "-a -b -c". - * This also normalizes equal sign and splits "--abc=def" into "--abc def". - * - * @param {Array} args - * @return {Array} - * @api private - */ - -Command.prototype.normalize = function(args) { - var ret = [], - arg, - lastOpt, - index; - - for (var i = 0, len = args.length; i < len; ++i) { - arg = args[i]; - if (i > 0) { - lastOpt = this.optionFor(args[i - 1]); - } - - if (arg === '--') { - // Honor option terminator - ret = ret.concat(args.slice(i)); - break; - } else if (lastOpt && lastOpt.required) { - ret.push(arg); - } else if (arg.length > 1 && arg[0] === '-' && arg[1] !== '-') { - arg.slice(1).split('').forEach(function(c) { - ret.push('-' + c); - }); - } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) { - ret.push(arg.slice(0, index), arg.slice(index + 1)); - } else { - ret.push(arg); - } - } - - return ret; -}; - -/** - * Parse command `args`. - * - * When listener(s) are available those - * callbacks are invoked, otherwise the "*" - * event is emitted and those actions are invoked. - * - * @param {Array} args - * @return {Command} for chaining - * @api private - */ - -Command.prototype.parseArgs = function(args, unknown) { - var name; - - if (args.length) { - name = args[0]; - if (this.listeners('command:' + name).length) { - this.emit('command:' + args.shift(), args, unknown); - } else { - this.emit('command:*', args); - } - } else { - outputHelpIfNecessary(this, unknown); - - // If there were no args and we have unknown options, - // then they are extraneous and we need to error. - if (unknown.length > 0) { - this.unknownOption(unknown[0]); - } - } - - return this; -}; - -/** - * Return an option matching `arg` if any. - * - * @param {String} arg - * @return {Option} - * @api private - */ - -Command.prototype.optionFor = function(arg) { - for (var i = 0, len = this.options.length; i < len; ++i) { - if (this.options[i].is(arg)) { - return this.options[i]; - } - } -}; - -/** - * Parse options from `argv` returning `argv` - * void of these options. - * - * @param {Array} argv - * @return {Array} - * @api public - */ - -Command.prototype.parseOptions = function(argv) { - var args = [], - len = argv.length, - literal, - option, - arg; - - var unknownOptions = []; - - // parse options - for (var i = 0; i < len; ++i) { - arg = argv[i]; - - // literal args after -- - if (literal) { - args.push(arg); - continue; - } - - if (arg === '--') { - literal = true; - continue; - } - - // find matching Option - option = this.optionFor(arg); - - // option is defined - if (option) { - // requires arg - if (option.required) { - arg = argv[++i]; - if (arg == null) return this.optionMissingArgument(option); - this.emit('option:' + option.name(), arg); - // optional arg - } else if (option.optional) { - arg = argv[i + 1]; - if (arg == null || (arg[0] === '-' && arg !== '-')) { - arg = null; - } else { - ++i; - } - this.emit('option:' + option.name(), arg); - // bool - } else { - this.emit('option:' + option.name()); - } - continue; - } - - // looks like an option - if (arg.length > 1 && arg[0] === '-') { - unknownOptions.push(arg); - - // If the next argument looks like it might be - // an argument for this option, we pass it on. - // If it isn't, then it'll simply be ignored - if ((i + 1) < argv.length && argv[i + 1][0] !== '-') { - unknownOptions.push(argv[++i]); - } - continue; - } - - // arg - args.push(arg); - } - - return { args: args, unknown: unknownOptions }; -}; - -/** - * Return an object containing options as key-value pairs - * - * @return {Object} - * @api public - */ -Command.prototype.opts = function() { - var result = {}, - len = this.options.length; - - for (var i = 0; i < len; i++) { - var key = this.options[i].attributeName(); - result[key] = key === this._versionOptionName ? this._version : this[key]; - } - return result; -}; - -/** - * Argument `name` is missing. - * - * @param {String} name - * @api private - */ - -Command.prototype.missingArgument = function(name) { - console.error(); - console.error(" error: missing required argument `%s'", name); - console.error(); - process.exit(1); -}; - -/** - * `Option` is missing an argument, but received `flag` or nothing. - * - * @param {String} option - * @param {String} flag - * @api private - */ - -Command.prototype.optionMissingArgument = function(option, flag) { - console.error(); - if (flag) { - console.error(" error: option `%s' argument missing, got `%s'", option.flags, flag); - } else { - console.error(" error: option `%s' argument missing", option.flags); - } - console.error(); - process.exit(1); -}; - -/** - * Unknown option `flag`. - * - * @param {String} flag - * @api private - */ - -Command.prototype.unknownOption = function(flag) { - if (this._allowUnknownOption) return; - console.error(); - console.error(" error: unknown option `%s'", flag); - console.error(); - process.exit(1); -}; - -/** - * Variadic argument with `name` is not the last argument as required. - * - * @param {String} name - * @api private - */ - -Command.prototype.variadicArgNotLast = function(name) { - console.error(); - console.error(" error: variadic arguments must be last `%s'", name); - console.error(); - process.exit(1); -}; - -/** - * Set the program version to `str`. - * - * This method auto-registers the "-V, --version" flag - * which will print the version number when passed. - * - * @param {String} str - * @param {String} [flags] - * @return {Command} for chaining - * @api public - */ - -Command.prototype.version = function(str, flags) { - if (arguments.length === 0) return this._version; - this._version = str; - flags = flags || '-V, --version'; - var versionOption = new Option(flags, 'output the version number'); - this._versionOptionName = versionOption.long.substr(2) || 'version'; - this.options.push(versionOption); - this.on('option:' + this._versionOptionName, function() { - process.stdout.write(str + '\n'); - process.exit(0); - }); - return this; -}; - -/** - * Set the description to `str`. - * - * @param {String} str - * @param {Object} argsDescription - * @return {String|Command} - * @api public - */ - -Command.prototype.description = function(str, argsDescription) { - if (arguments.length === 0) return this._description; - this._description = str; - this._argsDescription = argsDescription; - return this; -}; - -/** - * Set an alias for the command - * - * @param {String} alias - * @return {String|Command} - * @api public - */ - -Command.prototype.alias = function(alias) { - var command = this; - if (this.commands.length !== 0) { - command = this.commands[this.commands.length - 1]; - } - - if (arguments.length === 0) return command._alias; - - if (alias === command._name) throw new Error('Command alias can\'t be the same as its name'); - - command._alias = alias; - return this; -}; - -/** - * Set / get the command usage `str`. - * - * @param {String} str - * @return {String|Command} - * @api public - */ - -Command.prototype.usage = function(str) { - var args = this._args.map(function(arg) { - return humanReadableArgName(arg); - }); - - var usage = '[options]' + - (this.commands.length ? ' [command]' : '') + - (this._args.length ? ' ' + args.join(' ') : ''); - - if (arguments.length === 0) return this._usage || usage; - this._usage = str; - - return this; -}; - -/** - * Get or set the name of the command - * - * @param {String} str - * @return {String|Command} - * @api public - */ - -Command.prototype.name = function(str) { - if (arguments.length === 0) return this._name; - this._name = str; - return this; -}; - -/** - * Return prepared commands. - * - * @return {Array} - * @api private - */ - -Command.prototype.prepareCommands = function() { - return this.commands.filter(function(cmd) { - return !cmd._noHelp; - }).map(function(cmd) { - var args = cmd._args.map(function(arg) { - return humanReadableArgName(arg); - }).join(' '); - - return [ - cmd._name + - (cmd._alias ? '|' + cmd._alias : '') + - (cmd.options.length ? ' [options]' : '') + - (args ? ' ' + args : ''), - cmd._description - ]; - }); -}; - -/** - * Return the largest command length. - * - * @return {Number} - * @api private - */ - -Command.prototype.largestCommandLength = function() { - var commands = this.prepareCommands(); - return commands.reduce(function(max, command) { - return Math.max(max, command[0].length); - }, 0); -}; - -/** - * Return the largest option length. - * - * @return {Number} - * @api private - */ - -Command.prototype.largestOptionLength = function() { - var options = [].slice.call(this.options); - options.push({ - flags: '-h, --help' - }); - return options.reduce(function(max, option) { - return Math.max(max, option.flags.length); - }, 0); -}; - -/** - * Return the largest arg length. - * - * @return {Number} - * @api private - */ - -Command.prototype.largestArgLength = function() { - return this._args.reduce(function(max, arg) { - return Math.max(max, arg.name.length); - }, 0); -}; - -/** - * Return the pad width. - * - * @return {Number} - * @api private - */ - -Command.prototype.padWidth = function() { - var width = this.largestOptionLength(); - if (this._argsDescription && this._args.length) { - if (this.largestArgLength() > width) { - width = this.largestArgLength(); - } - } - - if (this.commands && this.commands.length) { - if (this.largestCommandLength() > width) { - width = this.largestCommandLength(); - } - } - - return width; -}; - -/** - * Return help for options. - * - * @return {String} - * @api private - */ - -Command.prototype.optionHelp = function() { - var width = this.padWidth(); - - // Append the help information - return this.options.map(function(option) { - return pad(option.flags, width) + ' ' + option.description + - ((option.bool && option.defaultValue !== undefined) ? ' (default: ' + option.defaultValue + ')' : ''); - }).concat([pad('-h, --help', width) + ' ' + 'output usage information']) - .join('\n'); -}; - -/** - * Return command help documentation. - * - * @return {String} - * @api private - */ - -Command.prototype.commandHelp = function() { - if (!this.commands.length) return ''; - - var commands = this.prepareCommands(); - var width = this.padWidth(); - - return [ - ' Commands:', - '', - commands.map(function(cmd) { - var desc = cmd[1] ? ' ' + cmd[1] : ''; - return (desc ? pad(cmd[0], width) : cmd[0]) + desc; - }).join('\n').replace(/^/gm, ' '), - '' - ].join('\n'); -}; - -/** - * Return program help documentation. - * - * @return {String} - * @api private - */ - -Command.prototype.helpInformation = function() { - var desc = []; - if (this._description) { - desc = [ - ' ' + this._description, - '' - ]; - - var argsDescription = this._argsDescription; - if (argsDescription && this._args.length) { - var width = this.padWidth(); - desc.push(' Arguments:'); - desc.push(''); - this._args.forEach(function(arg) { - desc.push(' ' + pad(arg.name, width) + ' ' + argsDescription[arg.name]); - }); - desc.push(''); - } - } - - var cmdName = this._name; - if (this._alias) { - cmdName = cmdName + '|' + this._alias; - } - var usage = [ - '', - ' Usage: ' + cmdName + ' ' + this.usage(), - '' - ]; - - var cmds = []; - var commandHelp = this.commandHelp(); - if (commandHelp) cmds = [commandHelp]; - - var options = [ - ' Options:', - '', - '' + this.optionHelp().replace(/^/gm, ' '), - '' - ]; - - return usage - .concat(desc) - .concat(options) - .concat(cmds) - .join('\n'); -}; - -/** - * Output help information for this command - * - * @api public - */ - -Command.prototype.outputHelp = function(cb) { - if (!cb) { - cb = function(passthru) { - return passthru; - }; - } - process.stdout.write(cb(this.helpInformation())); - this.emit('--help'); -}; - -/** - * Output help information and exit. - * - * @api public - */ - -Command.prototype.help = function(cb) { - this.outputHelp(cb); - process.exit(); -}; - -/** - * Camel-case the given `flag` - * - * @param {String} flag - * @return {String} - * @api private - */ - -function camelcase(flag) { - return flag.split('-').reduce(function(str, word) { - return str + word[0].toUpperCase() + word.slice(1); - }); -} - -/** - * Pad `str` to `width`. - * - * @param {String} str - * @param {Number} width - * @return {String} - * @api private - */ - -function pad(str, width) { - var len = Math.max(0, width - str.length); - return str + Array(len + 1).join(' '); -} - -/** - * Output help information if necessary - * - * @param {Command} command to output help for - * @param {Array} array of options to search for -h or --help - * @api private - */ - -function outputHelpIfNecessary(cmd, options) { - options = options || []; - for (var i = 0; i < options.length; i++) { - if (options[i] === '--help' || options[i] === '-h') { - cmd.outputHelp(); - process.exit(0); - } - } -} - -/** - * Takes an argument an returns its human readable equivalent for help usage. - * - * @param {Object} arg - * @return {String} - * @api private - */ - -function humanReadableArgName(arg) { - var nameOutput = arg.name + (arg.variadic === true ? '...' : ''); - - return arg.required - ? '<' + nameOutput + '>' - : '[' + nameOutput + ']'; -} - -// for versions before node v0.8 when there weren't `fs.existsSync` -function exists(file) { - try { - if (fs.statSync(file).isFile()) { - return true; - } - } catch (e) { - return false; - } -} diff --git a/multiplatform-crypto-delegated/node_modules/commander/package.json b/multiplatform-crypto-delegated/node_modules/commander/package.json deleted file mode 100644 index 19a3c3c..0000000 --- a/multiplatform-crypto-delegated/node_modules/commander/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_from": "commander@2.15.1", - "_id": "commander@2.15.1", - "_inBundle": false, - "_integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "_location": "/commander", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "commander@2.15.1", - "name": "commander", - "escapedName": "commander", - "rawSpec": "2.15.1", - "saveSpec": null, - "fetchSpec": "2.15.1" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "_shasum": "df46e867d0fc2aec66a34662b406a9ccafff5b0f", - "_spec": "commander@2.15.1", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "bugs": { - "url": "https://github.com/tj/commander.js/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "the complete solution for node.js command-line programs", - "devDependencies": { - "@types/node": "^7.0.55", - "eslint": "^3.19.0", - "should": "^11.2.1", - "sinon": "^2.4.1", - "standard": "^10.0.3", - "typescript": "^2.7.2" - }, - "files": [ - "index.js", - "typings/index.d.ts" - ], - "homepage": "https://github.com/tj/commander.js#readme", - "keywords": [ - "commander", - "command", - "option", - "parser" - ], - "license": "MIT", - "main": "index", - "name": "commander", - "repository": { - "type": "git", - "url": "git+https://github.com/tj/commander.js.git" - }, - "scripts": { - "lint": "eslint index.js", - "test": "make test && npm run test-typings", - "test-typings": "node_modules/typescript/bin/tsc -p tsconfig.json" - }, - "typings": "typings/index.d.ts", - "version": "2.15.1" -} diff --git a/multiplatform-crypto-delegated/node_modules/commander/typings/index.d.ts b/multiplatform-crypto-delegated/node_modules/commander/typings/index.d.ts deleted file mode 100644 index 4830767..0000000 --- a/multiplatform-crypto-delegated/node_modules/commander/typings/index.d.ts +++ /dev/null @@ -1,309 +0,0 @@ -// Type definitions for commander 2.11 -// Project: https://github.com/visionmedia/commander.js -// Definitions by: Alan Agius , Marcelo Dezem , vvakame , Jules Randolph -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -declare namespace local { - - class Option { - flags: string; - required: boolean; - optional: boolean; - bool: boolean; - short?: string; - long: string; - description: string; - - /** - * Initialize a new `Option` with the given `flags` and `description`. - * - * @param {string} flags - * @param {string} [description] - */ - constructor(flags: string, description?: string); - } - - class Command extends NodeJS.EventEmitter { - [key: string]: any; - - args: string[]; - - /** - * Initialize a new `Command`. - * - * @param {string} [name] - */ - constructor(name?: string); - - /** - * Set the program version to `str`. - * - * This method auto-registers the "-V, --version" flag - * which will print the version number when passed. - * - * @param {string} str - * @param {string} [flags] - * @returns {Command} for chaining - */ - version(str: string, flags?: string): Command; - - /** - * Add command `name`. - * - * The `.action()` callback is invoked when the - * command `name` is specified via __ARGV__, - * and the remaining arguments are applied to the - * function for access. - * - * When the `name` is "*" an un-matched command - * will be passed as the first arg, followed by - * the rest of __ARGV__ remaining. - * - * @example - * program - * .version('0.0.1') - * .option('-C, --chdir ', 'change the working directory') - * .option('-c, --config ', 'set config path. defaults to ./deploy.conf') - * .option('-T, --no-tests', 'ignore test hook') - * - * program - * .command('setup') - * .description('run remote setup commands') - * .action(function() { - * console.log('setup'); - * }); - * - * program - * .command('exec ') - * .description('run the given remote command') - * .action(function(cmd) { - * console.log('exec "%s"', cmd); - * }); - * - * program - * .command('teardown [otherDirs...]') - * .description('run teardown commands') - * .action(function(dir, otherDirs) { - * console.log('dir "%s"', dir); - * if (otherDirs) { - * otherDirs.forEach(function (oDir) { - * console.log('dir "%s"', oDir); - * }); - * } - * }); - * - * program - * .command('*') - * .description('deploy the given env') - * .action(function(env) { - * console.log('deploying "%s"', env); - * }); - * - * program.parse(process.argv); - * - * @param {string} name - * @param {string} [desc] for git-style sub-commands - * @param {CommandOptions} [opts] command options - * @returns {Command} the new command - */ - command(name: string, desc?: string, opts?: commander.CommandOptions): Command; - - /** - * Define argument syntax for the top-level command. - * - * @param {string} desc - * @returns {Command} for chaining - */ - arguments(desc: string): Command; - - /** - * Parse expected `args`. - * - * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`. - * - * @param {string[]} args - * @returns {Command} for chaining - */ - parseExpectedArgs(args: string[]): Command; - - /** - * Register callback `fn` for the command. - * - * @example - * program - * .command('help') - * .description('display verbose help') - * .action(function() { - * // output help here - * }); - * - * @param {(...args: any[]) => void} fn - * @returns {Command} for chaining - */ - action(fn: (...args: any[]) => void): Command; - - /** - * Define option with `flags`, `description` and optional - * coercion `fn`. - * - * The `flags` string should contain both the short and long flags, - * separated by comma, a pipe or space. The following are all valid - * all will output this way when `--help` is used. - * - * "-p, --pepper" - * "-p|--pepper" - * "-p --pepper" - * - * @example - * // simple boolean defaulting to false - * program.option('-p, --pepper', 'add pepper'); - * - * --pepper - * program.pepper - * // => Boolean - * - * // simple boolean defaulting to true - * program.option('-C, --no-cheese', 'remove cheese'); - * - * program.cheese - * // => true - * - * --no-cheese - * program.cheese - * // => false - * - * // required argument - * program.option('-C, --chdir ', 'change the working directory'); - * - * --chdir /tmp - * program.chdir - * // => "/tmp" - * - * // optional argument - * program.option('-c, --cheese [type]', 'add cheese [marble]'); - * - * @param {string} flags - * @param {string} [description] - * @param {((arg1: any, arg2: any) => void) | RegExp} [fn] function or default - * @param {*} [defaultValue] - * @returns {Command} for chaining - */ - option(flags: string, description?: string, fn?: ((arg1: any, arg2: any) => void) | RegExp, defaultValue?: any): Command; - option(flags: string, description?: string, defaultValue?: any): Command; - - /** - * Allow unknown options on the command line. - * - * @param {boolean} [arg] if `true` or omitted, no error will be thrown for unknown options. - * @returns {Command} for chaining - */ - allowUnknownOption(arg?: boolean): Command; - - /** - * Parse `argv`, settings options and invoking commands when defined. - * - * @param {string[]} argv - * @returns {Command} for chaining - */ - parse(argv: string[]): Command; - - /** - * Parse options from `argv` returning `argv` void of these options. - * - * @param {string[]} argv - * @returns {ParseOptionsResult} - */ - parseOptions(argv: string[]): commander.ParseOptionsResult; - - /** - * Return an object containing options as key-value pairs - * - * @returns {{[key: string]: string}} - */ - opts(): { [key: string]: string }; - - /** - * Set the description to `str`. - * - * @param {string} str - * @return {(Command | string)} - */ - description(str: string): Command; - description(): string; - - /** - * Set an alias for the command. - * - * @param {string} alias - * @return {(Command | string)} - */ - alias(alias: string): Command; - alias(): string; - - /** - * Set or get the command usage. - * - * @param {string} str - * @return {(Command | string)} - */ - usage(str: string): Command; - usage(): string; - - /** - * Set the name of the command. - * - * @param {string} str - * @return {Command} - */ - name(str: string): Command; - - /** - * Get the name of the command. - * - * @return {string} - */ - name(): string; - - /** - * Output help information for this command. - * - * @param {(str: string) => string} [cb] - */ - outputHelp(cb?: (str: string) => string): void; - - /** Output help information and exit. - * - * @param {(str: string) => string} [cb] - */ - help(cb?: (str: string) => string): void; - } - -} - -declare namespace commander { - - type Command = local.Command - - type Option = local.Option - - interface CommandOptions { - noHelp?: boolean; - isDefault?: boolean; - } - - interface ParseOptionsResult { - args: string[]; - unknown: string[]; - } - - interface CommanderStatic extends Command { - Command: typeof local.Command; - Option: typeof local.Option; - CommandOptions: CommandOptions; - ParseOptionsResult: ParseOptionsResult; - } - -} - -declare const commander: commander.CommanderStatic; -export = commander; diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/.travis.yml b/multiplatform-crypto-delegated/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/LICENSE b/multiplatform-crypto-delegated/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/README.markdown b/multiplatform-crypto-delegated/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/example/map.js b/multiplatform-crypto-delegated/node_modules/concat-map/example/map.js deleted file mode 100644 index 3365621..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/index.js b/multiplatform-crypto-delegated/node_modules/concat-map/index.js deleted file mode 100644 index b29a781..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/package.json b/multiplatform-crypto-delegated/node_modules/concat-map/package.json deleted file mode 100644 index fc3f237..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_from": "concat-map@0.0.1", - "_id": "concat-map@0.0.1", - "_inBundle": false, - "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "_location": "/concat-map", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "concat-map@0.0.1", - "name": "concat-map", - "escapedName": "concat-map", - "rawSpec": "0.0.1", - "saveSpec": null, - "fetchSpec": "0.0.1" - }, - "_requiredBy": [ - "/brace-expansion" - ], - "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_spec": "concat-map@0.0.1", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/brace-expansion", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "bugs": { - "url": "https://github.com/substack/node-concat-map/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "concatenative mapdashery", - "devDependencies": { - "tape": "~2.4.0" - }, - "directories": { - "example": "example", - "test": "test" - }, - "homepage": "https://github.com/substack/node-concat-map#readme", - "keywords": [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "license": "MIT", - "main": "index.js", - "name": "concat-map", - "repository": { - "type": "git", - "url": "git://github.com/substack/node-concat-map.git" - }, - "scripts": { - "test": "tape test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": { - "ie": [ - 6, - 7, - 8, - 9 - ], - "ff": [ - 3.5, - 10, - 15 - ], - "chrome": [ - 10, - 22 - ], - "safari": [ - 5.1 - ], - "opera": [ - 12 - ] - } - }, - "version": "0.0.1" -} diff --git a/multiplatform-crypto-delegated/node_modules/concat-map/test/map.js b/multiplatform-crypto-delegated/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd702..0000000 --- a/multiplatform-crypto-delegated/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/debug/.coveralls.yml b/multiplatform-crypto-delegated/node_modules/debug/.coveralls.yml deleted file mode 100644 index 20a7068..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve diff --git a/multiplatform-crypto-delegated/node_modules/debug/.eslintrc b/multiplatform-crypto-delegated/node_modules/debug/.eslintrc deleted file mode 100644 index 146371e..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "env": { - "browser": true, - "node": true - }, - "globals": { - "chrome": true - }, - "rules": { - "no-console": 0, - "no-empty": [1, { "allowEmptyCatch": true }] - }, - "extends": "eslint:recommended" -} diff --git a/multiplatform-crypto-delegated/node_modules/debug/.npmignore b/multiplatform-crypto-delegated/node_modules/debug/.npmignore deleted file mode 100644 index 5f60eec..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -support -test -examples -example -*.sock -dist -yarn.lock -coverage -bower.json diff --git a/multiplatform-crypto-delegated/node_modules/debug/.travis.yml b/multiplatform-crypto-delegated/node_modules/debug/.travis.yml deleted file mode 100644 index a764300..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -sudo: false - -language: node_js - -node_js: - - "4" - - "6" - - "8" - -install: - - make install - -script: - - make lint - - make test - -matrix: - include: - - node_js: '8' - env: BROWSER=1 diff --git a/multiplatform-crypto-delegated/node_modules/debug/CHANGELOG.md b/multiplatform-crypto-delegated/node_modules/debug/CHANGELOG.md deleted file mode 100644 index 820d21e..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/CHANGELOG.md +++ /dev/null @@ -1,395 +0,0 @@ - -3.1.0 / 2017-09-26 -================== - - * Add `DEBUG_HIDE_DATE` env var (#486) - * Remove ReDoS regexp in %o formatter (#504) - * Remove "component" from package.json - * Remove `component.json` - * Ignore package-lock.json - * Examples: fix colors printout - * Fix: browser detection - * Fix: spelling mistake (#496, @EdwardBetts) - -3.0.1 / 2017-08-24 -================== - - * Fix: Disable colors in Edge and Internet Explorer (#489) - -3.0.0 / 2017-08-08 -================== - - * Breaking: Remove DEBUG_FD (#406) - * Breaking: Use `Date#toISOString()` instead to `Date#toUTCString()` when output is not a TTY (#418) - * Breaking: Make millisecond timer namespace specific and allow 'always enabled' output (#408) - * Addition: document `enabled` flag (#465) - * Addition: add 256 colors mode (#481) - * Addition: `enabled()` updates existing debug instances, add `destroy()` function (#440) - * Update: component: update "ms" to v2.0.0 - * Update: separate the Node and Browser tests in Travis-CI - * Update: refactor Readme, fixed documentation, added "Namespace Colors" section, redid screenshots - * Update: separate Node.js and web browser examples for organization - * Update: update "browserify" to v14.4.0 - * Fix: fix Readme typo (#473) - -2.6.9 / 2017-09-22 -================== - - * remove ReDoS regexp in %o formatter (#504) - -2.6.8 / 2017-05-18 -================== - - * Fix: Check for undefined on browser globals (#462, @marbemac) - -2.6.7 / 2017-05-16 -================== - - * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom) - * Fix: Inline extend function in node implementation (#452, @dougwilson) - * Docs: Fix typo (#455, @msasad) - -2.6.5 / 2017-04-27 -================== - - * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek) - * Misc: clean up browser reference checks (#447, @thebigredgeek) - * Misc: add npm-debug.log to .gitignore (@thebigredgeek) - - -2.6.4 / 2017-04-20 -================== - - * Fix: bug that would occur if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) - * Chore: ignore bower.json in npm installations. (#437, @joaovieira) - * Misc: update "ms" to v0.7.3 (@tootallnate) - -2.6.3 / 2017-03-13 -================== - - * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts) - * Docs: Changelog fix (@thebigredgeek) - -2.6.2 / 2017-03-10 -================== - - * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin) - * Docs: Add backers and sponsors from Open Collective (#422, @piamancini) - * Docs: Add Slackin invite badge (@tootallnate) - -2.6.1 / 2017-02-10 -================== - - * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error - * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0) - * Fix: IE8 "Expected identifier" error (#414, @vgoma) - * Fix: Namespaces would not disable once enabled (#409, @musikov) - -2.6.0 / 2016-12-28 -================== - - * Fix: added better null pointer checks for browser useColors (@thebigredgeek) - * Improvement: removed explicit `window.debug` export (#404, @tootallnate) - * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate) - -2.5.2 / 2016-12-25 -================== - - * Fix: reference error on window within webworkers (#393, @KlausTrainer) - * Docs: fixed README typo (#391, @lurch) - * Docs: added notice about v3 api discussion (@thebigredgeek) - -2.5.1 / 2016-12-20 -================== - - * Fix: babel-core compatibility - -2.5.0 / 2016-12-20 -================== - - * Fix: wrong reference in bower file (@thebigredgeek) - * Fix: webworker compatibility (@thebigredgeek) - * Fix: output formatting issue (#388, @kribblo) - * Fix: babel-loader compatibility (#383, @escwald) - * Misc: removed built asset from repo and publications (@thebigredgeek) - * Misc: moved source files to /src (#378, @yamikuronue) - * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue) - * Test: coveralls integration (#378, @yamikuronue) - * Docs: simplified language in the opening paragraph (#373, @yamikuronue) - -2.4.5 / 2016-12-17 -================== - - * Fix: `navigator` undefined in Rhino (#376, @jochenberger) - * Fix: custom log function (#379, @hsiliev) - * Improvement: bit of cleanup + linting fixes (@thebigredgeek) - * Improvement: rm non-maintainted `dist/` dir (#375, @freewil) - * Docs: simplified language in the opening paragraph. (#373, @yamikuronue) - -2.4.4 / 2016-12-14 -================== - - * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts) - -2.4.3 / 2016-12-14 -================== - - * Fix: navigation.userAgent error for react native (#364, @escwald) - -2.4.2 / 2016-12-14 -================== - - * Fix: browser colors (#367, @tootallnate) - * Misc: travis ci integration (@thebigredgeek) - * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek) - -2.4.1 / 2016-12-13 -================== - - * Fix: typo that broke the package (#356) - -2.4.0 / 2016-12-13 -================== - - * Fix: bower.json references unbuilt src entry point (#342, @justmatt) - * Fix: revert "handle regex special characters" (@tootallnate) - * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate) - * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate) - * Improvement: allow colors in workers (#335, @botverse) - * Improvement: use same color for same namespace. (#338, @lchenay) - -2.3.3 / 2016-11-09 -================== - - * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne) - * Fix: Returning `localStorage` saved values (#331, Levi Thomason) - * Improvement: Don't create an empty object when no `process` (Nathan Rajlich) - -2.3.2 / 2016-11-09 -================== - - * Fix: be super-safe in index.js as well (@TooTallNate) - * Fix: should check whether process exists (Tom Newby) - -2.3.1 / 2016-11-09 -================== - - * Fix: Added electron compatibility (#324, @paulcbetts) - * Improvement: Added performance optimizations (@tootallnate) - * Readme: Corrected PowerShell environment variable example (#252, @gimre) - * Misc: Removed yarn lock file from source control (#321, @fengmk2) - -2.3.0 / 2016-11-07 -================== - - * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic) - * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos) - * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15) - * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran) - * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom) - * Package: Update "ms" to 0.7.2 (#315, @DevSide) - * Package: removed superfluous version property from bower.json (#207 @kkirsche) - * Readme: fix USE_COLORS to DEBUG_COLORS - * Readme: Doc fixes for format string sugar (#269, @mlucool) - * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0) - * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable) - * Readme: better docs for browser support (#224, @matthewmueller) - * Tooling: Added yarn integration for development (#317, @thebigredgeek) - * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek) - * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman) - * Misc: Updated contributors (@thebigredgeek) - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/multiplatform-crypto-delegated/node_modules/debug/LICENSE b/multiplatform-crypto-delegated/node_modules/debug/LICENSE deleted file mode 100644 index 658c933..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the 'Software'), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/multiplatform-crypto-delegated/node_modules/debug/Makefile b/multiplatform-crypto-delegated/node_modules/debug/Makefile deleted file mode 100644 index 3ddd136..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# Path -PATH := node_modules/.bin:$(PATH) -SHELL := /bin/bash - -# applications -NODE ?= $(shell which node) -YARN ?= $(shell which yarn) -PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -install: node_modules - -browser: dist/debug.js - -node_modules: package.json - @NODE_ENV= $(PKG) install - @touch node_modules - -dist/debug.js: src/*.js node_modules - @mkdir -p dist - @$(BROWSERIFY) \ - --standalone debug \ - . > dist/debug.js - -lint: - @eslint *.js src/*.js - -test-node: - @istanbul cover node_modules/mocha/bin/_mocha -- test/**.js - @cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js - -test-browser: - @$(MAKE) browser - @karma start --single-run - -test-all: - @concurrently \ - "make test-node" \ - "make test-browser" - -test: - @if [ "x$(BROWSER)" = "x" ]; then \ - $(MAKE) test-node; \ - else \ - $(MAKE) test-browser; \ - fi - -clean: - rimraf dist coverage - -.PHONY: browser install clean lint test test-all test-node test-browser diff --git a/multiplatform-crypto-delegated/node_modules/debug/README.md b/multiplatform-crypto-delegated/node_modules/debug/README.md deleted file mode 100644 index 8e754d1..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/README.md +++ /dev/null @@ -1,368 +0,0 @@ -# debug -[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) - - - -A tiny JavaScript debugging utility modelled after Node.js core's debugging -technique. Works in Node.js and web browsers. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - -`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. - -Example [_app.js_](./examples/node/app.js): - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %o', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example [_worker.js_](./examples/node/worker.js): - -```js -var a = require('debug')('worker:a') - , b = require('debug')('worker:b'); - -function work() { - a('doing lots of uninteresting work'); - setTimeout(work, Math.random() * 1000); -} - -work(); - -function workb() { - b('doing some work'); - setTimeout(workb, Math.random() * 2000); -} - -workb(); -``` - -The `DEBUG` environment variable is then used to enable these based on space or -comma-delimited names. - -Here are some examples: - -screen shot 2017-08-08 at 12 53 04 pm -screen shot 2017-08-08 at 12 53 38 pm -screen shot 2017-08-08 at 12 53 25 pm - -#### Windows note - -On Windows the environment variable is set using the `set` command. - -```cmd -set DEBUG=*,-not_this -``` - -Note that PowerShell uses different syntax to set environment variables. - -```cmd -$env:DEBUG = "*,-not_this" -``` - -Then, run the program to be debugged as usual. - - -## Namespace Colors - -Every debug instance has a color generated for it based on its namespace name. -This helps when visually parsing the debug output to identify which debug instance -a debug line belongs to. - -#### Node.js - -In Node.js, colors are enabled when stderr is a TTY. You also _should_ install -the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, -otherwise debug will only use a small handful of basic colors. - - - -#### Web Browser - -Colors are also enabled on "Web Inspectors" that understand the `%c` formatting -option. These are WebKit web inspectors, Firefox ([since version -31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) -and the Firebug plugin for Firefox (any version). - - - - -## Millisecond diff - -When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - - -When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: - - - - -## Conventions - -If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. - -## Wildcards - -The `*` character may be used as a wildcard. Suppose for example your library has -debuggers named "connect:bodyParser", "connect:compress", "connect:session", -instead of listing all three with -`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do -`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - -You can also exclude specific debuggers by prefixing them with a "-" character. -For example, `DEBUG=*,-connect:*` would include all debuggers except those -starting with "connect:". - -## Environment Variables - -When running through Node.js, you can set a few environment variables that will -change the behavior of the debug logging: - -| Name | Purpose | -|-----------|-------------------------------------------------| -| `DEBUG` | Enables/disables specific debugging namespaces. | -| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | -| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | -| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - - -__Note:__ The environment variables beginning with `DEBUG_` end up being -converted into an Options object that gets used with `%o`/`%O` formatters. -See the Node.js documentation for -[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) -for the complete list. - -## Formatters - -Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. -Below are the officially supported formatters: - -| Formatter | Representation | -|-----------|----------------| -| `%O` | Pretty-print an Object on multiple lines. | -| `%o` | Pretty-print an Object all on a single line. | -| `%s` | String. | -| `%d` | Number (both integer and float). | -| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | -| `%%` | Single percent sign ('%'). This does not consume an argument. | - - -### Custom formatters - -You can add custom formatters by extending the `debug.formatters` object. -For example, if you wanted to add support for rendering a Buffer as hex with -`%h`, you could do something like: - -```js -const createDebug = require('debug') -createDebug.formatters.h = (v) => { - return v.toString('hex') -} - -// …elsewhere -const debug = createDebug('foo') -debug('this is hex: %h', new Buffer('hello world')) -// foo this is hex: 68656c6c6f20776f726c6421 +0ms -``` - - -## Browser Support - -You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), -or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), -if you don't want to build it yourself. - -Debug's enable state is currently persisted by `localStorage`. -Consider the situation shown below where you have `worker:a` and `worker:b`, -and wish to debug both. You can enable this using `localStorage.debug`: - -```js -localStorage.debug = 'worker:*' -``` - -And then refresh the page. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - - -## Output streams - - By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: - -Example [_stdout.js_](./examples/node/stdout.js): - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -## Checking whether a debug target is enabled - -After you've created a debug instance, you can determine whether or not it is -enabled by checking the `enabled` property: - -```javascript -const debug = require('debug')('http'); - -if (debug.enabled) { - // do stuff... -} -``` - -You can also manually toggle this property to force the debug instance to be -enabled or disabled. - - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - - Andrew Rhyne - -## Backers - -Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/debug/karma.conf.js b/multiplatform-crypto-delegated/node_modules/debug/karma.conf.js deleted file mode 100644 index 103a82d..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/karma.conf.js +++ /dev/null @@ -1,70 +0,0 @@ -// Karma configuration -// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC) - -module.exports = function(config) { - config.set({ - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['mocha', 'chai', 'sinon'], - - - // list of files / patterns to load in the browser - files: [ - 'dist/debug.js', - 'test/*spec.js' - ], - - - // list of files to exclude - exclude: [ - 'src/node.js' - ], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - }, - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['PhantomJS'], - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity - }) -} diff --git a/multiplatform-crypto-delegated/node_modules/debug/node.js b/multiplatform-crypto-delegated/node_modules/debug/node.js deleted file mode 100644 index 7fc36fe..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/node.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./src/node'); diff --git a/multiplatform-crypto-delegated/node_modules/debug/package.json b/multiplatform-crypto-delegated/node_modules/debug/package.json deleted file mode 100644 index 77c6ea2..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_from": "debug@3.1.0", - "_id": "debug@3.1.0", - "_inBundle": false, - "_integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "_location": "/debug", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "debug@3.1.0", - "name": "debug", - "escapedName": "debug", - "rawSpec": "3.1.0", - "saveSpec": null, - "fetchSpec": "3.1.0" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "_shasum": "5bb5a0672628b64149566ba16819e61518c67261", - "_spec": "debug@3.1.0", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "browser": "./src/browser.js", - "bugs": { - "url": "https://github.com/visionmedia/debug/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": "http://n8.io" - }, - { - "name": "Andrew Rhyne", - "email": "rhyneandrew@gmail.com" - } - ], - "dependencies": { - "ms": "2.0.0" - }, - "deprecated": false, - "description": "small debugging utility", - "devDependencies": { - "browserify": "14.4.0", - "chai": "^3.5.0", - "concurrently": "^3.1.0", - "coveralls": "^2.11.15", - "eslint": "^3.12.1", - "istanbul": "^0.4.5", - "karma": "^1.3.0", - "karma-chai": "^0.1.0", - "karma-mocha": "^1.3.0", - "karma-phantomjs-launcher": "^1.0.2", - "karma-sinon": "^1.0.5", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.2.0", - "rimraf": "^2.5.4", - "sinon": "^1.17.6", - "sinon-chai": "^2.8.0" - }, - "homepage": "https://github.com/visionmedia/debug#readme", - "keywords": [ - "debug", - "log", - "debugger" - ], - "license": "MIT", - "main": "./src/index.js", - "name": "debug", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "version": "3.1.0" -} diff --git a/multiplatform-crypto-delegated/node_modules/debug/src/browser.js b/multiplatform-crypto-delegated/node_modules/debug/src/browser.js deleted file mode 100644 index f5149ff..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/src/browser.js +++ /dev/null @@ -1,195 +0,0 @@ -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', - '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', - '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', - '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', - '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', - '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', - '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', - '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', - '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', - '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', - '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - // is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (err) { - return '[UnexpectedJSONParseError]: ' + err.message; - } -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return; - - var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit') - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - return window.localStorage; - } catch (e) {} -} diff --git a/multiplatform-crypto-delegated/node_modules/debug/src/debug.js b/multiplatform-crypto-delegated/node_modules/debug/src/debug.js deleted file mode 100644 index 77e6384..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/src/debug.js +++ /dev/null @@ -1,225 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * Active `debug` instances. - */ -exports.instances = []; - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - -exports.formatters = {}; - -/** - * Select a color. - * @param {String} namespace - * @return {Number} - * @api private - */ - -function selectColor(namespace) { - var hash = 0, i; - - for (i in namespace) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return exports.colors[Math.abs(hash) % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function createDebug(namespace) { - - var prevTime; - - function debug() { - // disabled? - if (!debug.enabled) return; - - var self = debug; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // turn the `arguments` into a proper Array - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %O - args.unshift('%O'); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // apply env-specific formatting (colors, etc.) - exports.formatArgs.call(self, args); - - var logFn = debug.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.enabled = exports.enabled(namespace); - debug.useColors = exports.useColors(); - debug.color = selectColor(namespace); - debug.destroy = destroy; - - // env-specific initialization logic for debug instances - if ('function' === typeof exports.init) { - exports.init(debug); - } - - exports.instances.push(debug); - - return debug; -} - -function destroy () { - var index = exports.instances.indexOf(this); - if (index !== -1) { - exports.instances.splice(index, 1); - return true; - } else { - return false; - } -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - exports.names = []; - exports.skips = []; - - var i; - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } - - for (i = 0; i < exports.instances.length; i++) { - var instance = exports.instances[i]; - instance.enabled = exports.enabled(instance.namespace); - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/multiplatform-crypto-delegated/node_modules/debug/src/index.js b/multiplatform-crypto-delegated/node_modules/debug/src/index.js deleted file mode 100644 index cabcbcd..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Detect Electron renderer process, which is node, but we should - * treat as a browser. - */ - -if (typeof process === 'undefined' || process.type === 'renderer') { - module.exports = require('./browser.js'); -} else { - module.exports = require('./node.js'); -} diff --git a/multiplatform-crypto-delegated/node_modules/debug/src/node.js b/multiplatform-crypto-delegated/node_modules/debug/src/node.js deleted file mode 100644 index d666fb9..0000000 --- a/multiplatform-crypto-delegated/node_modules/debug/src/node.js +++ /dev/null @@ -1,186 +0,0 @@ -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [ 6, 2, 3, 4, 5, 1 ]; - -try { - var supportsColor = require('supports-color'); - if (supportsColor && supportsColor.level >= 2) { - exports.colors = [ - 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, - 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, - 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 214, 215, 220, 221 - ]; - } -} catch (err) { - // swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(function (key) { - return /^debug_/i.test(key); -}).reduce(function (obj, key) { - // camel-case - var prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); - - // coerce string value into JS value - var val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) val = true; - else if (/^(no|off|false|disabled)$/i.test(val)) val = false; - else if (val === 'null') val = null; - else val = Number(val); - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts - ? Boolean(exports.inspectOpts.colors) - : tty.isatty(process.stderr.fd); -} - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -exports.formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n').map(function(str) { - return str.trim() - }).join(' '); -}; - -/** - * Map %o to `util.inspect()`, allowing multiple lines if needed. - */ - -exports.formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - var name = this.namespace; - var useColors = this.useColors; - - if (useColors) { - var c = this.color; - var colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c); - var prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m'; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } else { - return new Date().toISOString() + ' '; - } -} - -/** - * Invokes `util.format()` with the specified arguments and writes to stderr. - */ - -function log() { - return process.stderr.write(util.format.apply(util, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init (debug) { - debug.inspectOpts = {}; - - var keys = Object.keys(exports.inspectOpts); - for (var i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/multiplatform-crypto-delegated/node_modules/diff/CONTRIBUTING.md b/multiplatform-crypto-delegated/node_modules/diff/CONTRIBUTING.md deleted file mode 100644 index 96f4530..0000000 --- a/multiplatform-crypto-delegated/node_modules/diff/CONTRIBUTING.md +++ /dev/null @@ -1,39 +0,0 @@ -# How to Contribute - -## Pull Requests - -We also accept [pull requests][pull-request]! - -Generally we like to see pull requests that -- Maintain the existing code style -- Are focused on a single change (i.e. avoid large refactoring or style adjustments in untouched code if not the primary goal of the pull request) -- Have [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) -- Have tests -- Don't decrease the current code coverage (see coverage/lcov-report/index.html) - -## Building - -``` -npm install -npm test -```` - -The `npm test -- dev` implements watching for tests within Node and `karma start` may be used for manual testing in browsers. - -If you notice any problems, please report them to the GitHub issue tracker at -[http://github.com/kpdecker/jsdiff/issues](http://github.com/kpdecker/jsdiff/issues). - -## Releasing - -JsDiff utilizes the [release yeoman generator][generator-release] to perform most release tasks. - -A full release may be completed with the following: - -``` -yo release -npm publish -yo release:publish components jsdiff dist/components/ -``` - -[generator-release]: https://github.com/walmartlabs/generator-release -[pull-request]: https://github.com/kpdecker/jsdiff/pull/new/master diff --git a/multiplatform-crypto-delegated/node_modules/diff/LICENSE b/multiplatform-crypto-delegated/node_modules/diff/LICENSE deleted file mode 100644 index 4e7146e..0000000 --- a/multiplatform-crypto-delegated/node_modules/diff/LICENSE +++ /dev/null @@ -1,31 +0,0 @@ -Software License Agreement (BSD License) - -Copyright (c) 2009-2015, Kevin Decker - -All rights reserved. - -Redistribution and use of this software in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of Kevin Decker nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/multiplatform-crypto-delegated/node_modules/diff/README.md b/multiplatform-crypto-delegated/node_modules/diff/README.md deleted file mode 100644 index 5747fe3..0000000 --- a/multiplatform-crypto-delegated/node_modules/diff/README.md +++ /dev/null @@ -1,211 +0,0 @@ -# jsdiff - -[![Build Status](https://secure.travis-ci.org/kpdecker/jsdiff.svg)](http://travis-ci.org/kpdecker/jsdiff) -[![Sauce Test Status](https://saucelabs.com/buildstatus/jsdiff)](https://saucelabs.com/u/jsdiff) - -A javascript text differencing implementation. - -Based on the algorithm proposed in -["An O(ND) Difference Algorithm and its Variations" (Myers, 1986)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927). - -## Installation -```bash -npm install diff --save -``` -or -```bash -bower install jsdiff --save -``` - -## API - -* `JsDiff.diffChars(oldStr, newStr[, options])` - diffs two blocks of text, comparing character by character. - - Returns a list of change objects (See below). - - Options - * `ignoreCase`: `true` to ignore casing difference. Defaults to `false`. - -* `JsDiff.diffWords(oldStr, newStr[, options])` - diffs two blocks of text, comparing word by word, ignoring whitespace. - - Returns a list of change objects (See below). - - Options - * `ignoreCase`: Same as in `diffChars`. - -* `JsDiff.diffWordsWithSpace(oldStr, newStr[, options])` - diffs two blocks of text, comparing word by word, treating whitespace as significant. - - Returns a list of change objects (See below). - -* `JsDiff.diffLines(oldStr, newStr[, options])` - diffs two blocks of text, comparing line by line. - - Options - * `ignoreWhitespace`: `true` to ignore leading and trailing whitespace. This is the same as `diffTrimmedLines` - * `newlineIsToken`: `true` to treat newline characters as separate tokens. This allows for changes to the newline structure to occur independently of the line content and to be treated as such. In general this is the more human friendly form of `diffLines` and `diffLines` is better suited for patches and other computer friendly output. - - Returns a list of change objects (See below). - -* `JsDiff.diffTrimmedLines(oldStr, newStr[, options])` - diffs two blocks of text, comparing line by line, ignoring leading and trailing whitespace. - - Returns a list of change objects (See below). - -* `JsDiff.diffSentences(oldStr, newStr[, options])` - diffs two blocks of text, comparing sentence by sentence. - - Returns a list of change objects (See below). - -* `JsDiff.diffCss(oldStr, newStr[, options])` - diffs two blocks of text, comparing CSS tokens. - - Returns a list of change objects (See below). - -* `JsDiff.diffJson(oldObj, newObj[, options])` - diffs two JSON objects, comparing the fields defined on each. The order of fields, etc does not matter in this comparison. - - Returns a list of change objects (See below). - -* `JsDiff.diffArrays(oldArr, newArr[, options])` - diffs two arrays, comparing each item for strict equality (===). - - Options - * `comparator`: `function(left, right)` for custom equality checks - - Returns a list of change objects (See below). - -* `JsDiff.createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. - - Parameters: - * `oldFileName` : String to be output in the filename section of the patch for the removals - * `newFileName` : String to be output in the filename section of the patch for the additions - * `oldStr` : Original string value - * `newStr` : New string value - * `oldHeader` : Additional information to include in the old file header - * `newHeader` : Additional information to include in the new file header - * `options` : An object with options. Currently, only `context` is supported and describes how many lines of context should be included. - -* `JsDiff.createPatch(fileName, oldStr, newStr, oldHeader, newHeader)` - creates a unified diff patch. - - Just like JsDiff.createTwoFilesPatch, but with oldFileName being equal to newFileName. - - -* `JsDiff.structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)` - returns an object with an array of hunk objects. - - This method is similar to createTwoFilesPatch, but returns a data structure - suitable for further processing. Parameters are the same as createTwoFilesPatch. The data structure returned may look like this: - - ```js - { - oldFileName: 'oldfile', newFileName: 'newfile', - oldHeader: 'header1', newHeader: 'header2', - hunks: [{ - oldStart: 1, oldLines: 3, newStart: 1, newLines: 3, - lines: [' line2', ' line3', '-line4', '+line5', '\\ No newline at end of file'], - }] - } - ``` - -* `JsDiff.applyPatch(source, patch[, options])` - applies a unified diff patch. - - Return a string containing new version of provided data. `patch` may be a string diff or the output from the `parsePatch` or `structuredPatch` methods. - - The optional `options` object may have the following keys: - - - `fuzzFactor`: Number of lines that are allowed to differ before rejecting a patch. Defaults to 0. - - `compareLine(lineNumber, line, operation, patchContent)`: Callback used to compare to given lines to determine if they should be considered equal when patching. Defaults to strict equality but may be overridden to provide fuzzier comparison. Should return false if the lines should be rejected. - -* `JsDiff.applyPatches(patch, options)` - applies one or more patches. - - This method will iterate over the contents of the patch and apply to data provided through callbacks. The general flow for each patch index is: - - - `options.loadFile(index, callback)` is called. The caller should then load the contents of the file and then pass that to the `callback(err, data)` callback. Passing an `err` will terminate further patch execution. - - `options.patched(index, content, callback)` is called once the patch has been applied. `content` will be the return value from `applyPatch`. When it's ready, the caller should call `callback(err)` callback. Passing an `err` will terminate further patch execution. - - Once all patches have been applied or an error occurs, the `options.complete(err)` callback is made. - -* `JsDiff.parsePatch(diffStr)` - Parses a patch into structured data - - Return a JSON object representation of the a patch, suitable for use with the `applyPatch` method. This parses to the same structure returned by `JsDiff.structuredPatch`. - -* `convertChangesToXML(changes)` - converts a list of changes to a serialized XML format - - -All methods above which accept the optional `callback` method will run in sync mode when that parameter is omitted and in async mode when supplied. This allows for larger diffs without blocking the event loop. This may be passed either directly as the final parameter or as the `callback` field in the `options` object. - -### Change Objects -Many of the methods above return change objects. These objects consist of the following fields: - -* `value`: Text content -* `added`: True if the value was inserted into the new string -* `removed`: True of the value was removed from the old string - -Note that some cases may omit a particular flag field. Comparison on the flag fields should always be done in a truthy or falsy manner. - -## Examples - -Basic example in Node - -```js -require('colors'); -var jsdiff = require('diff'); - -var one = 'beep boop'; -var other = 'beep boob blah'; - -var diff = jsdiff.diffChars(one, other); - -diff.forEach(function(part){ - // green for additions, red for deletions - // grey for common parts - var color = part.added ? 'green' : - part.removed ? 'red' : 'grey'; - process.stderr.write(part.value[color]); -}); - -console.log(); -``` -Running the above program should yield - -Node Example - -Basic example in a web page - -```html -

-
-
-```
-
-Open the above .html file in a browser and you should see
-
-Node Example
-
-**[Full online demo](http://kpdecker.github.com/jsdiff)**
-
-## Compatibility
-
-[![Sauce Test Status](https://saucelabs.com/browser-matrix/jsdiff.svg)](https://saucelabs.com/u/jsdiff)
-
-jsdiff supports all ES3 environments with some known issues on IE8 and below. Under these browsers some diff algorithms such as word diff and others may fail due to lack of support for capturing groups in the `split` operation.
-
-## License
-
-See [LICENSE](https://github.com/kpdecker/jsdiff/blob/master/LICENSE).
diff --git a/multiplatform-crypto-delegated/node_modules/diff/dist/diff.js b/multiplatform-crypto-delegated/node_modules/diff/dist/diff.js
deleted file mode 100644
index 0b824f1..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/dist/diff.js
+++ /dev/null
@@ -1,1843 +0,0 @@
-/*!
-
- diff v3.5.0
-
-Software License Agreement (BSD License)
-
-Copyright (c) 2009-2015, Kevin Decker 
-
-All rights reserved.
-
-Redistribution and use of this software in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above
-  copyright notice, this list of conditions and the
-  following disclaimer.
-
-* Redistributions in binary form must reproduce the above
-  copyright notice, this list of conditions and the
-  following disclaimer in the documentation and/or other
-  materials provided with the distribution.
-
-* Neither the name of Kevin Decker nor the names of its
-  contributors may be used to endorse or promote products
-  derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-@license
-*/
-(function webpackUniversalModuleDefinition(root, factory) {
-	if(typeof exports === 'object' && typeof module === 'object')
-		module.exports = factory();
-	else if(typeof define === 'function' && define.amd)
-		define([], factory);
-	else if(typeof exports === 'object')
-		exports["JsDiff"] = factory();
-	else
-		root["JsDiff"] = factory();
-})(this, function() {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.merge = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined;
-
-	/*istanbul ignore end*/var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	/*istanbul ignore end*/var /*istanbul ignore start*/_character = __webpack_require__(2) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_word = __webpack_require__(3) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_sentence = __webpack_require__(6) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_css = __webpack_require__(7) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_json = __webpack_require__(8) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_array = __webpack_require__(9) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_apply = __webpack_require__(10) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_merge = __webpack_require__(13) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_dmp = __webpack_require__(16) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_xml = __webpack_require__(17) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/* See LICENSE file for terms of use */
-
-	/*
-	 * Text diff implementation.
-	 *
-	 * This library supports the following APIS:
-	 * JsDiff.diffChars: Character by character diff
-	 * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
-	 * JsDiff.diffLines: Line based diff
-	 *
-	 * JsDiff.diffCss: Diff targeted at CSS content
-	 *
-	 * These methods are based on the implementation proposed in
-	 * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
-	 * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
-	 */
-	exports. /*istanbul ignore end*/Diff = _base2['default'];
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/merge = _merge.merge;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize;
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJEaWZmIiwiZGlmZkNoYXJzIiwiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImRpZmZTZW50ZW5jZXMiLCJkaWZmQ3NzIiwiZGlmZkpzb24iLCJkaWZmQXJyYXlzIiwic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwiYXBwbHlQYXRjaCIsImFwcGx5UGF0Y2hlcyIsInBhcnNlUGF0Y2giLCJtZXJnZSIsImNvbnZlcnRDaGFuZ2VzVG9ETVAiLCJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2Fub25pY2FsaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozt1QkFnQkE7Ozs7dUJBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFqQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O2dDQWtDRUEsSTt5REFFQUMsUzt5REFDQUMsUzt5REFDQUMsa0I7eURBQ0FDLFM7eURBQ0FDLGdCO3lEQUNBQyxhO3lEQUVBQyxPO3lEQUNBQyxRO3lEQUVBQyxVO3lEQUVBQyxlO3lEQUNBQyxtQjt5REFDQUMsVzt5REFDQUMsVTt5REFDQUMsWTt5REFDQUMsVTt5REFDQUMsSzt5REFDQUMsbUI7eURBQ0FDLG1CO3lEQUNBQyxZIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogU2VlIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMgb2YgdXNlICovXG5cbi8qXG4gKiBUZXh0IGRpZmYgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBsaWJyYXJ5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgQVBJUzpcbiAqIEpzRGlmZi5kaWZmQ2hhcnM6IENoYXJhY3RlciBieSBjaGFyYWN0ZXIgZGlmZlxuICogSnNEaWZmLmRpZmZXb3JkczogV29yZCAoYXMgZGVmaW5lZCBieSBcXGIgcmVnZXgpIGRpZmYgd2hpY2ggaWdub3JlcyB3aGl0ZXNwYWNlXG4gKiBKc0RpZmYuZGlmZkxpbmVzOiBMaW5lIGJhc2VkIGRpZmZcbiAqXG4gKiBKc0RpZmYuZGlmZkNzczogRGlmZiB0YXJnZXRlZCBhdCBDU1MgY29udGVudFxuICpcbiAqIFRoZXNlIG1ldGhvZHMgYXJlIGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm9wb3NlZCBpblxuICogXCJBbiBPKE5EKSBEaWZmZXJlbmNlIEFsZ29yaXRobSBhbmQgaXRzIFZhcmlhdGlvbnNcIiAoTXllcnMsIDE5ODYpLlxuICogaHR0cDovL2NpdGVzZWVyeC5pc3QucHN1LmVkdS92aWV3ZG9jL3N1bW1hcnk/ZG9pPTEwLjEuMS40LjY5MjdcbiAqL1xuaW1wb3J0IERpZmYgZnJvbSAnLi9kaWZmL2Jhc2UnO1xuaW1wb3J0IHtkaWZmQ2hhcnN9IGZyb20gJy4vZGlmZi9jaGFyYWN0ZXInO1xuaW1wb3J0IHtkaWZmV29yZHMsIGRpZmZXb3Jkc1dpdGhTcGFjZX0gZnJvbSAnLi9kaWZmL3dvcmQnO1xuaW1wb3J0IHtkaWZmTGluZXMsIGRpZmZUcmltbWVkTGluZXN9IGZyb20gJy4vZGlmZi9saW5lJztcbmltcG9ydCB7ZGlmZlNlbnRlbmNlc30gZnJvbSAnLi9kaWZmL3NlbnRlbmNlJztcblxuaW1wb3J0IHtkaWZmQ3NzfSBmcm9tICcuL2RpZmYvY3NzJztcbmltcG9ydCB7ZGlmZkpzb24sIGNhbm9uaWNhbGl6ZX0gZnJvbSAnLi9kaWZmL2pzb24nO1xuXG5pbXBvcnQge2RpZmZBcnJheXN9IGZyb20gJy4vZGlmZi9hcnJheSc7XG5cbmltcG9ydCB7YXBwbHlQYXRjaCwgYXBwbHlQYXRjaGVzfSBmcm9tICcuL3BhdGNoL2FwcGx5JztcbmltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXRjaC9wYXJzZSc7XG5pbXBvcnQge21lcmdlfSBmcm9tICcuL3BhdGNoL21lcmdlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgZGlmZkFycmF5cyxcblxuICBzdHJ1Y3R1cmVkUGF0Y2gsXG4gIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsXG4gIGNyZWF0ZVBhdGNoLFxuICBhcHBseVBhdGNoLFxuICBhcHBseVBhdGNoZXMsXG4gIHBhcnNlUGF0Y2gsXG4gIG1lcmdlLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0=
-
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports['default'] = /*istanbul ignore end*/Diff;
-	function Diff() {}
-
-	Diff.prototype = {
-	  /*istanbul ignore start*/ /*istanbul ignore end*/diff: function diff(oldString, newString) {
-	    /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
-	    var callback = options.callback;
-	    if (typeof options === 'function') {
-	      callback = options;
-	      options = {};
-	    }
-	    this.options = options;
-
-	    var self = this;
-
-	    function done(value) {
-	      if (callback) {
-	        setTimeout(function () {
-	          callback(undefined, value);
-	        }, 0);
-	        return true;
-	      } else {
-	        return value;
-	      }
-	    }
-
-	    // Allow subclasses to massage the input prior to running
-	    oldString = this.castInput(oldString);
-	    newString = this.castInput(newString);
-
-	    oldString = this.removeEmpty(this.tokenize(oldString));
-	    newString = this.removeEmpty(this.tokenize(newString));
-
-	    var newLen = newString.length,
-	        oldLen = oldString.length;
-	    var editLength = 1;
-	    var maxEditLength = newLen + oldLen;
-	    var bestPath = [{ newPos: -1, components: [] }];
-
-	    // Seed editLength = 0, i.e. the content starts with the same values
-	    var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
-	    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
-	      // Identity per the equality and tokenizer
-	      return done([{ value: this.join(newString), count: newString.length }]);
-	    }
-
-	    // Main worker method. checks all permutations of a given edit length for acceptance.
-	    function execEditLength() {
-	      for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
-	        var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-	        var addPath = bestPath[diagonalPath - 1],
-	            removePath = bestPath[diagonalPath + 1],
-	            _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
-	        if (addPath) {
-	          // No one else is going to attempt to use this value, clear it
-	          bestPath[diagonalPath - 1] = undefined;
-	        }
-
-	        var canAdd = addPath && addPath.newPos + 1 < newLen,
-	            canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
-	        if (!canAdd && !canRemove) {
-	          // If this path is a terminal then prune
-	          bestPath[diagonalPath] = undefined;
-	          continue;
-	        }
-
-	        // Select the diagonal that we want to branch from. We select the prior
-	        // path whose position in the new string is the farthest from the origin
-	        // and does not pass the bounds of the diff graph
-	        if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
-	          basePath = clonePath(removePath);
-	          self.pushComponent(basePath.components, undefined, true);
-	        } else {
-	          basePath = addPath; // No need to clone, we've pulled it from the list
-	          basePath.newPos++;
-	          self.pushComponent(basePath.components, true, undefined);
-	        }
-
-	        _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
-
-	        // If we have hit the end of both strings, then we are done
-	        if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
-	          return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
-	        } else {
-	          // Otherwise track this path as a potential candidate and continue.
-	          bestPath[diagonalPath] = basePath;
-	        }
-	      }
-
-	      editLength++;
-	    }
-
-	    // Performs the length of edit iteration. Is a bit fugly as this has to support the
-	    // sync and async mode which is never fun. Loops over execEditLength until a value
-	    // is produced.
-	    if (callback) {
-	      (function exec() {
-	        setTimeout(function () {
-	          // This should not happen, but we want to be safe.
-	          /* istanbul ignore next */
-	          if (editLength > maxEditLength) {
-	            return callback();
-	          }
-
-	          if (!execEditLength()) {
-	            exec();
-	          }
-	        }, 0);
-	      })();
-	    } else {
-	      while (editLength <= maxEditLength) {
-	        var ret = execEditLength();
-	        if (ret) {
-	          return ret;
-	        }
-	      }
-	    }
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) {
-	    var last = components[components.length - 1];
-	    if (last && last.added === added && last.removed === removed) {
-	      // We need to clone here as the component clone operation is just
-	      // as shallow array clone
-	      components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };
-	    } else {
-	      components.push({ count: 1, added: added, removed: removed });
-	    }
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
-	    var newLen = newString.length,
-	        oldLen = oldString.length,
-	        newPos = basePath.newPos,
-	        oldPos = newPos - diagonalPath,
-	        commonCount = 0;
-	    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
-	      newPos++;
-	      oldPos++;
-	      commonCount++;
-	    }
-
-	    if (commonCount) {
-	      basePath.components.push({ count: commonCount });
-	    }
-
-	    basePath.newPos = newPos;
-	    return oldPos;
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) {
-	    if (this.options.comparator) {
-	      return this.options.comparator(left, right);
-	    } else {
-	      return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
-	    }
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) {
-	    var ret = [];
-	    for (var i = 0; i < array.length; i++) {
-	      if (array[i]) {
-	        ret.push(array[i]);
-	      }
-	    }
-	    return ret;
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) {
-	    return value;
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) {
-	    return value.split('');
-	  },
-	  /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) {
-	    return chars.join('');
-	  }
-	};
-
-	function buildValues(diff, components, newString, oldString, useLongestToken) {
-	  var componentPos = 0,
-	      componentLen = components.length,
-	      newPos = 0,
-	      oldPos = 0;
-
-	  for (; componentPos < componentLen; componentPos++) {
-	    var component = components[componentPos];
-	    if (!component.removed) {
-	      if (!component.added && useLongestToken) {
-	        var value = newString.slice(newPos, newPos + component.count);
-	        value = value.map(function (value, i) {
-	          var oldValue = oldString[oldPos + i];
-	          return oldValue.length > value.length ? oldValue : value;
-	        });
-
-	        component.value = diff.join(value);
-	      } else {
-	        component.value = diff.join(newString.slice(newPos, newPos + component.count));
-	      }
-	      newPos += component.count;
-
-	      // Common case
-	      if (!component.added) {
-	        oldPos += component.count;
-	      }
-	    } else {
-	      component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
-	      oldPos += component.count;
-
-	      // Reverse add and remove so removes are output first to match common convention
-	      // The diffing algorithm is tied to add then remove output and this is the simplest
-	      // route to get the desired output with minimal overhead.
-	      if (componentPos && components[componentPos - 1].added) {
-	        var tmp = components[componentPos - 1];
-	        components[componentPos - 1] = components[componentPos];
-	        components[componentPos] = tmp;
-	      }
-	    }
-	  }
-
-	  // Special case handle for when one terminal is ignored (i.e. whitespace).
-	  // For this case we merge the terminal into the prior string and drop the change.
-	  // This is only available for string mode.
-	  var lastComponent = components[componentLen - 1];
-	  if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
-	    components[componentLen - 2].value += lastComponent.value;
-	    components.pop();
-	  }
-
-	  return components;
-	}
-
-	function clonePath(path) {
-	  return { newPos: path.newPos, components: path.components.slice(0) };
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOlsiRGlmZiIsInByb3RvdHlwZSIsImRpZmYiLCJvbGRTdHJpbmciLCJuZXdTdHJpbmciLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzZWxmIiwiZG9uZSIsInZhbHVlIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImNhc3RJbnB1dCIsInJlbW92ZUVtcHR5IiwidG9rZW5pemUiLCJuZXdMZW4iLCJsZW5ndGgiLCJvbGRMZW4iLCJlZGl0TGVuZ3RoIiwibWF4RWRpdExlbmd0aCIsImJlc3RQYXRoIiwibmV3UG9zIiwiY29tcG9uZW50cyIsIm9sZFBvcyIsImV4dHJhY3RDb21tb24iLCJqb2luIiwiY291bnQiLCJleGVjRWRpdExlbmd0aCIsImRpYWdvbmFsUGF0aCIsImJhc2VQYXRoIiwiYWRkUGF0aCIsInJlbW92ZVBhdGgiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjbG9uZVBhdGgiLCJwdXNoQ29tcG9uZW50IiwiYnVpbGRWYWx1ZXMiLCJ1c2VMb25nZXN0VG9rZW4iLCJleGVjIiwicmV0IiwiYWRkZWQiLCJyZW1vdmVkIiwibGFzdCIsInB1c2giLCJjb21tb25Db3VudCIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsImNvbXBhcmF0b3IiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJhcnJheSIsImkiLCJzcGxpdCIsImNoYXJzIiwiY29tcG9uZW50UG9zIiwiY29tcG9uZW50TGVuIiwiY29tcG9uZW50Iiwic2xpY2UiLCJtYXAiLCJvbGRWYWx1ZSIsInRtcCIsImxhc3RDb21wb25lbnQiLCJwb3AiLCJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7NENBQXdCQSxJO0FBQVQsU0FBU0EsSUFBVCxHQUFnQixDQUFFOztBQUVqQ0EsS0FBS0MsU0FBTCxHQUFpQjtBQUFBLG1EQUNmQyxJQURlLGdCQUNWQyxTQURVLEVBQ0NDLFNBREQsRUFDMEI7QUFBQSx3REFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUN2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RUFBd0JBLFNBQVNrQyxVQUFVL0IsS0FBM0MsQ0FBVixDQUFsQjtBQUNBSCxnQkFBVWtDLFVBQVUvQixLQUFwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFJNkIsZ0JBQWdCakMsV0FBV2lDLGVBQWUsQ0FBMUIsRUFBNkJmLEtBQWpELEVBQXdEO0FBQ3RELFlBQUlxQixNQUFNdkMsV0FBV2lDLGVBQWUsQ0FBMUIsQ0FBVjtBQUNBakMsbUJBQVdpQyxlQUFlLENBQTFCLElBQStCakMsV0FBV2lDLFlBQVgsQ0FBL0I7QUFDQWpDLG1CQUFXaUMsWUFBWCxJQUEyQk0sR0FBM0I7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsTUFBSUMsZ0JBQWdCeEMsV0FBV2tDLGVBQWUsQ0FBMUIsQ0FBcEI7QUFDQSxNQUFJQSxlQUFlLENBQWYsSUFDRyxPQUFPTSxjQUFjckQsS0FBckIsS0FBK0IsUUFEbEMsS0FFSXFELGNBQWN0QixLQUFkLElBQXVCc0IsY0FBY3JCLE9BRnpDLEtBR0d2QyxLQUFLMkMsTUFBTCxDQUFZLEVBQVosRUFBZ0JpQixjQUFjckQsS0FBOUIsQ0FIUCxFQUc2QztBQUMzQ2EsZUFBV2tDLGVBQWUsQ0FBMUIsRUFBNkIvQyxLQUE3QixJQUFzQ3FELGNBQWNyRCxLQUFwRDtBQUNBYSxlQUFXeUMsR0FBWDtBQUNEOztBQUVELFNBQU96QyxVQUFQO0FBQ0Q7O0FBRUQsU0FBU1ksU0FBVCxDQUFtQjhCLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRTNDLFFBQVEyQyxLQUFLM0MsTUFBZixFQUF1QkMsWUFBWTBDLEtBQUsxQyxVQUFMLENBQWdCb0MsS0FBaEIsQ0FBc0IsQ0FBdEIsQ0FBbkMsRUFBUDtBQUNEIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7XG4gIGRpZmYob2xkU3RyaW5nLCBuZXdTdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBsZXQgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7IH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgbGV0IGVkaXRMZW5ndGggPSAxO1xuICAgIGxldCBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIGxldCBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICBsZXQgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7dmFsdWU6IHRoaXMuam9pbihuZXdTdHJpbmcpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29tcGFyYXRvcihsZWZ0LCByaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsZWZ0ID09PSByaWdodFxuICAgICAgICB8fCAodGhpcy5vcHRpb25zLmlnbm9yZUNhc2UgJiYgbGVmdC50b0xvd2VyQ2FzZSgpID09PSByaWdodC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9LFxuICBqb2luKGNoYXJzKSB7XG4gICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4odmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gZGlmZi5qb2luKG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkpO1xuICAgICAgfVxuICAgICAgbmV3UG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gQ29tbW9uIGNhc2VcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkKSB7XG4gICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbihvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkIChpLmUuIHdoaXRlc3BhY2UpLlxuICAvLyBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZSB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgLy8gVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Igc3RyaW5nIG1vZGUuXG4gIGxldCBsYXN0Q29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAxXTtcbiAgaWYgKGNvbXBvbmVudExlbiA+IDFcbiAgICAgICYmIHR5cGVvZiBsYXN0Q29tcG9uZW50LnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0=
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.characterDiff = undefined;
-	exports. /*istanbul ignore end*/diffChars = diffChars;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	function diffChars(oldStr, newStr, options) {
-	  return characterDiff.diff(oldStr, newStr, options);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6WyJkaWZmQ2hhcnMiLCJjaGFyYWN0ZXJEaWZmIiwib2xkU3RyIiwibmV3U3RyIiwib3B0aW9ucyIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBR2dCQSxTLEdBQUFBLFM7O0FBSGhCOzs7Ozs7dUJBRU8sSUFBTUMseUZBQWdCLHdFQUF0QjtBQUNBLFNBQVNELFNBQVQsQ0FBbUJFLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ0MsT0FBbkMsRUFBNEM7QUFBRSxTQUFPSCxjQUFjSSxJQUFkLENBQW1CSCxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLE9BQW5DLENBQVA7QUFBcUQiLCJmaWxlIjoiY2hhcmFjdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckRpZmYgPSBuZXcgRGlmZigpO1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGFycyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykgeyByZXR1cm4gY2hhcmFjdGVyRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTsgfVxuIl19
-
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.wordDiff = undefined;
-	exports. /*istanbul ignore end*/diffWords = diffWords;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	/*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/ // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode
-	//
-	// Ranges and exceptions:
-	// Latin-1 Supplement, 0080–00FF
-	//  - U+00D7  × Multiplication sign
-	//  - U+00F7  ÷ Division sign
-	// Latin Extended-A, 0100–017F
-	// Latin Extended-B, 0180–024F
-	// IPA Extensions, 0250–02AF
-	// Spacing Modifier Letters, 02B0–02FF
-	//  - U+02C7  ˇ ˇ  Caron
-	//  - U+02D8  ˘ ˘  Breve
-	//  - U+02D9  ˙ ˙  Dot Above
-	//  - U+02DA  ˚ ˚  Ring Above
-	//  - U+02DB  ˛ ˛  Ogonek
-	//  - U+02DC  ˜ ˜  Small Tilde
-	//  - U+02DD  ˝ ˝  Double Acute Accent
-	// Latin Extended Additional, 1E00–1EFF
-	var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
-
-	var reWhitespace = /\S/;
-
-	var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	wordDiff.equals = function (left, right) {
-	  if (this.options.ignoreCase) {
-	    left = left.toLowerCase();
-	    right = right.toLowerCase();
-	  }
-	  return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
-	};
-	wordDiff.tokenize = function (value) {
-	  var tokens = value.split(/(\s+|\b)/);
-
-	  // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
-	  for (var i = 0; i < tokens.length - 1; i++) {
-	    // If we have an empty string in the next field and we have only word chars before and after, merge
-	    if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
-	      tokens[i] += tokens[i + 2];
-	      tokens.splice(i + 1, 2);
-	      i--;
-	    }
-	  }
-
-	  return tokens;
-	};
-
-	function diffWords(oldStr, newStr, options) {
-	  options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(options, { ignoreWhitespace: true });
-	  return wordDiff.diff(oldStr, newStr, options);
-	}
-
-	function diffWordsWithSpace(oldStr, newStr, options) {
-	  return wordDiff.diff(oldStr, newStr, options);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOlsiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZXh0ZW5kZWRXb3JkQ2hhcnMiLCJyZVdoaXRlc3BhY2UiLCJ3b3JkRGlmZiIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsIm9wdGlvbnMiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJpZ25vcmVXaGl0ZXNwYWNlIiwidGVzdCIsInRva2VuaXplIiwidmFsdWUiLCJ0b2tlbnMiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJzcGxpY2UiLCJvbGRTdHIiLCJuZXdTdHIiLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7O2dDQW1EZ0JBLFMsR0FBQUEsUzt5REFLQUMsa0IsR0FBQUEsa0I7O0FBeERoQjs7Ozt1QkFDQTs7Ozt3QkFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsK0RBQTFCOztBQUVBLElBQU1DLGVBQWUsSUFBckI7O0FBRU8sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1BBLFNBQVNDLE1BQVQsR0FBa0IsVUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXNCO0FBQ3RDLE1BQUksS0FBS0MsT0FBTCxDQUFhQyxVQUFqQixFQUE2QjtBQUMzQkgsV0FBT0EsS0FBS0ksV0FBTCxFQUFQO0FBQ0FILFlBQVFBLE1BQU1HLFdBQU4sRUFBUjtBQUNEO0FBQ0QsU0FBT0osU0FBU0MsS0FBVCxJQUFtQixLQUFLQyxPQUFMLENBQWFHLGdCQUFiLElBQWlDLENBQUNSLGFBQWFTLElBQWIsQ0FBa0JOLElBQWxCLENBQWxDLElBQTZELENBQUNILGFBQWFTLElBQWIsQ0FBa0JMLEtBQWxCLENBQXhGO0FBQ0QsQ0FORDtBQU9BSCxTQUFTUyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsU0FBU0QsTUFBTUUsS0FBTixDQUFZLFVBQVosQ0FBYjs7QUFFQTtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixPQUFPRyxNQUFQLEdBQWdCLENBQXBDLEVBQXVDRCxHQUF2QyxFQUE0QztBQUMxQztBQUNBLFFBQUksQ0FBQ0YsT0FBT0UsSUFBSSxDQUFYLENBQUQsSUFBa0JGLE9BQU9FLElBQUksQ0FBWCxDQUFsQixJQUNLZixrQkFBa0JVLElBQWxCLENBQXVCRyxPQUFPRSxDQUFQLENBQXZCLENBREwsSUFFS2Ysa0JBQWtCVSxJQUFsQixDQUF1QkcsT0FBT0UsSUFBSSxDQUFYLENBQXZCLENBRlQsRUFFZ0Q7QUFDOUNGLGFBQU9FLENBQVAsS0FBYUYsT0FBT0UsSUFBSSxDQUFYLENBQWI7QUFDQUYsYUFBT0ksTUFBUCxDQUFjRixJQUFJLENBQWxCLEVBQXFCLENBQXJCO0FBQ0FBO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPRixNQUFQO0FBQ0QsQ0FoQkQ7O0FBa0JPLFNBQVNmLFNBQVQsQ0FBbUJvQixNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNiLE9BQW5DLEVBQTRDO0FBQ2pEQSxZQUFVLDhFQUFnQkEsT0FBaEIsRUFBeUIsRUFBQ0csa0JBQWtCLElBQW5CLEVBQXpCLENBQVY7QUFDQSxTQUFPUCxTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEOztBQUVNLFNBQVNQLGtCQUFULENBQTRCbUIsTUFBNUIsRUFBb0NDLE1BQXBDLEVBQTRDYixPQUE1QyxFQUFxRDtBQUMxRCxTQUFPSixTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVDYXNlKSB7XG4gICAgbGVmdCA9IGxlZnQudG9Mb3dlckNhc2UoKTtcbiAgICByaWdodCA9IHJpZ2h0LnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3Jkc1dpdGhTcGFjZShvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4iXX0=
-
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/generateOptions = generateOptions;
-	function generateOptions(options, defaults) {
-	  if (typeof options === 'function') {
-	    defaults.callback = options;
-	  } else if (options) {
-	    for (var name in options) {
-	      /* istanbul ignore else */
-	      if (options.hasOwnProperty(name)) {
-	        defaults[name] = options[name];
-	      }
-	    }
-	  }
-	  return defaults;
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6WyJnZW5lcmF0ZU9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJjYWxsYmFjayIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsZSxHQUFBQSxlO0FBQVQsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsYUFBU0MsUUFBVCxHQUFvQkYsT0FBcEI7QUFDRCxHQUZELE1BRU8sSUFBSUEsT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSUcsSUFBVCxJQUFpQkgsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxVQUFJQSxRQUFRSSxjQUFSLENBQXVCRCxJQUF2QixDQUFKLEVBQWtDO0FBQ2hDRixpQkFBU0UsSUFBVCxJQUFpQkgsUUFBUUcsSUFBUixDQUFqQjtBQUNEO0FBQ0Y7QUFDRjtBQUNELFNBQU9GLFFBQVA7QUFDRCIsImZpbGUiOiJwYXJhbXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0=
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.lineDiff = undefined;
-	exports. /*istanbul ignore end*/diffLines = diffLines;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	/*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	lineDiff.tokenize = function (value) {
-	  var retLines = [],
-	      linesAndNewlines = value.split(/(\n|\r\n)/);
-
-	  // Ignore the final empty token that occurs if the string ends with a new line
-	  if (!linesAndNewlines[linesAndNewlines.length - 1]) {
-	    linesAndNewlines.pop();
-	  }
-
-	  // Merge the content and line separators into single tokens
-	  for (var i = 0; i < linesAndNewlines.length; i++) {
-	    var line = linesAndNewlines[i];
-
-	    if (i % 2 && !this.options.newlineIsToken) {
-	      retLines[retLines.length - 1] += line;
-	    } else {
-	      if (this.options.ignoreWhitespace) {
-	        line = line.trim();
-	      }
-	      retLines.push(line);
-	    }
-	  }
-
-	  return retLines;
-	};
-
-	function diffLines(oldStr, newStr, callback) {
-	  return lineDiff.diff(oldStr, newStr, callback);
-	}
-	function diffTrimmedLines(oldStr, newStr, callback) {
-	  var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true });
-	  return lineDiff.diff(oldStr, newStr, options);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOlsiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImxpbmVEaWZmIiwidG9rZW5pemUiLCJ2YWx1ZSIsInJldExpbmVzIiwibGluZXNBbmROZXdsaW5lcyIsInNwbGl0IiwibGVuZ3RoIiwicG9wIiwiaSIsImxpbmUiLCJvcHRpb25zIiwibmV3bGluZUlzVG9rZW4iLCJpZ25vcmVXaGl0ZXNwYWNlIiwidHJpbSIsInB1c2giLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBOEJnQkEsUyxHQUFBQSxTO3lEQUNBQyxnQixHQUFBQSxnQjs7QUEvQmhCOzs7O3VCQUNBOzs7O3VCQUVPLElBQU1DLCtFQUFXLHdFQUFqQjtBQUNQQSxTQUFTQyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsV0FBVyxFQUFmO0FBQUEsTUFDSUMsbUJBQW1CRixNQUFNRyxLQUFOLENBQVksV0FBWixDQUR2Qjs7QUFHQTtBQUNBLE1BQUksQ0FBQ0QsaUJBQWlCQSxpQkFBaUJFLE1BQWpCLEdBQTBCLENBQTNDLENBQUwsRUFBb0Q7QUFDbERGLHFCQUFpQkcsR0FBakI7QUFDRDs7QUFFRDtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJSixpQkFBaUJFLE1BQXJDLEVBQTZDRSxHQUE3QyxFQUFrRDtBQUNoRCxRQUFJQyxPQUFPTCxpQkFBaUJJLENBQWpCLENBQVg7O0FBRUEsUUFBSUEsSUFBSSxDQUFKLElBQVMsQ0FBQyxLQUFLRSxPQUFMLENBQWFDLGNBQTNCLEVBQTJDO0FBQ3pDUixlQUFTQSxTQUFTRyxNQUFULEdBQWtCLENBQTNCLEtBQWlDRyxJQUFqQztBQUNELEtBRkQsTUFFTztBQUNMLFVBQUksS0FBS0MsT0FBTCxDQUFhRSxnQkFBakIsRUFBbUM7QUFDakNILGVBQU9BLEtBQUtJLElBQUwsRUFBUDtBQUNEO0FBQ0RWLGVBQVNXLElBQVQsQ0FBY0wsSUFBZDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT04sUUFBUDtBQUNELENBeEJEOztBQTBCTyxTQUFTTCxTQUFULENBQW1CaUIsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxRQUFuQyxFQUE2QztBQUFFLFNBQU9qQixTQUFTa0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsUUFBOUIsQ0FBUDtBQUFpRDtBQUNoRyxTQUFTbEIsZ0JBQVQsQ0FBMEJnQixNQUExQixFQUFrQ0MsTUFBbEMsRUFBMENDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUlQLFVBQVUsOEVBQWdCTyxRQUFoQixFQUEwQixFQUFDTCxrQkFBa0IsSUFBbkIsRUFBMUIsQ0FBZDtBQUNBLFNBQU9aLFNBQVNrQixJQUFULENBQWNILE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCTixPQUE5QixDQUFQO0FBQ0QiLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2dlbmVyYXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbC9wYXJhbXMnO1xuXG5leHBvcnQgY29uc3QgbGluZURpZmYgPSBuZXcgRGlmZigpO1xubGluZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgcmV0TGluZXMgPSBbXSxcbiAgICAgIGxpbmVzQW5kTmV3bGluZXMgPSB2YWx1ZS5zcGxpdCgvKFxcbnxcXHJcXG4pLyk7XG5cbiAgLy8gSWdub3JlIHRoZSBmaW5hbCBlbXB0eSB0b2tlbiB0aGF0IG9jY3VycyBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhIG5ldyBsaW5lXG4gIGlmICghbGluZXNBbmROZXdsaW5lc1tsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgbGluZXNBbmROZXdsaW5lcy5wb3AoKTtcbiAgfVxuXG4gIC8vIE1lcmdlIHRoZSBjb250ZW50IGFuZCBsaW5lIHNlcGFyYXRvcnMgaW50byBzaW5nbGUgdG9rZW5zXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXNBbmROZXdsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNBbmROZXdsaW5lc1tpXTtcblxuICAgIGlmIChpICUgMiAmJiAhdGhpcy5vcHRpb25zLm5ld2xpbmVJc1Rva2VuKSB7XG4gICAgICByZXRMaW5lc1tyZXRMaW5lcy5sZW5ndGggLSAxXSArPSBsaW5lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlnbm9yZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0TGluZXMucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0TGluZXM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG5leHBvcnQgZnVuY3Rpb24gZGlmZlRyaW1tZWRMaW5lcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbiJdfQ==
-
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.sentenceDiff = undefined;
-	exports. /*istanbul ignore end*/diffSentences = diffSentences;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	sentenceDiff.tokenize = function (value) {
-	  return value.split(/(\S.+?[.!?])(?=\s+|$)/);
-	};
-
-	function diffSentences(oldStr, newStr, callback) {
-	  return sentenceDiff.diff(oldStr, newStr, callback);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbImRpZmZTZW50ZW5jZXMiLCJzZW50ZW5jZURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic3BsaXQiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCQSxhLEdBQUFBLGE7O0FBUmhCOzs7Ozs7dUJBR08sSUFBTUMsdUZBQWUsd0VBQXJCO0FBQ1BBLGFBQWFDLFFBQWIsR0FBd0IsVUFBU0MsS0FBVCxFQUFnQjtBQUN0QyxTQUFPQSxNQUFNQyxLQUFOLENBQVksdUJBQVosQ0FBUDtBQUNELENBRkQ7O0FBSU8sU0FBU0osYUFBVCxDQUF1QkssTUFBdkIsRUFBK0JDLE1BQS9CLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUFFLFNBQU9OLGFBQWFPLElBQWIsQ0FBa0JILE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ0MsUUFBbEMsQ0FBUDtBQUFxRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ==
-
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.cssDiff = undefined;
-	exports. /*istanbul ignore end*/diffCss = diffCss;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	cssDiff.tokenize = function (value) {
-	  return value.split(/([{}:;,]|\s+)/);
-	};
-
-	function diffCss(oldStr, newStr, callback) {
-	  return cssDiff.diff(oldStr, newStr, callback);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6WyJkaWZmQ3NzIiwiY3NzRGlmZiIsInRva2VuaXplIiwidmFsdWUiLCJzcGxpdCIsIm9sZFN0ciIsIm5ld1N0ciIsImNhbGxiYWNrIiwiZGlmZiJdLCJtYXBwaW5ncyI6Ijs7OztnQ0FPZ0JBLE8sR0FBQUEsTzs7QUFQaEI7Ozs7Ozt1QkFFTyxJQUFNQyw2RUFBVSx3RUFBaEI7QUFDUEEsUUFBUUMsUUFBUixHQUFtQixVQUFTQyxLQUFULEVBQWdCO0FBQ2pDLFNBQU9BLE1BQU1DLEtBQU4sQ0FBWSxlQUFaLENBQVA7QUFDRCxDQUZEOztBQUlPLFNBQVNKLE9BQVQsQ0FBaUJLLE1BQWpCLEVBQXlCQyxNQUF6QixFQUFpQ0MsUUFBakMsRUFBMkM7QUFBRSxTQUFPTixRQUFRTyxJQUFSLENBQWFILE1BQWIsRUFBcUJDLE1BQXJCLEVBQTZCQyxRQUE3QixDQUFQO0FBQWdEIiwiZmlsZSI6ImNzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjc3NEaWZmID0gbmV3IERpZmYoKTtcbmNzc0RpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhbe306OyxdfFxccyspLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNzcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIGNzc0RpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG4iXX0=
-
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.jsonDiff = undefined;
-
-	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-	exports. /*istanbul ignore end*/diffJson = diffJson;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	/*istanbul ignore end*/var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/var objectPrototypeToString = Object.prototype.toString;
-
-	var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
-	// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
-	jsonDiff.useLongestToken = true;
-
-	jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff /*istanbul ignore end*/.tokenize;
-	jsonDiff.castInput = function (value) {
-	  /*istanbul ignore start*/var _options = /*istanbul ignore end*/this.options,
-	      undefinedReplacement = _options.undefinedReplacement,
-	      _options$stringifyRep = _options.stringifyReplacer,
-	      stringifyReplacer = _options$stringifyRep === undefined ? function (k, v) /*istanbul ignore start*/{
-	    return (/*istanbul ignore end*/typeof v === 'undefined' ? undefinedReplacement : v
-	    );
-	  } : _options$stringifyRep;
-
-
-	  return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, '  ');
-	};
-	jsonDiff.equals = function (left, right) {
-	  return (/*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'))
-	  );
-	};
-
-	function diffJson(oldObj, newObj, options) {
-	  return jsonDiff.diff(oldObj, newObj, options);
-	}
-
-	// This function handles the presence of circular references by bailing out when encountering an
-	// object that is already on the "stack" of items being processed. Accepts an optional replacer
-	function canonicalize(obj, stack, replacementStack, replacer, key) {
-	  stack = stack || [];
-	  replacementStack = replacementStack || [];
-
-	  if (replacer) {
-	    obj = replacer(key, obj);
-	  }
-
-	  var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-
-	  for (i = 0; i < stack.length; i += 1) {
-	    if (stack[i] === obj) {
-	      return replacementStack[i];
-	    }
-	  }
-
-	  var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-
-	  if ('[object Array]' === objectPrototypeToString.call(obj)) {
-	    stack.push(obj);
-	    canonicalizedObj = new Array(obj.length);
-	    replacementStack.push(canonicalizedObj);
-	    for (i = 0; i < obj.length; i += 1) {
-	      canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
-	    }
-	    stack.pop();
-	    replacementStack.pop();
-	    return canonicalizedObj;
-	  }
-
-	  if (obj && obj.toJSON) {
-	    obj = obj.toJSON();
-	  }
-
-	  if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) {
-	    stack.push(obj);
-	    canonicalizedObj = {};
-	    replacementStack.push(canonicalizedObj);
-	    var sortedKeys = [],
-	        _key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-	    for (_key in obj) {
-	      /* istanbul ignore else */
-	      if (obj.hasOwnProperty(_key)) {
-	        sortedKeys.push(_key);
-	      }
-	    }
-	    sortedKeys.sort();
-	    for (i = 0; i < sortedKeys.length; i += 1) {
-	      _key = sortedKeys[i];
-	      canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
-	    }
-	    stack.pop();
-	    replacementStack.pop();
-	  } else {
-	    canonicalizedObj = obj;
-	  }
-	  return canonicalizedObj;
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOlsiZGlmZkpzb24iLCJjYW5vbmljYWxpemUiLCJvYmplY3RQcm90b3R5cGVUb1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwianNvbkRpZmYiLCJ1c2VMb25nZXN0VG9rZW4iLCJ0b2tlbml6ZSIsImNhc3RJbnB1dCIsInZhbHVlIiwib3B0aW9ucyIsInVuZGVmaW5lZFJlcGxhY2VtZW50Iiwic3RyaW5naWZ5UmVwbGFjZXIiLCJrIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJjYWxsIiwicmVwbGFjZSIsIm9sZE9iaiIsIm5ld09iaiIsImRpZmYiLCJvYmoiLCJzdGFjayIsInJlcGxhY2VtZW50U3RhY2siLCJyZXBsYWNlciIsImtleSIsImkiLCJsZW5ndGgiLCJjYW5vbmljYWxpemVkT2JqIiwicHVzaCIsIkFycmF5IiwicG9wIiwidG9KU09OIiwic29ydGVkS2V5cyIsImhhc093blByb3BlcnR5Iiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FxQmdCQSxRLEdBQUFBLFE7eURBSUFDLFksR0FBQUEsWTs7QUF6QmhCOzs7O3VCQUNBOzs7O3VCQUVBLElBQU1DLDBCQUEwQkMsT0FBT0MsU0FBUCxDQUFpQkMsUUFBakQ7O0FBR08sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1A7QUFDQTtBQUNBQSxTQUFTQyxlQUFULEdBQTJCLElBQTNCOztBQUVBRCxTQUFTRSxRQUFULEdBQW9CLGdFQUFTQSxRQUE3QjtBQUNBRixTQUFTRyxTQUFULEdBQXFCLFVBQVNDLEtBQVQsRUFBZ0I7QUFBQSxpRUFDK0UsS0FBS0MsT0FEcEY7QUFBQSxNQUM1QkMsb0JBRDRCLFlBQzVCQSxvQkFENEI7QUFBQSx1Q0FDTkMsaUJBRE07QUFBQSxNQUNOQSxpQkFETSx5Q0FDYyxVQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxtQ0FBVSxPQUFPQSxDQUFQ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QUFLVCxJQUFJLENBQVQsRUFBWUEsSUFBSU8sV0FBV04sTUFBM0IsRUFBbUNELEtBQUssQ0FBeEMsRUFBMkM7QUFDekNELGFBQU1RLFdBQVdQLENBQVgsQ0FBTjtBQUNBRSx1QkFBaUJILElBQWpCLElBQXdCN0IsYUFBYXlCLElBQUlJLElBQUosQ0FBYixFQUF1QkgsS0FBdkIsRUFBOEJDLGdCQUE5QixFQUFnREMsUUFBaEQsRUFBMERDLElBQTFELENBQXhCO0FBQ0Q7QUFDREgsVUFBTVMsR0FBTjtBQUNBUixxQkFBaUJRLEdBQWpCO0FBQ0QsR0FuQkQsTUFtQk87QUFDTEgsdUJBQW1CUCxHQUFuQjtBQUNEO0FBQ0QsU0FBT08sZ0JBQVA7QUFDRCIsImZpbGUiOiJqc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7bGluZURpZmZ9IGZyb20gJy4vbGluZSc7XG5cbmNvbnN0IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuXG5leHBvcnQgY29uc3QganNvbkRpZmYgPSBuZXcgRGlmZigpO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSBsaW5lRGlmZi50b2tlbml6ZTtcbmpzb25EaWZmLmNhc3RJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGNvbnN0IHt1bmRlZmluZWRSZXBsYWNlbWVudCwgc3RyaW5naWZ5UmVwbGFjZXIgPSAoaywgdikgPT4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkUmVwbGFjZW1lbnQgOiB2fSA9IHRoaXMub3B0aW9ucztcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlLCBudWxsLCBudWxsLCBzdHJpbmdpZnlSZXBsYWNlciksIHN0cmluZ2lmeVJlcGxhY2VyLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzLmNhbGwoanNvbkRpZmYsIGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgb3B0aW9ucykgeyByZXR1cm4ganNvbkRpZmYuZGlmZihvbGRPYmosIG5ld09iaiwgb3B0aW9ucyk7IH1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLiBBY2NlcHRzIGFuIG9wdGlvbmFsIHJlcGxhY2VyXG5leHBvcnQgZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgaWYgKHJlcGxhY2VyKSB7XG4gICAgb2JqID0gcmVwbGFjZXIoa2V5LCBvYmopO1xuICB9XG5cbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHN0YWNrW2ldID09PSBvYmopIHtcbiAgICAgIHJldHVybiByZXBsYWNlbWVudFN0YWNrW2ldO1xuICAgIH1cbiAgfVxuXG4gIGxldCBjYW5vbmljYWxpemVkT2JqO1xuXG4gIGlmICgnW29iamVjdCBBcnJheV0nID09PSBvYmplY3RQcm90b3R5cGVUb1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG5ldyBBcnJheShvYmoubGVuZ3RoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnB1c2goY2Fub25pY2FsaXplZE9iaik7XG4gICAgZm9yIChpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY2Fub25pY2FsaXplZE9ialtpXSA9IGNhbm9uaWNhbGl6ZShvYmpbaV0sIHN0YWNrLCByZXBsYWNlbWVudFN0YWNrLCByZXBsYWNlciwga2V5KTtcbiAgICB9XG4gICAgc3RhY2sucG9wKCk7XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wb3AoKTtcbiAgICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbiAgfVxuXG4gIGlmIChvYmogJiYgb2JqLnRvSlNPTikge1xuICAgIG9iaiA9IG9iai50b0pTT04oKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IHt9O1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4iXX0=
-
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports.arrayDiff = undefined;
-	exports. /*istanbul ignore end*/diffArrays = diffArrays;
-
-	var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-	arrayDiff.tokenize = function (value) {
-	  return value.slice();
-	};
-	arrayDiff.join = arrayDiff.removeEmpty = function (value) {
-	  return value;
-	};
-
-	function diffArrays(oldArr, newArr, callback) {
-	  return arrayDiff.diff(oldArr, newArr, callback);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2FycmF5LmpzIl0sIm5hbWVzIjpbImRpZmZBcnJheXMiLCJhcnJheURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic2xpY2UiLCJqb2luIiwicmVtb3ZlRW1wdHkiLCJvbGRBcnIiLCJuZXdBcnIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBVWdCQSxVLEdBQUFBLFU7O0FBVmhCOzs7Ozs7dUJBRU8sSUFBTUMsaUZBQVksd0VBQWxCO0FBQ1BBLFVBQVVDLFFBQVYsR0FBcUIsVUFBU0MsS0FBVCxFQUFnQjtBQUNuQyxTQUFPQSxNQUFNQyxLQUFOLEVBQVA7QUFDRCxDQUZEO0FBR0FILFVBQVVJLElBQVYsR0FBaUJKLFVBQVVLLFdBQVYsR0FBd0IsVUFBU0gsS0FBVCxFQUFnQjtBQUN2RCxTQUFPQSxLQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTSCxVQUFULENBQW9CTyxNQUFwQixFQUE0QkMsTUFBNUIsRUFBb0NDLFFBQXBDLEVBQThDO0FBQUUsU0FBT1IsVUFBVVMsSUFBVixDQUFlSCxNQUFmLEVBQXVCQyxNQUF2QixFQUErQkMsUUFBL0IsQ0FBUDtBQUFrRCIsImZpbGUiOiJhcnJheS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBhcnJheURpZmYgPSBuZXcgRGlmZigpO1xuYXJyYXlEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNsaWNlKCk7XG59O1xuYXJyYXlEaWZmLmpvaW4gPSBhcnJheURpZmYucmVtb3ZlRW1wdHkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkFycmF5cyhvbGRBcnIsIG5ld0FyciwgY2FsbGJhY2spIHsgcmV0dXJuIGFycmF5RGlmZi5kaWZmKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjayk7IH1cbiJdfQ==
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/applyPatch = applyPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches;
-
-	var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_distanceIterator = __webpack_require__(12) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/var _distanceIterator2 = _interopRequireDefault(_distanceIterator);
-
-	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-	/*istanbul ignore end*/function applyPatch(source, uniDiff) {
-	  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
-	  if (typeof uniDiff === 'string') {
-	    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
-	  }
-
-	  if (Array.isArray(uniDiff)) {
-	    if (uniDiff.length > 1) {
-	      throw new Error('applyPatch only works with a single input.');
-	    }
-
-	    uniDiff = uniDiff[0];
-	  }
-
-	  // Apply the diff to the input
-	  var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
-	      delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
-	      hunks = uniDiff.hunks,
-	      compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{
-	    return (/*istanbul ignore end*/line === patchContent
-	    );
-	  },
-	      errorCount = 0,
-	      fuzzFactor = options.fuzzFactor || 0,
-	      minLine = 0,
-	      offset = 0,
-	      removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
-	      addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-
-	  /**
-	   * Checks if the hunk exactly fits on the provided location
-	   */
-	  function hunkFits(hunk, toPos) {
-	    for (var j = 0; j < hunk.lines.length; j++) {
-	      var line = hunk.lines[j],
-	          operation = line.length > 0 ? line[0] : ' ',
-	          content = line.length > 0 ? line.substr(1) : line;
-
-	      if (operation === ' ' || operation === '-') {
-	        // Context sanity check
-	        if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
-	          errorCount++;
-
-	          if (errorCount > fuzzFactor) {
-	            return false;
-	          }
-	        }
-	        toPos++;
-	      }
-	    }
-
-	    return true;
-	  }
-
-	  // Search best fit offsets for each hunk based on the previous ones
-	  for (var i = 0; i < hunks.length; i++) {
-	    var hunk = hunks[i],
-	        maxLine = lines.length - hunk.oldLines,
-	        localOffset = 0,
-	        toPos = offset + hunk.oldStart - 1;
-
-	    var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine);
-
-	    for (; localOffset !== undefined; localOffset = iterator()) {
-	      if (hunkFits(hunk, toPos + localOffset)) {
-	        hunk.offset = offset += localOffset;
-	        break;
-	      }
-	    }
-
-	    if (localOffset === undefined) {
-	      return false;
-	    }
-
-	    // Set lower text limit to end of the current hunk, so next ones don't try
-	    // to fit over already patched text
-	    minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
-	  }
-
-	  // Apply patch hunks
-	  var diffOffset = 0;
-	  for (var _i = 0; _i < hunks.length; _i++) {
-	    var _hunk = hunks[_i],
-	        _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
-	    diffOffset += _hunk.newLines - _hunk.oldLines;
-
-	    if (_toPos < 0) {
-	      // Creating a new file
-	      _toPos = 0;
-	    }
-
-	    for (var j = 0; j < _hunk.lines.length; j++) {
-	      var line = _hunk.lines[j],
-	          operation = line.length > 0 ? line[0] : ' ',
-	          content = line.length > 0 ? line.substr(1) : line,
-	          delimiter = _hunk.linedelimiters[j];
-
-	      if (operation === ' ') {
-	        _toPos++;
-	      } else if (operation === '-') {
-	        lines.splice(_toPos, 1);
-	        delimiters.splice(_toPos, 1);
-	        /* istanbul ignore else */
-	      } else if (operation === '+') {
-	        lines.splice(_toPos, 0, content);
-	        delimiters.splice(_toPos, 0, delimiter);
-	        _toPos++;
-	      } else if (operation === '\\') {
-	        var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
-	        if (previousOperation === '+') {
-	          removeEOFNL = true;
-	        } else if (previousOperation === '-') {
-	          addEOFNL = true;
-	        }
-	      }
-	    }
-	  }
-
-	  // Handle EOFNL insertion/removal
-	  if (removeEOFNL) {
-	    while (!lines[lines.length - 1]) {
-	      lines.pop();
-	      delimiters.pop();
-	    }
-	  } else if (addEOFNL) {
-	    lines.push('');
-	    delimiters.push('\n');
-	  }
-	  for (var _k = 0; _k < lines.length - 1; _k++) {
-	    lines[_k] = lines[_k] + delimiters[_k];
-	  }
-	  return lines.join('');
-	}
-
-	// Wrapper that supports multiple file patches via callbacks.
-	function applyPatches(uniDiff, options) {
-	  if (typeof uniDiff === 'string') {
-	    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
-	  }
-
-	  var currentIndex = 0;
-	  function processIndex() {
-	    var index = uniDiff[currentIndex++];
-	    if (!index) {
-	      return options.complete();
-	    }
-
-	    options.loadFile(index, function (err, data) {
-	      if (err) {
-	        return options.complete(err);
-	      }
-
-	      var updatedContent = applyPatch(data, index, options);
-	      options.patched(index, updatedContent, function (err) {
-	        if (err) {
-	          return options.complete(err);
-	        }
-
-	        processIndex();
-	      });
-	    });
-	  }
-	  processIndex();
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwiYXBwbHlQYXRjaGVzIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImxpbmVzIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJodW5rcyIsImNvbXBhcmVMaW5lIiwibGluZU51bWJlciIsImxpbmUiLCJvcGVyYXRpb24iLCJwYXRjaENvbnRlbnQiLCJlcnJvckNvdW50IiwiZnV6ekZhY3RvciIsIm1pbkxpbmUiLCJvZmZzZXQiLCJyZW1vdmVFT0ZOTCIsImFkZEVPRk5MIiwiaHVua0ZpdHMiLCJodW5rIiwidG9Qb3MiLCJqIiwiY29udGVudCIsInN1YnN0ciIsImkiLCJtYXhMaW5lIiwib2xkTGluZXMiLCJsb2NhbE9mZnNldCIsIm9sZFN0YXJ0IiwiaXRlcmF0b3IiLCJ1bmRlZmluZWQiLCJkaWZmT2Zmc2V0IiwibmV3TGluZXMiLCJkZWxpbWl0ZXIiLCJsaW5lZGVsaW1pdGVycyIsInNwbGljZSIsInByZXZpb3VzT3BlcmF0aW9uIiwicG9wIiwicHVzaCIsIl9rIiwiam9pbiIsImN1cnJlbnRJbmRleCIsInByb2Nlc3NJbmRleCIsImluZGV4IiwiY29tcGxldGUiLCJsb2FkRmlsZSIsImVyciIsImRhdGEiLCJ1cGRhdGVkQ29udGVudCIsInBhdGNoZWQiXSwibWFwcGluZ3MiOiI7OztnQ0FHZ0JBLFUsR0FBQUEsVTt5REFvSUFDLFksR0FBQUEsWTs7QUF2SWhCOztBQUNBOzs7Ozs7dUJBRU8sU0FBU0QsVUFBVCxDQUFvQkUsTUFBcEIsRUFBNEJDLE9BQTVCLEVBQW1EO0FBQUEsc0RBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDeEQsTUFBSSxPQUFPRCxPQUFQLEtBQW1CLFFBQXZCLEVBQWlDO0FBQy9CQSxjQUFVLHdFQUFXQSxPQUFYLENBQVY7QUFDRDs7QUFFRCxNQUFJRSxNQUFNQyxP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QUFZO0FBQ1YsYUFBTzlDLFFBQVErQyxRQUFSLEVBQVA7QUFDRDs7QUFFRC9DLFlBQVFnRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT2pELFFBQVErQyxRQUFSLENBQWlCRSxHQUFqQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUUsaUJBQWlCdkQsV0FBV3NELElBQVgsRUFBaUJKLEtBQWpCLEVBQXdCOUMsT0FBeEIsQ0FBckI7QUFDQUEsY0FBUW9ELE9BQVIsQ0FBZ0JOLEtBQWhCLEVBQXVCSyxjQUF2QixFQUF1QyxVQUFTRixHQUFULEVBQWM7QUFDbkQsWUFBSUEsR0FBSixFQUFTO0FBQ1AsaUJBQU9qRCxRQUFRK0MsUUFBUixDQUFpQkUsR0FBakIsQ0FBUDtBQUNEOztBQUVESjtBQUNELE9BTkQ7QUFPRCxLQWJEO0FBY0Q7QUFDREE7QUFDRCIsImZpbGUiOiJhcHBseS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGlmICh0b1BvcyA8IDApIHsgLy8gQ3JlYXRpbmcgYSBuZXcgZmlsZVxuICAgICAgdG9Qb3MgPSAwO1xuICAgIH1cblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19
-
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/parsePatch = parsePatch;
-	function parsePatch(uniDiff) {
-	  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-	  var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
-	      delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
-	      list = [],
-	      i = 0;
-
-	  function parseIndex() {
-	    var index = {};
-	    list.push(index);
-
-	    // Parse diff metadata
-	    while (i < diffstr.length) {
-	      var line = diffstr[i];
-
-	      // File header found, end parsing diff metadata
-	      if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
-	        break;
-	      }
-
-	      // Diff index
-	      var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
-	      if (header) {
-	        index.index = header[1];
-	      }
-
-	      i++;
-	    }
-
-	    // Parse file headers if they are defined. Unified diff requires them, but
-	    // there's no technical issues to have an isolated hunk without file header
-	    parseFileHeader(index);
-	    parseFileHeader(index);
-
-	    // Parse hunks
-	    index.hunks = [];
-
-	    while (i < diffstr.length) {
-	      var _line = diffstr[i];
-
-	      if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
-	        break;
-	      } else if (/^@@/.test(_line)) {
-	        index.hunks.push(parseHunk());
-	      } else if (_line && options.strict) {
-	        // Ignore unexpected content unless in strict mode
-	        throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
-	      } else {
-	        i++;
-	      }
-	    }
-	  }
-
-	  // Parses the --- and +++ headers, if none are found, no lines
-	  // are consumed.
-	  function parseFileHeader(index) {
-	    var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
-	    if (fileHeader) {
-	      var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
-	      var data = fileHeader[2].split('\t', 2);
-	      var fileName = data[0].replace(/\\\\/g, '\\');
-	      if (/^".*"$/.test(fileName)) {
-	        fileName = fileName.substr(1, fileName.length - 2);
-	      }
-	      index[keyPrefix + 'FileName'] = fileName;
-	      index[keyPrefix + 'Header'] = (data[1] || '').trim();
-
-	      i++;
-	    }
-	  }
-
-	  // Parses a hunk
-	  // This assumes that we are at the start of a hunk.
-	  function parseHunk() {
-	    var chunkHeaderIndex = i,
-	        chunkHeaderLine = diffstr[i++],
-	        chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
-
-	    var hunk = {
-	      oldStart: +chunkHeader[1],
-	      oldLines: +chunkHeader[2] || 1,
-	      newStart: +chunkHeader[3],
-	      newLines: +chunkHeader[4] || 1,
-	      lines: [],
-	      linedelimiters: []
-	    };
-
-	    var addCount = 0,
-	        removeCount = 0;
-	    for (; i < diffstr.length; i++) {
-	      // Lines starting with '---' could be mistaken for the "remove line" operation
-	      // But they could be the header for the next file. Therefore prune such cases out.
-	      if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
-	        break;
-	      }
-	      var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
-
-	      if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
-	        hunk.lines.push(diffstr[i]);
-	        hunk.linedelimiters.push(delimiters[i] || '\n');
-
-	        if (operation === '+') {
-	          addCount++;
-	        } else if (operation === '-') {
-	          removeCount++;
-	        } else if (operation === ' ') {
-	          addCount++;
-	          removeCount++;
-	        }
-	      } else {
-	        break;
-	      }
-	    }
-
-	    // Handle the empty block count case
-	    if (!addCount && hunk.newLines === 1) {
-	      hunk.newLines = 0;
-	    }
-	    if (!removeCount && hunk.oldLines === 1) {
-	      hunk.oldLines = 0;
-	    }
-
-	    // Perform optional sanity checking
-	    if (options.strict) {
-	      if (addCount !== hunk.newLines) {
-	        throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
-	      }
-	      if (removeCount !== hunk.oldLines) {
-	        throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
-	      }
-	    }
-
-	    return hunk;
-	  }
-
-	  while (i < diffstr.length) {
-	    parseIndex();
-	  }
-
-	  return list;
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6WyJwYXJzZVBhdGNoIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJkaWZmc3RyIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJsaXN0IiwiaSIsInBhcnNlSW5kZXgiLCJpbmRleCIsInB1c2giLCJsZW5ndGgiLCJsaW5lIiwidGVzdCIsImhlYWRlciIsImV4ZWMiLCJwYXJzZUZpbGVIZWFkZXIiLCJodW5rcyIsInBhcnNlSHVuayIsInN0cmljdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbGVIZWFkZXIiLCJrZXlQcmVmaXgiLCJkYXRhIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwic3Vic3RyIiwidHJpbSIsImNodW5rSGVhZGVySW5kZXgiLCJjaHVua0hlYWRlckxpbmUiLCJjaHVua0hlYWRlciIsImh1bmsiLCJvbGRTdGFydCIsIm9sZExpbmVzIiwibmV3U3RhcnQiLCJuZXdMaW5lcyIsImxpbmVzIiwibGluZWRlbGltaXRlcnMiLCJhZGRDb3VudCIsInJlbW92ZUNvdW50IiwiaW5kZXhPZiIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsVSxHQUFBQSxVO0FBQVQsU0FBU0EsVUFBVCxDQUFvQkMsT0FBcEIsRUFBMkM7QUFBQSxzREFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUNoRCxNQUFJQyxVQUFVRixRQUFRRyxLQUFSLENBQWMscUJBQWQsQ0FBZDtBQUFBLE1BQ0lDLGFBQWFKLFFBQVFLLEtBQVIsQ0FBYyxzQkFBZCxLQUF5QyxFQUQxRDtBQUFBLE1BRUlDLE9BQU8sRUFGWDtBQUFBLE1BR0lDLElBQUksQ0FIUjs7QUFLQSxXQUFTQyxVQUFULEdBQXNCO0FBQ3BCLFFBQUlDLFFBQVEsRUFBWjtBQUNBSCxTQUFLSSxJQUFMLENBQVVELEtBQVY7O0FBRUE7QUFDQSxXQUFPRixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6QixVQUFJQyxPQUFPVixRQUFR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QW9CO0FBQ2xCLFVBQUlxQixhQUFhUCxLQUFLSSxRQUF0QixFQUFnQztBQUM5QixjQUFNLElBQUlqQixLQUFKLENBQVUsc0RBQXNEVSxtQkFBbUIsQ0FBekUsQ0FBVixDQUFOO0FBQ0Q7QUFDRCxVQUFJVyxnQkFBZ0JSLEtBQUtFLFFBQXpCLEVBQW1DO0FBQ2pDLGNBQU0sSUFBSWYsS0FBSixDQUFVLHdEQUF3RFUsbUJBQW1CLENBQTNFLENBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0csSUFBUDtBQUNEOztBQUVELFNBQU8xQixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6Qkg7QUFDRDs7QUFFRCxTQUFPRixJQUFQO0FBQ0QiLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KC9cXHJcXG58W1xcblxcdlxcZlxcclxceDg1XS8pLFxuICAgICAgZGVsaW1pdGVycyA9IHVuaURpZmYubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgbGlzdCA9IFtdLFxuICAgICAgaSA9IDA7XG5cbiAgZnVuY3Rpb24gcGFyc2VJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB7fTtcbiAgICBsaXN0LnB1c2goaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgZGlmZiBtZXRhZGF0YVxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgLy8gRmlsZSBoZWFkZXIgZm91bmQsIGVuZCBwYXJzaW5nIGRpZmYgbWV0YWRhdGFcbiAgICAgIGlmICgvXihcXC1cXC1cXC18XFwrXFwrXFwrfEBAKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gRGlmZiBpbmRleFxuICAgICAgbGV0IGhlYWRlciA9ICgvXig/OkluZGV4OnxkaWZmKD86IC1yIFxcdyspKylcXHMrKC4rPylcXHMqJC8pLmV4ZWMobGluZSk7XG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGluZGV4LmluZGV4ID0gaGVhZGVyWzFdO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgZmlsZSBoZWFkZXJzIGlmIHRoZXkgYXJlIGRlZmluZWQuIFVuaWZpZWQgZGlmZiByZXF1aXJlcyB0aGVtLCBidXRcbiAgICAvLyB0aGVyZSdzIG5vIHRlY2huaWNhbCBpc3N1ZXMgdG8gaGF2ZSBhbiBpc29sYXRlZCBodW5rIHdpdGhvdXQgZmlsZSBoZWFkZXJcbiAgICBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpO1xuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBodW5rc1xuICAgIGluZGV4Lmh1bmtzID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIGlmICgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAoL15AQC8udGVzdChsaW5lKSkge1xuICAgICAgICBpbmRleC5odW5rcy5wdXNoKHBhcnNlSHVuaygpKTtcbiAgICAgIH0gZWxzZSBpZiAobGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KGxpbmUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYXJzZXMgdGhlIC0tLSBhbmQgKysrIGhlYWRlcnMsIGlmIG5vbmUgYXJlIGZvdW5kLCBubyBsaW5lc1xuICAvLyBhcmUgY29uc3VtZWQuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZUhlYWRlcihpbmRleCkge1xuICAgIGNvbnN0IGZpbGVIZWFkZXIgPSAoL14oLS0tfFxcK1xcK1xcKylcXHMrKC4qKSQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgY29uc3QgZGF0YSA9IGZpbGVIZWFkZXJbMl0uc3BsaXQoJ1xcdCcsIDIpO1xuICAgICAgbGV0IGZpbGVOYW1lID0gZGF0YVswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpO1xuICAgICAgaWYgKC9eXCIuKlwiJC8udGVzdChmaWxlTmFtZSkpIHtcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMSwgZmlsZU5hbWUubGVuZ3RoIC0gMik7XG4gICAgICB9XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnRmlsZU5hbWUnXSA9IGZpbGVOYW1lO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gKGRhdGFbMV0gfHwgJycpLnRyaW0oKTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdLFxuICAgICAgbGluZWRlbGltaXRlcnM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggJy0tLScgY291bGQgYmUgbWlzdGFrZW4gZm9yIHRoZSBcInJlbW92ZSBsaW5lXCIgb3BlcmF0aW9uXG4gICAgICAvLyBCdXQgdGhleSBjb3VsZCBiZSB0aGUgaGVhZGVyIGZvciB0aGUgbmV4dCBmaWxlLiBUaGVyZWZvcmUgcHJ1bmUgc3VjaCBjYXNlcyBvdXQuXG4gICAgICBpZiAoZGlmZnN0cltpXS5pbmRleE9mKCctLS0gJykgPT09IDBcbiAgICAgICAgICAgICYmIChpICsgMiA8IGRpZmZzdHIubGVuZ3RoKVxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMV0uaW5kZXhPZignKysrICcpID09PSAwXG4gICAgICAgICAgICAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsZXQgb3BlcmF0aW9uID0gKGRpZmZzdHJbaV0ubGVuZ3RoID09IDAgJiYgaSAhPSAoZGlmZnN0ci5sZW5ndGggLSAxKSkgPyAnICcgOiBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuICAgICAgICBodW5rLmxpbmVkZWxpbWl0ZXJzLnB1c2goZGVsaW1pdGVyc1tpXSB8fCAnXFxuJyk7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgYmxvY2sgY291bnQgY2FzZVxuICAgIGlmICghYWRkQ291bnQgJiYgaHVuay5uZXdMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5uZXdMaW5lcyA9IDA7XG4gICAgfVxuICAgIGlmICghcmVtb3ZlQ291bnQgJiYgaHVuay5vbGRMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5vbGRMaW5lcyA9IDA7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBvcHRpb25hbCBzYW5pdHkgY2hlY2tpbmdcbiAgICBpZiAob3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIGlmIChhZGRDb3VudCAhPT0gaHVuay5uZXdMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZGVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZW1vdmVDb3VudCAhPT0gaHVuay5vbGRMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW92ZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodW5rO1xuICB9XG5cbiAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgIHBhcnNlSW5kZXgoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuIl19
-
-
-/***/ }),
-/* 12 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/"use strict";
-
-	exports.__esModule = true;
-
-	exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) {
-	  var wantForward = true,
-	      backwardExhausted = false,
-	      forwardExhausted = false,
-	      localOffset = 1;
-
-	  return function iterator() {
-	    if (wantForward && !forwardExhausted) {
-	      if (backwardExhausted) {
-	        localOffset++;
-	      } else {
-	        wantForward = false;
-	      }
-
-	      // Check if trying to fit beyond text length, and if not, check it fits
-	      // after offset location (or desired location on first iteration)
-	      if (start + localOffset <= maxLine) {
-	        return localOffset;
-	      }
-
-	      forwardExhausted = true;
-	    }
-
-	    if (!backwardExhausted) {
-	      if (!forwardExhausted) {
-	        wantForward = true;
-	      }
-
-	      // Check if trying to fit before text beginning, and if not, check it fits
-	      // before offset location
-	      if (minLine <= start - localOffset) {
-	        return -localOffset++;
-	      }
-
-	      backwardExhausted = true;
-	      return iterator();
-	    }
-
-	    // We tried to fit hunk before text beginning and beyond text length, then
-	    // hunk can't fit on the text. Return undefined
-	  };
-	};
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbInN0YXJ0IiwibWluTGluZSIsIm1heExpbmUiLCJ3YW50Rm9yd2FyZCIsImJhY2t3YXJkRXhoYXVzdGVkIiwiZm9yd2FyZEV4aGF1c3RlZCIsImxvY2FsT2Zmc2V0IiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7NENBR2UsVUFBU0EsS0FBVCxFQUFnQkMsT0FBaEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUlDLGNBQWMsSUFBbEI7QUFBQSxNQUNJQyxvQkFBb0IsS0FEeEI7QUFBQSxNQUVJQyxtQkFBbUIsS0FGdkI7QUFBQSxNQUdJQyxjQUFjLENBSGxCOztBQUtBLFNBQU8sU0FBU0MsUUFBVCxHQUFvQjtBQUN6QixRQUFJSixlQUFlLENBQUNFLGdCQUFwQixFQUFzQztBQUNwQyxVQUFJRCxpQkFBSixFQUF1QjtBQUNyQkU7QUFDRCxPQUZELE1BRU87QUFDTEgsc0JBQWMsS0FBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJSCxRQUFRTSxXQUFSLElBQXVCSixPQUEzQixFQUFvQztBQUNsQyxlQUFPSSxXQUFQO0FBQ0Q7O0FBRURELHlCQUFtQixJQUFuQjtBQUNEOztBQUVELFFBQUksQ0FBQ0QsaUJBQUwsRUFBd0I7QUFDdEIsVUFBSSxDQUFDQyxnQkFBTCxFQUF1QjtBQUNyQkYsc0JBQWMsSUFBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJRixXQUFXRCxRQUFRTSxXQUF2QixFQUFvQztBQUNsQyxlQUFPLENBQUNBLGFBQVI7QUFDRDs7QUFFREYsMEJBQW9CLElBQXBCO0FBQ0EsYUFBT0csVUFBUDtBQUNEOztBQUVEO0FBQ0E7QUFDRCxHQWxDRDtBQW1DRCxDIiwiZmlsZSI6ImRpc3RhbmNlLWl0ZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmd0aCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0=
-
-
-/***/ }),
-/* 13 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/calcLineCount = calcLineCount;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge;
-
-	var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/;
-
-	var /*istanbul ignore start*/_array = __webpack_require__(15) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-	/*istanbul ignore end*/function calcLineCount(hunk) {
-	  /*istanbul ignore start*/var _calcOldNewLineCount = /*istanbul ignore end*/calcOldNewLineCount(hunk.lines),
-	      oldLines = _calcOldNewLineCount.oldLines,
-	      newLines = _calcOldNewLineCount.newLines;
-
-	  if (oldLines !== undefined) {
-	    hunk.oldLines = oldLines;
-	  } else {
-	    delete hunk.oldLines;
-	  }
-
-	  if (newLines !== undefined) {
-	    hunk.newLines = newLines;
-	  } else {
-	    delete hunk.newLines;
-	  }
-	}
-
-	function merge(mine, theirs, base) {
-	  mine = loadPatch(mine, base);
-	  theirs = loadPatch(theirs, base);
-
-	  var ret = {};
-
-	  // For index we just let it pass through as it doesn't have any necessary meaning.
-	  // Leaving sanity checks on this to the API consumer that may know more about the
-	  // meaning in their own context.
-	  if (mine.index || theirs.index) {
-	    ret.index = mine.index || theirs.index;
-	  }
-
-	  if (mine.newFileName || theirs.newFileName) {
-	    if (!fileNameChanged(mine)) {
-	      // No header or no change in ours, use theirs (and ours if theirs does not exist)
-	      ret.oldFileName = theirs.oldFileName || mine.oldFileName;
-	      ret.newFileName = theirs.newFileName || mine.newFileName;
-	      ret.oldHeader = theirs.oldHeader || mine.oldHeader;
-	      ret.newHeader = theirs.newHeader || mine.newHeader;
-	    } else if (!fileNameChanged(theirs)) {
-	      // No header or no change in theirs, use ours
-	      ret.oldFileName = mine.oldFileName;
-	      ret.newFileName = mine.newFileName;
-	      ret.oldHeader = mine.oldHeader;
-	      ret.newHeader = mine.newHeader;
-	    } else {
-	      // Both changed... figure it out
-	      ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
-	      ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
-	      ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
-	      ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
-	    }
-	  }
-
-	  ret.hunks = [];
-
-	  var mineIndex = 0,
-	      theirsIndex = 0,
-	      mineOffset = 0,
-	      theirsOffset = 0;
-
-	  while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
-	    var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity },
-	        theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity };
-
-	    if (hunkBefore(mineCurrent, theirsCurrent)) {
-	      // This patch does not overlap with any of the others, yay.
-	      ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
-	      mineIndex++;
-	      theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
-	    } else if (hunkBefore(theirsCurrent, mineCurrent)) {
-	      // This patch does not overlap with any of the others, yay.
-	      ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
-	      theirsIndex++;
-	      mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
-	    } else {
-	      // Overlap, merge as best we can
-	      var mergedHunk = {
-	        oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
-	        oldLines: 0,
-	        newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
-	        newLines: 0,
-	        lines: []
-	      };
-	      mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
-	      theirsIndex++;
-	      mineIndex++;
-
-	      ret.hunks.push(mergedHunk);
-	    }
-	  }
-
-	  return ret;
-	}
-
-	function loadPatch(param, base) {
-	  if (typeof param === 'string') {
-	    if (/^@@/m.test(param) || /^Index:/m.test(param)) {
-	      return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0]
-	      );
-	    }
-
-	    if (!base) {
-	      throw new Error('Must provide a base reference or pass in a patch');
-	    }
-	    return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param)
-	    );
-	  }
-
-	  return param;
-	}
-
-	function fileNameChanged(patch) {
-	  return patch.newFileName && patch.newFileName !== patch.oldFileName;
-	}
-
-	function selectField(index, mine, theirs) {
-	  if (mine === theirs) {
-	    return mine;
-	  } else {
-	    index.conflict = true;
-	    return { mine: mine, theirs: theirs };
-	  }
-	}
-
-	function hunkBefore(test, check) {
-	  return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
-	}
-
-	function cloneHunk(hunk, offset) {
-	  return {
-	    oldStart: hunk.oldStart, oldLines: hunk.oldLines,
-	    newStart: hunk.newStart + offset, newLines: hunk.newLines,
-	    lines: hunk.lines
-	  };
-	}
-
-	function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
-	  // This will generally result in a conflicted hunk, but there are cases where the context
-	  // is the only overlap where we can successfully merge the content here.
-	  var mine = { offset: mineOffset, lines: mineLines, index: 0 },
-	      their = { offset: theirOffset, lines: theirLines, index: 0 };
-
-	  // Handle any leading content
-	  insertLeading(hunk, mine, their);
-	  insertLeading(hunk, their, mine);
-
-	  // Now in the overlap content. Scan through and select the best changes from each.
-	  while (mine.index < mine.lines.length && their.index < their.lines.length) {
-	    var mineCurrent = mine.lines[mine.index],
-	        theirCurrent = their.lines[their.index];
-
-	    if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
-	      // Both modified ...
-	      mutualChange(hunk, mine, their);
-	    } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
-	      /*istanbul ignore start*/var _hunk$lines;
-
-	      /*istanbul ignore end*/ // Mine inserted
-	      /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine)));
-	    } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
-	      /*istanbul ignore start*/var _hunk$lines2;
-
-	      /*istanbul ignore end*/ // Theirs inserted
-	      /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their)));
-	    } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
-	      // Mine removed or edited
-	      removal(hunk, mine, their);
-	    } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
-	      // Their removed or edited
-	      removal(hunk, their, mine, true);
-	    } else if (mineCurrent === theirCurrent) {
-	      // Context identity
-	      hunk.lines.push(mineCurrent);
-	      mine.index++;
-	      their.index++;
-	    } else {
-	      // Context mismatch
-	      conflict(hunk, collectChange(mine), collectChange(their));
-	    }
-	  }
-
-	  // Now push anything that may be remaining
-	  insertTrailing(hunk, mine);
-	  insertTrailing(hunk, their);
-
-	  calcLineCount(hunk);
-	}
-
-	function mutualChange(hunk, mine, their) {
-	  var myChanges = collectChange(mine),
-	      theirChanges = collectChange(their);
-
-	  if (allRemoves(myChanges) && allRemoves(theirChanges)) {
-	    // Special case for remove changes that are supersets of one another
-	    if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
-	      /*istanbul ignore start*/var _hunk$lines3;
-
-	      /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges));
-	      return;
-	    } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
-	      /*istanbul ignore start*/var _hunk$lines4;
-
-	      /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges));
-	      return;
-	    }
-	  } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) {
-	    /*istanbul ignore start*/var _hunk$lines5;
-
-	    /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges));
-	    return;
-	  }
-
-	  conflict(hunk, myChanges, theirChanges);
-	}
-
-	function removal(hunk, mine, their, swap) {
-	  var myChanges = collectChange(mine),
-	      theirChanges = collectContext(their, myChanges);
-	  if (theirChanges.merged) {
-	    /*istanbul ignore start*/var _hunk$lines6;
-
-	    /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged));
-	  } else {
-	    conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
-	  }
-	}
-
-	function conflict(hunk, mine, their) {
-	  hunk.conflict = true;
-	  hunk.lines.push({
-	    conflict: true,
-	    mine: mine,
-	    theirs: their
-	  });
-	}
-
-	function insertLeading(hunk, insert, their) {
-	  while (insert.offset < their.offset && insert.index < insert.lines.length) {
-	    var line = insert.lines[insert.index++];
-	    hunk.lines.push(line);
-	    insert.offset++;
-	  }
-	}
-	function insertTrailing(hunk, insert) {
-	  while (insert.index < insert.lines.length) {
-	    var line = insert.lines[insert.index++];
-	    hunk.lines.push(line);
-	  }
-	}
-
-	function collectChange(state) {
-	  var ret = [],
-	      operation = state.lines[state.index][0];
-	  while (state.index < state.lines.length) {
-	    var line = state.lines[state.index];
-
-	    // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
-	    if (operation === '-' && line[0] === '+') {
-	      operation = '+';
-	    }
-
-	    if (operation === line[0]) {
-	      ret.push(line);
-	      state.index++;
-	    } else {
-	      break;
-	    }
-	  }
-
-	  return ret;
-	}
-	function collectContext(state, matchChanges) {
-	  var changes = [],
-	      merged = [],
-	      matchIndex = 0,
-	      contextChanges = false,
-	      conflicted = false;
-	  while (matchIndex < matchChanges.length && state.index < state.lines.length) {
-	    var change = state.lines[state.index],
-	        match = matchChanges[matchIndex];
-
-	    // Once we've hit our add, then we are done
-	    if (match[0] === '+') {
-	      break;
-	    }
-
-	    contextChanges = contextChanges || change[0] !== ' ';
-
-	    merged.push(match);
-	    matchIndex++;
-
-	    // Consume any additions in the other block as a conflict to attempt
-	    // to pull in the remaining context after this
-	    if (change[0] === '+') {
-	      conflicted = true;
-
-	      while (change[0] === '+') {
-	        changes.push(change);
-	        change = state.lines[++state.index];
-	      }
-	    }
-
-	    if (match.substr(1) === change.substr(1)) {
-	      changes.push(change);
-	      state.index++;
-	    } else {
-	      conflicted = true;
-	    }
-	  }
-
-	  if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
-	    conflicted = true;
-	  }
-
-	  if (conflicted) {
-	    return changes;
-	  }
-
-	  while (matchIndex < matchChanges.length) {
-	    merged.push(matchChanges[matchIndex++]);
-	  }
-
-	  return {
-	    merged: merged,
-	    changes: changes
-	  };
-	}
-
-	function allRemoves(changes) {
-	  return changes.reduce(function (prev, change) {
-	    return prev && change[0] === '-';
-	  }, true);
-	}
-	function skipRemoveSuperset(state, removeChanges, delta) {
-	  for (var i = 0; i < delta; i++) {
-	    var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
-	    if (state.lines[state.index + i] !== ' ' + changeContent) {
-	      return false;
-	    }
-	  }
-
-	  state.index += delta;
-	  return true;
-	}
-
-	function calcOldNewLineCount(lines) {
-	  var oldLines = 0;
-	  var newLines = 0;
-
-	  lines.forEach(function (line) {
-	    if (typeof line !== 'string') {
-	      var myCount = calcOldNewLineCount(line.mine);
-	      var theirCount = calcOldNewLineCount(line.theirs);
-
-	      if (oldLines !== undefined) {
-	        if (myCount.oldLines === theirCount.oldLines) {
-	          oldLines += myCount.oldLines;
-	        } else {
-	          oldLines = undefined;
-	        }
-	      }
-
-	      if (newLines !== undefined) {
-	        if (myCount.newLines === theirCount.newLines) {
-	          newLines += myCount.newLines;
-	        } else {
-	          newLines = undefined;
-	        }
-	      }
-	    } else {
-	      if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
-	        newLines++;
-	      }
-	      if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
-	        oldLines++;
-	      }
-	    }
-	  });
-
-	  return { oldLines: oldLines, newLines: newLines };
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6WyJjYWxjTGluZUNvdW50IiwibWVyZ2UiLCJodW5rIiwiY2FsY09sZE5ld0xpbmVDb3VudCIsImxpbmVzIiwib2xkTGluZXMiLCJuZXdMaW5lcyIsInVuZGVmaW5lZCIsIm1pbmUiLCJ0aGVpcnMiLCJiYXNlIiwibG9hZFBhdGNoIiwicmV0IiwiaW5kZXgiLCJuZXdGaWxlTmFtZSIsImZpbGVOYW1lQ2hhbmdlZCIsIm9sZEZpbGVOYW1lIiwib2xkSGVhZGVyIiwibmV3SGVhZGVyIiwic2VsZWN0RmllbGQiLCJodW5rcyIsIm1pbmVJbmRleCIsInRoZWlyc0luZGV4IiwibWluZU9mZnNldCIsInRoZWlyc09mZnNldCIsImxlbmd0aCIsIm1pbmVDdXJyZW50Iiwib2xkU3RhcnQiLCJJbmZpbml0eSIsInRoZWlyc0N1cnJlbnQiLCJodW5rQmVmb3JlIiwicHVzaCIsImNsb25lSHVuayIsIm1lcmdlZEh1bmsiLCJNYXRoIiwibWluIiwibmV3U3RhcnQiLCJtZXJnZUxpbmVzIiwicGFyYW0iLCJ0ZXN0IiwiRXJyb3IiLCJwYXRjaCIsImNvbmZsaWN0IiwiY2hlY2siLCJvZmZzZXQiLCJtaW5lTGluZXMiLCJ0aGVpck9mZnNldCIsInRoZWlyTGluZXMiLCJ0aGVpciIsImluc2VydExlYWRpbmciLCJ0aGVpckN1cnJlbnQiLCJtdXR1YWxDaGFuZ2UiLCJjb2xsZWN0Q2hhbmdlIiwicmVtb3ZhbCIsImluc2VydFRyYWlsaW5nIiwibXlDaGFuZ2VzIiwidGhlaXJDaGFuZ2VzIiwiYWxsUmVtb3ZlcyIsInNraXBSZW1vdmVTdXBlcnNldCIsInN3YXAiLCJjb2xsZWN0Q29udGV4dCIsIm1lcmdlZCIsImluc2VydCIsImxpbmUiLCJzdGF0ZSIsIm9wZXJhdGlvbiIsIm1hdGNoQ2hhbmdlcyIsImNoYW5nZXMiLCJtYXRjaEluZGV4IiwiY29udGV4dENoYW5nZXMiLCJjb25mbGljdGVkIiwiY2hhbmdlIiwibWF0Y2giLCJzdWJzdHIiLCJyZWR1Y2UiLCJwcmV2IiwicmVtb3ZlQ2hhbmdlcyIsImRlbHRhIiwiaSIsImNoYW5nZUNvbnRlbnQiLCJmb3JFYWNoIiwibXlDb3VudCIsInRoZWlyQ291bnQiXSwibWFwcGluZ3MiOiI7OztnQ0FLZ0JBLGEsR0FBQUEsYTt5REFnQkFDLEssR0FBQUEsSzs7QUFyQmhCOztBQUNBOztBQUVBOzs7O3VCQUVPLFNBQVNELGFBQVQsQ0FBdUJFLElBQXZCLEVBQTZCO0FBQUEsNkVBQ0xDLG9CQUFvQkQsS0FBS0UsS0FBekIsQ0FESztBQUFBLE1BQzNCQyxRQUQyQix3QkFDM0JBLFFBRDJCO0FBQUEsTUFDakJDLFFBRGlCLHdCQUNqQkEsUUFEaUI7O0FBR2xDLE1BQUlELGFBQWFFLFNBQWpCLEVBQTRCO0FBQzFCTCxTQUFLRyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU9ILEtBQUtHLFFBQVo7QUFDRDs7QUFFRCxNQUFJQyxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQkwsU0FBS0ksUUFBTCxHQUFnQkEsUUFBaEI7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPSixLQUFLSSxRQUFaO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTTCxLQUFULENBQWVPLElBQWYsRUFBcUJDLE1BQXJCLEVBQTZCQyxJQUE3QixFQUFtQztBQUN4Q0YsU0FBT0csVUFBVUgsSUFBVixFQUFnQkUsSUFBaEIsQ0FBUDtBQUNBRCxXQUFTRSxVQUFVRixNQUFWLEVBQWtCQyxJQUFsQixDQUFUOztBQUVBLE1BQUlFLE1BQU0sRUFBVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJSixLQUFLSyxLQUFMLElBQWNKLE9BQU9JLEtBQXpCLEVBQWdDO0FBQzlCRCxRQUFJQyxLQUFKLEdBQVlMLEtBQUtLLEtBQUwsSUFBY0osT0FBT0ksS0FBakM7QUFDRDs7QUFFRCxNQUFJTCxLQUFLTSxXQUFMLElBQW9CTCxPQUFPSyxXQUEvQixFQUE0QztBQUMxQyxRQUFJLENBQUNDLGdCQUFnQlAsSUFBaEIsQ0FBTCxF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Q0Q7QUFDRjs7QUFFRCxVQUFJRCxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTNFLFFBQVIsS0FBcUI0RSxXQUFXNUUsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZMkUsUUFBUTNFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXQyxTQUFYO0FBQ0Q7QUFDRjtBQUNGLEtBbkJELE1BbUJPO0FBQ0wsVUFBSUQsYUFBYUMsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEV6RDtBQUNEO0FBQ0QsVUFBSUQsYUFBYUUsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEUxRDtBQUNEO0FBQ0Y7QUFDRixHQTVCRDs7QUE4QkEsU0FBTyxFQUFDQSxrQkFBRCxFQUFXQyxrQkFBWCxFQUFQO0FBQ0QiLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3N0cnVjdHVyZWRQYXRjaH0gZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcblxuaW1wb3J0IHthcnJheUVxdWFsLCBhcnJheVN0YXJ0c1dpdGh9IGZyb20gJy4uL3V0aWwvYXJyYXknO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0xpbmVDb3VudChodW5rKSB7XG4gIGNvbnN0IHtvbGRMaW5lcywgbmV3TGluZXN9ID0gY2FsY09sZE5ld0xpbmVDb3VudChodW5rLmxpbmVzKTtcblxuICBpZiAob2xkTGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGh1bmsub2xkTGluZXMgPSBvbGRMaW5lcztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaHVuay5uZXdMaW5lcyA9IG5ld0xpbmVzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBodW5rLm5ld0xpbmVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShtaW5lLCB0aGVpcnMsIGJhc2UpIHtcbiAgbWluZSA9IGxvYWRQYXRjaChtaW5lLCBiYXNlKTtcbiAgdGhlaXJzID0gbG9hZFBhdGNoKHRoZWlycywgYmFzZSk7XG5cbiAgbGV0IHJldCA9IHt9O1xuXG4gIC8vIEZvciBpbmRleCB3ZSBqdXN0IGxldCBpdCBwYXNzIHRocm91Z2ggYXMgaXQgZG9lc24ndCBoYXZlIGFueSBuZWNlc3NhcnkgbWVhbmluZy5cbiAgLy8gTGVhdmluZyBzYW5pdHkgY2hlY2tzIG9uIHRoaXMgdG8gdGhlIEFQSSBjb25zdW1lciB0aGF0IG1heSBrbm93IG1vcmUgYWJvdXQgdGhlXG4gIC8vIG1lYW5pbmcgaW4gdGhlaXIgb3duIGNvbnRleHQuXG4gIGlmIChtaW5lLmluZGV4IHx8IHRoZWlycy5pbmRleCkge1xuICAgIHJldC5pbmRleCA9IG1pbmUuaW5kZXggfHwgdGhlaXJzLmluZGV4O1xuICB9XG5cbiAgaWYgKG1pbmUubmV3RmlsZU5hbWUgfHwgdGhlaXJzLm5ld0ZpbGVOYW1lKSB7XG4gICAgaWYgKCFmaWxlTmFtZUNoYW5nZWQobWluZSkpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gb3VycywgdXNlIHRoZWlycyAoYW5kIG91cnMgaWYgdGhlaXJzIGRvZXMgbm90IGV4aXN0KVxuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gdGhlaXJzLm9sZEZpbGVOYW1lIHx8IG1pbmUub2xkRmlsZU5hbWU7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSB0aGVpcnMubmV3RmlsZU5hbWUgfHwgbWluZS5uZXdGaWxlTmFtZTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSB0aGVpcnMub2xkSGVhZGVyIHx8IG1pbmUub2xkSGVhZGVyO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IHRoZWlycy5uZXdIZWFkZXIgfHwgbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIGlmICghZmlsZU5hbWVDaGFuZ2VkKHRoZWlycykpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gdGhlaXJzLCB1c2Ugb3Vyc1xuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gbWluZS5vbGRGaWxlTmFtZTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IG1pbmUubmV3RmlsZU5hbWU7XG4gICAgICByZXQub2xkSGVhZGVyID0gbWluZS5vbGRIZWFkZXI7XG4gICAgICByZXQubmV3SGVhZGVyID0gbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEJvdGggY2hhbmdlZC4uLiBmaWd1cmUgaXQgb3V0XG4gICAgICByZXQub2xkRmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUub2xkRmlsZU5hbWUsIHRoZWlycy5vbGRGaWxlTmFtZSk7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUubmV3RmlsZU5hbWUsIHRoZWlycy5uZXdGaWxlTmFtZSk7XG4gICAgICByZXQub2xkSGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm9sZEhlYWRlciwgdGhlaXJzLm9sZEhlYWRlcik7XG4gICAgICByZXQubmV3SGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm5ld0hlYWRlciwgdGhlaXJzLm5ld0hlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0Lmh1bmtzID0gW107XG5cbiAgbGV0IG1pbmVJbmRleCA9IDAsXG4gICAgICB0aGVpcnNJbmRleCA9IDAsXG4gICAgICBtaW5lT2Zmc2V0ID0gMCxcbiAgICAgIHRoZWlyc09mZnNldCA9IDA7XG5cbiAgd2hpbGUgKG1pbmVJbmRleCA8IG1pbmUuaHVua3MubGVuZ3RoIHx8IHRoZWlyc0luZGV4IDwgdGhlaXJzLmh1bmtzLmxlbmd0aCkge1xuICAgIGxldCBtaW5lQ3VycmVudCA9IG1pbmUuaHVua3NbbWluZUluZGV4XSB8fCB7b2xkU3RhcnQ6IEluZmluaXR5fSxcbiAgICAgICAgdGhlaXJzQ3VycmVudCA9IHRoZWlycy5odW5rc1t0aGVpcnNJbmRleF0gfHwge29sZFN0YXJ0OiBJbmZpbml0eX07XG5cbiAgICBpZiAoaHVua0JlZm9yZShtaW5lQ3VycmVudCwgdGhlaXJzQ3VycmVudCkpIHtcbiAgICAgIC8vIFRoaXMgcGF0Y2ggZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgb3RoZXJzLCB5YXkuXG4gICAgICByZXQuaHVua3MucHVzaChjbG9uZUh1bmsobWluZUN1cnJlbnQsIG1pbmVPZmZzZXQpKTtcbiAgICAgIG1pbmVJbmRleCsrO1xuICAgICAgdGhlaXJzT2Zmc2V0ICs9IG1pbmVDdXJyZW50Lm5ld0xpbmVzIC0gbWluZUN1cnJlbnQub2xkTGluZXM7XG4gICAgfSBlbHNlIGlmIChodW5rQmVmb3JlKHRoZWlyc0N1cnJlbnQsIG1pbmVDdXJyZW50KSkge1xuICAgICAgLy8gVGhpcyBwYXRjaCBkb2VzIG5vdCBvdmVybGFwIHdpdGggYW55IG9mIHRoZSBvdGhlcnMsIHlheS5cbiAgICAgIHJldC5odW5rcy5wdXNoKGNsb25lSHVuayh0aGVpcnNDdXJyZW50LCB0aGVpcnNPZmZzZXQpKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lT2Zmc2V0ICs9IHRoZWlyc0N1cnJlbnQubmV3TGluZXMgLSB0aGVpcnNDdXJyZW50Lm9sZExpbmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdmVybGFwLCBtZXJnZSBhcyBiZXN0IHdlIGNhblxuICAgICAgbGV0IG1lcmdlZEh1bmsgPSB7XG4gICAgICAgIG9sZFN0YXJ0OiBNYXRoLm1pbihtaW5lQ3VycmVudC5vbGRTdGFydCwgdGhlaXJzQ3VycmVudC5vbGRTdGFydCksXG4gICAgICAgIG9sZExpbmVzOiAwLFxuICAgICAgICBuZXdTdGFydDogTWF0aC5taW4obWluZUN1cnJlbnQubmV3U3RhcnQgKyBtaW5lT2Zmc2V0LCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0ICsgdGhlaXJzT2Zmc2V0KSxcbiAgICAgICAgbmV3TGluZXM6IDAsXG4gICAgICAgIGxpbmVzOiBbXVxuICAgICAgfTtcbiAgICAgIG1lcmdlTGluZXMobWVyZ2VkSHVuaywgbWluZUN1cnJlbnQub2xkU3RhcnQsIG1pbmVDdXJyZW50LmxpbmVzLCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0LCB0aGVpcnNDdXJyZW50LmxpbmVzKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lSW5kZXgrKztcblxuICAgICAgcmV0Lmh1bmtzLnB1c2gobWVyZ2VkSHVuayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gbG9hZFBhdGNoKHBhcmFtLCBiYXNlKSB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKC9eQEAvbS50ZXN0KHBhcmFtKSB8fCAoL15JbmRleDovbS50ZXN0KHBhcmFtKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZVBhdGNoKHBhcmFtKVswXTtcbiAgICB9XG5cbiAgICBpZiAoIWJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgYmFzZSByZWZlcmVuY2Ugb3IgcGFzcyBpbiBhIHBhdGNoJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHJ1Y3R1cmVkUGF0Y2godW5kZWZpbmVkLCB1bmRlZmluZWQsIGJhc2UsIHBhcmFtKTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbTtcbn1cblxuZnVuY3Rpb24gZmlsZU5hbWVDaGFuZ2VkKHBhdGNoKSB7XG4gIHJldHVybiBwYXRjaC5uZXdGaWxlTmFtZSAmJiBwYXRjaC5uZXdGaWxlTmFtZSAhPT0gcGF0Y2gub2xkRmlsZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdEZpZWxkKGluZGV4LCBtaW5lLCB0aGVpcnMpIHtcbiAgaWYgKG1pbmUgPT09IHRoZWlycykge1xuICAgIHJldHVybiBtaW5lO1xuICB9IGVsc2Uge1xuICAgIGluZGV4LmNvbmZsaWN0ID0gdHJ1ZTtcbiAgICByZXR1cm4ge21pbmUsIHRoZWlyc307XG4gIH1cbn1cblxuZnVuY3Rpb24gaHVua0JlZm9yZSh0ZXN0LCBjaGVjaykge1xuICByZXR1cm4gdGVzdC5vbGRTdGFydCA8IGNoZWNrLm9sZFN0YXJ0XG4gICAgJiYgKHRlc3Qub2xkU3RhcnQgKyB0ZXN0Lm9sZExpbmVzKSA8IGNoZWNrLm9sZFN0YXJ0O1xufVxuXG5mdW5jdGlvbiBjbG9uZUh1bmsoaHVuaywgb2Zmc2V0KSB7XG4gIHJldHVybiB7XG4gICAgb2xkU3RhcnQ6IGh1bmsub2xkU3RhcnQsIG9sZExpbmVzOiBodW5rLm9sZExpbmVzLFxuICAgIG5ld1N0YXJ0OiBodW5rLm5ld1N0YXJ0ICsgb2Zmc2V0LCBuZXdMaW5lczogaHVuay5uZXdMaW5lcyxcbiAgICBsaW5lczogaHVuay5saW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZUxpbmVzKGh1bmssIG1pbmVPZmZzZXQsIG1pbmVMaW5lcywgdGhlaXJPZmZzZXQsIHRoZWlyTGluZXMpIHtcbiAgLy8gVGhpcyB3aWxsIGdlbmVyYWxseSByZXN1bHQgaW4gYSBjb25mbGljdGVkIGh1bmssIGJ1dCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlIGNvbnRleHRcbiAgLy8gaXMgdGhlIG9ubHkgb3ZlcmxhcCB3aGVyZSB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IG1lcmdlIHRoZSBjb250ZW50IGhlcmUuXG4gIGxldCBtaW5lID0ge29mZnNldDogbWluZU9mZnNldCwgbGluZXM6IG1pbmVMaW5lcywgaW5kZXg6IDB9LFxuICAgICAgdGhlaXIgPSB7b2Zmc2V0OiB0aGVpck9mZnNldCwgbGluZXM6IHRoZWlyTGluZXMsIGluZGV4OiAwfTtcblxuICAvLyBIYW5kbGUgYW55IGxlYWRpbmcgY29udGVudFxuICBpbnNlcnRMZWFkaW5nKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgaW5zZXJ0TGVhZGluZyhodW5rLCB0aGVpciwgbWluZSk7XG5cbiAgLy8gTm93IGluIHRoZSBvdmVybGFwIGNvbnRlbnQuIFNjYW4gdGhyb3VnaCBhbmQgc2VsZWN0IHRoZSBiZXN0IGNoYW5nZXMgZnJvbSBlYWNoLlxuICB3aGlsZSAobWluZS5pbmRleCA8IG1pbmUubGluZXMubGVuZ3RoICYmIHRoZWlyLmluZGV4IDwgdGhlaXIubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IG1pbmVDdXJyZW50ID0gbWluZS5saW5lc1ttaW5lLmluZGV4XSxcbiAgICAgICAgdGhlaXJDdXJyZW50ID0gdGhlaXIubGluZXNbdGhlaXIuaW5kZXhdO1xuXG4gICAgaWYgKChtaW5lQ3VycmVudFswXSA9PT0gJy0nIHx8IG1pbmVDdXJyZW50WzBdID09PSAnKycpXG4gICAgICAgICYmICh0aGVpckN1cnJlbnRbMF0gPT09ICctJyB8fCB0aGVpckN1cnJlbnRbMF0gPT09ICcrJykpIHtcbiAgICAgIC8vIEJvdGggbW9kaWZpZWQgLi4uXG4gICAgICBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnRbMF0gPT09ICcrJyAmJiB0aGVpckN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gTWluZSBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKG1pbmUpKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJysnICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlycyBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJy0nICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlyIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIHRoZWlyLCBtaW5lLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50ID09PSB0aGVpckN1cnJlbnQpIHtcbiAgICAgIC8vIENvbnRleHQgaWRlbnRpdHlcbiAgICAgIGh1bmsubGluZXMucHVzaChtaW5lQ3VycmVudCk7XG4gICAgICBtaW5lLmluZGV4Kys7XG4gICAgICB0aGVpci5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250ZXh0IG1pc21hdGNoXG4gICAgICBjb25mbGljdChodW5rLCBjb2xsZWN0Q2hhbmdlKG1pbmUpLCBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTm93IHB1c2ggYW55dGhpbmcgdGhhdCBtYXkgYmUgcmVtYWluaW5nXG4gIGluc2VydFRyYWlsaW5nKGh1bmssIG1pbmUpO1xuICBpbnNlcnRUcmFpbGluZyhodW5rLCB0aGVpcik7XG5cbiAgY2FsY0xpbmVDb3VudChodW5rKTtcbn1cblxuZnVuY3Rpb24gbXV0dWFsQ2hhbmdlKGh1bmssIG1pbmUsIHRoZWlyKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENoYW5nZSh0aGVpcik7XG5cbiAgaWYgKGFsbFJlbW92ZXMobXlDaGFuZ2VzKSAmJiBhbGxSZW1vdmVzKHRoZWlyQ2hhbmdlcykpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHJlbW92ZSBjaGFuZ2VzIHRoYXQgYXJlIHN1cGVyc2V0cyBvZiBvbmUgYW5vdGhlclxuICAgIGlmIChhcnJheVN0YXJ0c1dpdGgobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpXG4gICAgICAgICYmIHNraXBSZW1vdmVTdXBlcnNldCh0aGVpciwgbXlDaGFuZ2VzLCBteUNoYW5nZXMubGVuZ3RoIC0gdGhlaXJDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gbXlDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGFycmF5U3RhcnRzV2l0aCh0aGVpckNoYW5nZXMsIG15Q2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KG1pbmUsIHRoZWlyQ2hhbmdlcywgdGhlaXJDaGFuZ2VzLmxlbmd0aCAtIG15Q2hhbmdlcy5sZW5ndGgpKSB7XG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIHRoZWlyQ2hhbmdlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IGVsc2UgaWYgKGFycmF5RXF1YWwobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbmZsaWN0KGh1bmssIG15Q2hhbmdlcywgdGhlaXJDaGFuZ2VzKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZhbChodW5rLCBtaW5lLCB0aGVpciwgc3dhcCkge1xuICBsZXQgbXlDaGFuZ2VzID0gY29sbGVjdENoYW5nZShtaW5lKSxcbiAgICAgIHRoZWlyQ2hhbmdlcyA9IGNvbGxlY3RDb250ZXh0KHRoZWlyLCBteUNoYW5nZXMpO1xuICBpZiAodGhlaXJDaGFuZ2VzLm1lcmdlZCkge1xuICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzLm1lcmdlZCk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmxpY3QoaHVuaywgc3dhcCA/IHRoZWlyQ2hhbmdlcyA6IG15Q2hhbmdlcywgc3dhcCA/IG15Q2hhbmdlcyA6IHRoZWlyQ2hhbmdlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmxpY3QoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgaHVuay5jb25mbGljdCA9IHRydWU7XG4gIGh1bmsubGluZXMucHVzaCh7XG4gICAgY29uZmxpY3Q6IHRydWUsXG4gICAgbWluZTogbWluZSxcbiAgICB0aGVpcnM6IHRoZWlyXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRMZWFkaW5nKGh1bmssIGluc2VydCwgdGhlaXIpIHtcbiAgd2hpbGUgKGluc2VydC5vZmZzZXQgPCB0aGVpci5vZmZzZXQgJiYgaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gICAgaW5zZXJ0Lm9mZnNldCsrO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRUcmFpbGluZyhodW5rLCBpbnNlcnQpIHtcbiAgd2hpbGUgKGluc2VydC5pbmRleCA8IGluc2VydC5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IGluc2VydC5saW5lc1tpbnNlcnQuaW5kZXgrK107XG4gICAgaHVuay5saW5lcy5wdXNoKGxpbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RDaGFuZ2Uoc3RhdGUpIHtcbiAgbGV0IHJldCA9IFtdLFxuICAgICAgb3BlcmF0aW9uID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdWzBdO1xuICB3aGlsZSAoc3RhdGUuaW5kZXggPCBzdGF0ZS5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XTtcblxuICAgIC8vIEdyb3VwIGFkZGl0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhZnRlciBzdWJ0cmFjdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgb25lIFwiYXRvbWljXCIgbW9kaWZ5IGNoYW5nZS5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnLScgJiYgbGluZVswXSA9PT0gJysnKSB7XG4gICAgICBvcGVyYXRpb24gPSAnKyc7XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gbGluZVswXSkge1xuICAgICAgcmV0LnB1c2gobGluZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gY29sbGVjdENvbnRleHQoc3RhdGUsIG1hdGNoQ2hhbmdlcykge1xuICBsZXQgY2hhbmdlcyA9IFtdLFxuICAgICAgbWVyZ2VkID0gW10sXG4gICAgICBtYXRjaEluZGV4ID0gMCxcbiAgICAgIGNvbnRleHRDaGFuZ2VzID0gZmFsc2UsXG4gICAgICBjb25mbGljdGVkID0gZmFsc2U7XG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aFxuICAgICAgICAmJiBzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBjaGFuZ2UgPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF0sXG4gICAgICAgIG1hdGNoID0gbWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdO1xuXG4gICAgLy8gT25jZSB3ZSd2ZSBoaXQgb3VyIGFkZCwgdGhlbiB3ZSBhcmUgZG9uZVxuICAgIGlmIChtYXRjaFswXSA9PT0gJysnKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb250ZXh0Q2hhbmdlcyA9IGNvbnRleHRDaGFuZ2VzIHx8IGNoYW5nZVswXSAhPT0gJyAnO1xuXG4gICAgbWVyZ2VkLnB1c2gobWF0Y2gpO1xuICAgIG1hdGNoSW5kZXgrKztcblxuICAgIC8vIENvbnN1bWUgYW55IGFkZGl0aW9ucyBpbiB0aGUgb3RoZXIgYmxvY2sgYXMgYSBjb25mbGljdCB0byBhdHRlbXB0XG4gICAgLy8gdG8gcHVsbCBpbiB0aGUgcmVtYWluaW5nIGNvbnRleHQgYWZ0ZXIgdGhpc1xuICAgIGlmIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgY29uZmxpY3RlZCA9IHRydWU7XG5cbiAgICAgIHdoaWxlIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlID0gc3RhdGUubGluZXNbKytzdGF0ZS5pbmRleF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoLnN1YnN0cigxKSA9PT0gY2hhbmdlLnN1YnN0cigxKSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4XSB8fCAnJylbMF0gPT09ICcrJ1xuICAgICAgJiYgY29udGV4dENoYW5nZXMpIHtcbiAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChjb25mbGljdGVkKSB7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICB3aGlsZSAobWF0Y2hJbmRleCA8IG1hdGNoQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICBtZXJnZWQucHVzaChtYXRjaENoYW5nZXNbbWF0Y2hJbmRleCsrXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lcmdlZCxcbiAgICBjaGFuZ2VzXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFsbFJlbW92ZXMoY2hhbmdlcykge1xuICByZXR1cm4gY2hhbmdlcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY2hhbmdlKSB7XG4gICAgcmV0dXJuIHByZXYgJiYgY2hhbmdlWzBdID09PSAnLSc7XG4gIH0sIHRydWUpO1xufVxuZnVuY3Rpb24gc2tpcFJlbW92ZVN1cGVyc2V0KHN0YXRlLCByZW1vdmVDaGFuZ2VzLCBkZWx0YSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlbHRhOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlQ29udGVudCA9IHJlbW92ZUNoYW5nZXNbcmVtb3ZlQ2hhbmdlcy5sZW5ndGggLSBkZWx0YSArIGldLnN1YnN0cigxKTtcbiAgICBpZiAoc3RhdGUubGluZXNbc3RhdGUuaW5kZXggKyBpXSAhPT0gJyAnICsgY2hhbmdlQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLmluZGV4ICs9IGRlbHRhO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lcykge1xuICBsZXQgb2xkTGluZXMgPSAwO1xuICBsZXQgbmV3TGluZXMgPSAwO1xuXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgIGlmICh0eXBlb2YgbGluZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBteUNvdW50ID0gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lLm1pbmUpO1xuICAgICAgbGV0IHRoZWlyQ291bnQgPSBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmUudGhlaXJzKTtcblxuICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG15Q291bnQub2xkTGluZXMgPT09IHRoZWlyQ291bnQub2xkTGluZXMpIHtcbiAgICAgICAgICBvbGRMaW5lcyArPSBteUNvdW50Lm9sZExpbmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9sZExpbmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChteUNvdW50Lm5ld0xpbmVzID09PSB0aGVpckNvdW50Lm5ld0xpbmVzKSB7XG4gICAgICAgICAgbmV3TGluZXMgKz0gbXlDb3VudC5uZXdMaW5lcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMaW5lcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3TGluZXMgIT09IHVuZGVmaW5lZCAmJiAobGluZVswXSA9PT0gJysnIHx8IGxpbmVbMF0gPT09ICcgJykpIHtcbiAgICAgICAgbmV3TGluZXMrKztcbiAgICAgIH1cbiAgICAgIGlmIChvbGRMaW5lcyAhPT0gdW5kZWZpbmVkICYmIChsaW5lWzBdID09PSAnLScgfHwgbGluZVswXSA9PT0gJyAnKSkge1xuICAgICAgICBvbGRMaW5lcysrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtvbGRMaW5lcywgbmV3TGluZXN9O1xufVxuIl19
-
-
-/***/ }),
-/* 14 */
-/***/ (function(module, exports, __webpack_require__) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/structuredPatch = structuredPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch;
-
-	var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/;
-
-	/*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-	/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
-	  if (!options) {
-	    options = {};
-	  }
-	  if (typeof options.context === 'undefined') {
-	    options.context = 4;
-	  }
-
-	  var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options);
-	  diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier
-
-	  function contextLines(lines) {
-	    return lines.map(function (entry) {
-	      return ' ' + entry;
-	    });
-	  }
-
-	  var hunks = [];
-	  var oldRangeStart = 0,
-	      newRangeStart = 0,
-	      curRange = [],
-	      oldLine = 1,
-	      newLine = 1;
-
-	  /*istanbul ignore start*/var _loop = function _loop( /*istanbul ignore end*/i) {
-	    var current = diff[i],
-	        lines = current.lines || current.value.replace(/\n$/, '').split('\n');
-	    current.lines = lines;
-
-	    if (current.added || current.removed) {
-	      /*istanbul ignore start*/var _curRange;
-
-	      /*istanbul ignore end*/ // If we have previous context, start with that
-	      if (!oldRangeStart) {
-	        var prev = diff[i - 1];
-	        oldRangeStart = oldLine;
-	        newRangeStart = newLine;
-
-	        if (prev) {
-	          curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
-	          oldRangeStart -= curRange.length;
-	          newRangeStart -= curRange.length;
-	        }
-	      }
-
-	      // Output our changes
-	      /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) {
-	        return (current.added ? '+' : '-') + entry;
-	      })));
-
-	      // Track the updated file position
-	      if (current.added) {
-	        newLine += lines.length;
-	      } else {
-	        oldLine += lines.length;
-	      }
-	    } else {
-	      // Identical context lines. Track line changes
-	      if (oldRangeStart) {
-	        // Close out any changes that have been output (or join overlapping)
-	        if (lines.length <= options.context * 2 && i < diff.length - 2) {
-	          /*istanbul ignore start*/var _curRange2;
-
-	          /*istanbul ignore end*/ // Overlapping
-	          /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines)));
-	        } else {
-	          /*istanbul ignore start*/var _curRange3;
-
-	          /*istanbul ignore end*/ // end the range and output
-	          var contextSize = Math.min(lines.length, options.context);
-	          /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize))));
-
-	          var hunk = {
-	            oldStart: oldRangeStart,
-	            oldLines: oldLine - oldRangeStart + contextSize,
-	            newStart: newRangeStart,
-	            newLines: newLine - newRangeStart + contextSize,
-	            lines: curRange
-	          };
-	          if (i >= diff.length - 2 && lines.length <= options.context) {
-	            // EOF is inside this hunk
-	            var oldEOFNewline = /\n$/.test(oldStr);
-	            var newEOFNewline = /\n$/.test(newStr);
-	            if (lines.length == 0 && !oldEOFNewline) {
-	              // special case: old has no eol and no trailing context; no-nl can end up before adds
-	              curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
-	            } else if (!oldEOFNewline || !newEOFNewline) {
-	              curRange.push('\\ No newline at end of file');
-	            }
-	          }
-	          hunks.push(hunk);
-
-	          oldRangeStart = 0;
-	          newRangeStart = 0;
-	          curRange = [];
-	        }
-	      }
-	      oldLine += lines.length;
-	      newLine += lines.length;
-	    }
-	  };
-
-	  for (var i = 0; i < diff.length; i++) {
-	    /*istanbul ignore start*/_loop( /*istanbul ignore end*/i);
-	  }
-
-	  return {
-	    oldFileName: oldFileName, newFileName: newFileName,
-	    oldHeader: oldHeader, newHeader: newHeader,
-	    hunks: hunks
-	  };
-	}
-
-	function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
-	  var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
-
-	  var ret = [];
-	  if (oldFileName == newFileName) {
-	    ret.push('Index: ' + oldFileName);
-	  }
-	  ret.push('===================================================================');
-	  ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
-	  ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
-
-	  for (var i = 0; i < diff.hunks.length; i++) {
-	    var hunk = diff.hunks[i];
-	    ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
-	    ret.push.apply(ret, hunk.lines);
-	  }
-
-	  return ret.join('\n') + '\n';
-	}
-
-	function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
-	  return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwic3BsaWNlIiwicmV0IiwiYXBwbHkiLCJqb2luIiwiZmlsZU5hbWUiXSwibWFwcGluZ3MiOiI7OztnQ0FFZ0JBLGUsR0FBQUEsZTt5REFpR0FDLG1CLEdBQUFBLG1CO3lEQXdCQUMsVyxHQUFBQSxXOztBQTNIaEI7Ozs7dUJBRU8sU0FBU0YsZUFBVCxDQUF5QkcsV0FBekIsRUFBc0NDLFdBQXRDLEVBQW1EQyxNQUFuRCxFQUEyREMsTUFBM0QsRUFBbUVDLFNBQW5FLEVBQThFQyxTQUE5RSxFQUF5RkMsT0FBekYsRUFBa0c7QUFDdkcsTUFBSSxDQUFDQSxPQUFMLEVBQWM7QUFDWkEsY0FBVSxFQUFWO0FBQ0Q7QUFDRCxNQUFJLE9BQU9BLFFBQVFDLE9BQWYsS0FBMkIsV0FBL0IsRUFBNEM7QUFDMUNELFlBQVFDLE9BQVIsR0FBa0IsQ0FBbEI7QUFDRDs7QUFFRCxN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QUEvQyxFQUEwREMsU0FBMUQsRUFBcUVDLE9BQXJFLEVBQThFO0FBQ25GLFNBQU9SLG9CQUFvQitDLFFBQXBCLEVBQThCQSxRQUE5QixFQUF3QzNDLE1BQXhDLEVBQWdEQyxNQUFoRCxFQUF3REMsU0FBeEQsRUFBbUVDLFNBQW5FLEVBQThFQyxPQUE5RSxDQUFQO0FBQ0QiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgZGlmZi5wdXNoKHt2YWx1ZTogJycsIGxpbmVzOiBbXX0pOyAgIC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgvXFxuJC8udGVzdChvbGRTdHIpKTtcbiAgICAgICAgICAgIGxldCBuZXdFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG5ld1N0cikpO1xuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PSAwICYmICFvbGRFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogb2xkIGhhcyBubyBlb2wgYW5kIG5vIHRyYWlsaW5nIGNvbnRleHQ7IG5vLW5sIGNhbiBlbmQgdXAgYmVmb3JlIGFkZHNcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9sZEVPRk5ld2xpbmUgfHwgIW5ld0VPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgY3VyUmFuZ2UucHVzaCgnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGh1bmtzLnB1c2goaHVuayk7XG5cbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJSYW5nZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgb2xkRmlsZU5hbWU6IG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZTogbmV3RmlsZU5hbWUsXG4gICAgb2xkSGVhZGVyOiBvbGRIZWFkZXIsIG5ld0hlYWRlcjogbmV3SGVhZGVyLFxuICAgIGh1bmtzOiBodW5rc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID0gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcblxuICBjb25zdCByZXQgPSBbXTtcbiAgaWYgKG9sZEZpbGVOYW1lID09IG5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgb2xkRmlsZU5hbWUpO1xuICB9XG4gIHJldC5wdXNoKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gIHJldC5wdXNoKCctLS0gJyArIGRpZmYub2xkRmlsZU5hbWUgKyAodHlwZW9mIGRpZmYub2xkSGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm9sZEhlYWRlcikpO1xuICByZXQucHVzaCgnKysrICcgKyBkaWZmLm5ld0ZpbGVOYW1lICsgKHR5cGVvZiBkaWZmLm5ld0hlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6ICdcXHQnICsgZGlmZi5uZXdIZWFkZXIpKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYuaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBodW5rID0gZGlmZi5odW5rc1tpXTtcbiAgICByZXQucHVzaChcbiAgICAgICdAQCAtJyArIGh1bmsub2xkU3RhcnQgKyAnLCcgKyBodW5rLm9sZExpbmVzXG4gICAgICArICcgKycgKyBodW5rLm5ld1N0YXJ0ICsgJywnICsgaHVuay5uZXdMaW5lc1xuICAgICAgKyAnIEBAJ1xuICAgICk7XG4gICAgcmV0LnB1c2guYXBwbHkocmV0LCBodW5rLmxpbmVzKTtcbiAgfVxuXG4gIHJldHVybiByZXQuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGNoKGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNyZWF0ZVR3b0ZpbGVzUGF0Y2goZmlsZU5hbWUsIGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xufVxuIl19
-
-
-/***/ }),
-/* 15 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/"use strict";
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/arrayEqual = arrayEqual;
-	/*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith;
-	function arrayEqual(a, b) {
-	  if (a.length !== b.length) {
-	    return false;
-	  }
-
-	  return arrayStartsWith(a, b);
-	}
-
-	function arrayStartsWith(array, start) {
-	  if (start.length > array.length) {
-	    return false;
-	  }
-
-	  for (var i = 0; i < start.length; i++) {
-	    if (start[i] !== array[i]) {
-	      return false;
-	    }
-	  }
-
-	  return true;
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RXF1YWwiLCJhcnJheVN0YXJ0c1dpdGgiLCJhIiwiYiIsImxlbmd0aCIsImFycmF5Iiwic3RhcnQiLCJpIl0sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCQSxVLEdBQUFBLFU7eURBUUFDLGUsR0FBQUEsZTtBQVJULFNBQVNELFVBQVQsQ0FBb0JFLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQjtBQUMvQixNQUFJRCxFQUFFRSxNQUFGLEtBQWFELEVBQUVDLE1BQW5CLEVBQTJCO0FBQ3pCLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU9ILGdCQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQVA7QUFDRDs7QUFFTSxTQUFTRixlQUFULENBQXlCSSxLQUF6QixFQUFnQ0MsS0FBaEMsRUFBdUM7QUFDNUMsTUFBSUEsTUFBTUYsTUFBTixHQUFlQyxNQUFNRCxNQUF6QixFQUFpQztBQUMvQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQUlHLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTUYsTUFBMUIsRUFBa0NHLEdBQWxDLEVBQXVDO0FBQ3JDLFFBQUlELE1BQU1DLENBQU4sTUFBYUYsTUFBTUUsQ0FBTixDQUFqQixFQUEyQjtBQUN6QixhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6ImFycmF5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFycmF5RXF1YWwoYSwgYikge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5U3RhcnRzV2l0aChhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5U3RhcnRzV2l0aChhcnJheSwgc3RhcnQpIHtcbiAgaWYgKHN0YXJ0Lmxlbmd0aCA+IGFycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhcnQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3RhcnRbaV0gIT09IGFycmF5W2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
-
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/"use strict";
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP;
-	// See: http://code.google.com/p/google-diff-match-patch/wiki/API
-	function convertChangesToDMP(changes) {
-	  var ret = [],
-	      change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
-	      operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-	  for (var i = 0; i < changes.length; i++) {
-	    change = changes[i];
-	    if (change.added) {
-	      operation = 1;
-	    } else if (change.removed) {
-	      operation = -1;
-	    } else {
-	      operation = 0;
-	    }
-
-	    ret.push([operation, change.value]);
-	  }
-	  return ret;
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvRE1QIiwiY2hhbmdlcyIsInJldCIsImNoYW5nZSIsIm9wZXJhdGlvbiIsImkiLCJsZW5ndGgiLCJhZGRlZCIsInJlbW92ZWQiLCJwdXNoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7OztnQ0FDZ0JBLG1CLEdBQUFBLG1CO0FBRGhCO0FBQ08sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLE1BQU0sRUFBVjtBQUFBLE1BQ0lDLHdDQURKO0FBQUEsTUFFSUMsMkNBRko7QUFHQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosUUFBUUssTUFBNUIsRUFBb0NELEdBQXBDLEVBQXlDO0FBQ3ZDRixhQUFTRixRQUFRSSxDQUFSLENBQVQ7QUFDQSxRQUFJRixPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSCxrQkFBWSxDQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUlELE9BQU9LLE9BQVgsRUFBb0I7QUFDekJKLGtCQUFZLENBQUMsQ0FBYjtBQUNELEtBRk0sTUFFQTtBQUNMQSxrQkFBWSxDQUFaO0FBQ0Q7O0FBRURGLFFBQUlPLElBQUosQ0FBUyxDQUFDTCxTQUFELEVBQVlELE9BQU9PLEtBQW5CLENBQVQ7QUFDRDtBQUNELFNBQU9SLEdBQVA7QUFDRCIsImZpbGUiOiJkbXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWU6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtZGlmZi1tYXRjaC1wYXRjaC93aWtpL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9ETVAoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBjaGFuZ2UsXG4gICAgICBvcGVyYXRpb247XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgb3BlcmF0aW9uID0gMTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uID0gMDtcbiAgICB9XG5cbiAgICByZXQucHVzaChbb3BlcmF0aW9uLCBjaGFuZ2UudmFsdWVdKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19
-
-
-/***/ }),
-/* 17 */
-/***/ (function(module, exports) {
-
-	/*istanbul ignore start*/'use strict';
-
-	exports.__esModule = true;
-	exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML;
-	function convertChangesToXML(changes) {
-	  var ret = [];
-	  for (var i = 0; i < changes.length; i++) {
-	    var change = changes[i];
-	    if (change.added) {
-	      ret.push('');
-	    } else if (change.removed) {
-	      ret.push('');
-	    }
-
-	    ret.push(escapeHTML(change.value));
-
-	    if (change.added) {
-	      ret.push('');
-	    } else if (change.removed) {
-	      ret.push('');
-	    }
-	  }
-	  return ret.join('');
-	}
-
-	function escapeHTML(s) {
-	  var n = s;
-	  n = n.replace(/&/g, '&');
-	  n = n.replace(//g, '>');
-	  n = n.replace(/"/g, '"');
-
-	  return n;
-	}
-	//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2hhbmdlcyIsInJldCIsImkiLCJsZW5ndGgiLCJjaGFuZ2UiLCJhZGRlZCIsInB1c2giLCJyZW1vdmVkIiwiZXNjYXBlSFRNTCIsInZhbHVlIiwiam9pbiIsInMiLCJuIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsbUIsR0FBQUEsbUI7QUFBVCxTQUFTQSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSUMsTUFBTSxFQUFWO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLFFBQVFHLE1BQTVCLEVBQW9DRCxHQUFwQyxFQUF5QztBQUN2QyxRQUFJRSxTQUFTSixRQUFRRSxDQUFSLENBQWI7QUFDQSxRQUFJRSxPQUFPQyxLQUFYLEVBQWtCO0FBQ2hCSixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNELEtBRkQsTUFFTyxJQUFJRixPQUFPRyxPQUFYLEVBQW9CO0FBQ3pCTixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNEOztBQUVETCxRQUFJSyxJQUFKLENBQVNFLFdBQVdKLE9BQU9LLEtBQWxCLENBQVQ7O0FBRUEsUUFBSUwsT0FBT0MsS0FBWCxFQUFrQjtBQUNoQkosVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsT0FBT0csT0FBWCxFQUFvQjtBQUN6Qk4sVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRDtBQUNGO0FBQ0QsU0FBT0wsSUFBSVMsSUFBSixDQUFTLEVBQVQsQ0FBUDtBQUNEOztBQUVELFNBQVNGLFVBQVQsQ0FBb0JHLENBQXBCLEVBQXVCO0FBQ3JCLE1BQUlDLElBQUlELENBQVI7QUFDQUMsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSjtBQUNBRCxNQUFJQSxFQUFFQyxPQUFGLENBQVUsSUFBVixFQUFnQixNQUFoQixDQUFKO0FBQ0FELE1BQUlBLEVBQUVDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSjs7QUFFQSxTQUFPRCxDQUFQO0FBQ0QiLCJmaWxlIjoieG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9YTUwoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8aW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8ZGVsPicpO1xuICAgIH1cblxuICAgIHJldC5wdXNoKGVzY2FwZUhUTUwoY2hhbmdlLnZhbHVlKSk7XG5cbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPC9pbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzwvZGVsPicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIVE1MKHMpIHtcbiAgbGV0IG4gPSBzO1xuICBuID0gbi5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuICBuID0gbi5yZXBsYWNlKC88L2csICcmbHQ7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xuXG4gIHJldHVybiBuO1xufVxuIl19
-
-
-/***/ })
-/******/ ])
-});
-;
\ No newline at end of file
diff --git a/multiplatform-crypto-delegated/node_modules/diff/dist/diff.min.js b/multiplatform-crypto-delegated/node_modules/diff/dist/diff.min.js
deleted file mode 100644
index 5049f84..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/dist/diff.min.js
+++ /dev/null
@@ -1,416 +0,0 @@
-/*!
-
- diff v3.5.0
-
-Software License Agreement (BSD License)
-
-Copyright (c) 2009-2015, Kevin Decker 
-
-All rights reserved.
-
-Redistribution and use of this software in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above
-  copyright notice, this list of conditions and the
-  following disclaimer.
-
-* Redistributions in binary form must reproduce the above
-  copyright notice, this list of conditions and the
-  following disclaimer in the documentation and/or other
-  materials provided with the distribution.
-
-* Neither the name of Kevin Decker nor the names of its
-  contributors may be used to endorse or promote products
-  derived from this software without specific prior
-  written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-@license
-*/
-!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.JsDiff=b():a.JsDiff=b()}(this,function(){/******/
-return function(a){/******/
-// The require function
-/******/
-function b(d){/******/
-// Check if module is in cache
-/******/
-if(c[d])/******/
-return c[d].exports;/******/
-// Create a new module (and put it into the cache)
-/******/
-var e=c[d]={/******/
-exports:{},/******/
-id:d,/******/
-loaded:!1};/******/
-// Return the exports of the module
-/******/
-/******/
-// Execute the module function
-/******/
-/******/
-// Flag the module as loaded
-/******/
-return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}// webpackBootstrap
-/******/
-// The module cache
-/******/
-var c={};/******/
-// Load entry module and return exports
-/******/
-/******/
-// expose the modules object (__webpack_modules__)
-/******/
-/******/
-// expose the module cache
-/******/
-/******/
-// __webpack_public_path__
-/******/
-return b.m=a,b.c=c,b.p="",b(0)}([/* 0 */
-/***/
-function(a,b,c){/*istanbul ignore start*/
-"use strict";/*istanbul ignore start*/
-function d(a){return a&&a.__esModule?a:{"default":a}}b.__esModule=!0,b.canonicalize=b.convertChangesToXML=b.convertChangesToDMP=b.merge=b.parsePatch=b.applyPatches=b.applyPatch=b.createPatch=b.createTwoFilesPatch=b.structuredPatch=b.diffArrays=b.diffJson=b.diffCss=b.diffSentences=b.diffTrimmedLines=b.diffLines=b.diffWordsWithSpace=b.diffWords=b.diffChars=b.Diff=void 0;/*istanbul ignore end*/
-var/*istanbul ignore start*/e=c(1),f=d(e),/*istanbul ignore start*/g=c(2),/*istanbul ignore start*/h=c(3),/*istanbul ignore start*/i=c(5),/*istanbul ignore start*/j=c(6),/*istanbul ignore start*/k=c(7),/*istanbul ignore start*/l=c(8),/*istanbul ignore start*/m=c(9),/*istanbul ignore start*/n=c(10),/*istanbul ignore start*/o=c(11),/*istanbul ignore start*/p=c(13),/*istanbul ignore start*/q=c(14),/*istanbul ignore start*/r=c(16),/*istanbul ignore start*/s=c(17);/* See LICENSE file for terms of use */
-/*
-	 * Text diff implementation.
-	 *
-	 * This library supports the following APIS:
-	 * JsDiff.diffChars: Character by character diff
-	 * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
-	 * JsDiff.diffLines: Line based diff
-	 *
-	 * JsDiff.diffCss: Diff targeted at CSS content
-	 *
-	 * These methods are based on the implementation proposed in
-	 * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
-	 * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
-	 */
-b.Diff=f["default"],/*istanbul ignore start*/
-b.diffChars=g.diffChars,/*istanbul ignore start*/
-b.diffWords=h.diffWords,/*istanbul ignore start*/
-b.diffWordsWithSpace=h.diffWordsWithSpace,/*istanbul ignore start*/
-b.diffLines=i.diffLines,/*istanbul ignore start*/
-b.diffTrimmedLines=i.diffTrimmedLines,/*istanbul ignore start*/
-b.diffSentences=j.diffSentences,/*istanbul ignore start*/
-b.diffCss=k.diffCss,/*istanbul ignore start*/
-b.diffJson=l.diffJson,/*istanbul ignore start*/
-b.diffArrays=m.diffArrays,/*istanbul ignore start*/
-b.structuredPatch=q.structuredPatch,/*istanbul ignore start*/
-b.createTwoFilesPatch=q.createTwoFilesPatch,/*istanbul ignore start*/
-b.createPatch=q.createPatch,/*istanbul ignore start*/
-b.applyPatch=n.applyPatch,/*istanbul ignore start*/
-b.applyPatches=n.applyPatches,/*istanbul ignore start*/
-b.parsePatch=o.parsePatch,/*istanbul ignore start*/
-b.merge=p.merge,/*istanbul ignore start*/
-b.convertChangesToDMP=r.convertChangesToDMP,/*istanbul ignore start*/
-b.convertChangesToXML=s.convertChangesToXML,/*istanbul ignore start*/
-b.canonicalize=l.canonicalize},/* 1 */
-/***/
-function(a,b){/*istanbul ignore start*/
-"use strict";function c(){}function d(a,b,c,d,e){for(var f=0,g=b.length,h=0,i=0;fa.length?c:a}),j.value=a.join(l)}else j.value=a.join(c.slice(h,h+j.count));h+=j.count,
-// Common case
-j.added||(i+=j.count)}}
-// Special case handle for when one terminal is ignored (i.e. whitespace).
-// For this case we merge the terminal into the prior string and drop the change.
-// This is only available for string mode.
-var m=b[g-1];return g>1&&"string"==typeof m.value&&(m.added||m.removed)&&a.equals("",m.value)&&(b[g-2].value+=m.value,b.pop()),b}function e(a){return{newPos:a.newPos,components:a.components.slice(0)}}b.__esModule=!0,b["default"]=/*istanbul ignore end*/c,c.prototype={/*istanbul ignore start*/
-/*istanbul ignore end*/
-diff:function(a,b){function c(a){return h?(setTimeout(function(){h(void 0,a)},0),!0):a}
-// Main worker method. checks all permutations of a given edit length for acceptance.
-function f(){for(var f=-1*l;f<=l;f+=2){var g=/*istanbul ignore start*/void 0,h=n[f-1],m=n[f+1],o=(m?m.newPos:0)-f;h&&(
-// No one else is going to attempt to use this value, clear it
-n[f-1]=void 0);var p=h&&h.newPos+1=j&&o+1>=k)return c(d(i,g.components,b,a,i.useLongestToken));
-// Otherwise track this path as a potential candidate and continue.
-n[f]=g}else
-// If this path is a terminal then prune
-n[f]=void 0}l++}/*istanbul ignore start*/
-var/*istanbul ignore end*/g=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},h=g.callback;"function"==typeof g&&(h=g,g={}),this.options=g;var i=this;
-// Allow subclasses to massage the input prior to running
-a=this.castInput(a),b=this.castInput(b),a=this.removeEmpty(this.tokenize(a)),b=this.removeEmpty(this.tokenize(b));var j=b.length,k=a.length,l=1,m=j+k,n=[{newPos:-1,components:[]}],o=this.extractCommon(n[0],b,a,0);if(n[0].newPos+1>=j&&o+1>=k)
-// Identity per the equality and tokenizer
-return c([{value:this.join(b),count:b.length}]);
-// Performs the length of edit iteration. Is a bit fugly as this has to support the
-// sync and async mode which is never fun. Loops over execEditLength until a value
-// is produced.
-if(h)!function q(){setTimeout(function(){
-// This should not happen, but we want to be safe.
-/* istanbul ignore next */
-// This should not happen, but we want to be safe.
-/* istanbul ignore next */
-return l>m?h():void(f()||q())},0)}();else for(;l<=m;){var p=f();if(p)return p}},/*istanbul ignore start*/
-/*istanbul ignore end*/
-pushComponent:function(a,b,c){var d=a[a.length-1];d&&d.added===b&&d.removed===c?
-// We need to clone here as the component clone operation is just
-// as shallow array clone
-a[a.length-1]={count:d.count+1,added:b,removed:c}:a.push({count:1,added:b,removed:c})},/*istanbul ignore start*/
-/*istanbul ignore end*/
-extractCommon:function(a,b,c,d){for(var e=b.length,f=c.length,g=a.newPos,h=g-d,i=0;g+10?d[0]:" ",g=d.length>0?d.substr(1):d;if(" "===f||"-"===f){
-// Context sanity check
-if(!j(b+1,e[b],f,g)&&(k++,k>l))return!1;b++}}return!0}/*istanbul ignore start*/
-var/*istanbul ignore end*/d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof b&&(b=/*istanbul ignore start*/(0,g.parsePatch)(b)),Array.isArray(b)){if(b.length>1)throw new Error("applyPatch only works with a single input.");b=b[0]}
-// Search best fit offsets for each hunk based on the previous ones
-for(var e=a.split(/\r\n|[\n\v\f\r\x85]/),f=a.match(/\r\n|[\n\v\f\r\x85]/g)||[],h=b.hunks,j=d.compareLine||function(a,b,c,d){/*istanbul ignore end*/
-return b===d},k=0,l=d.fuzzFactor||0,m=0,n=0,o=/*istanbul ignore start*/void 0,p=/*istanbul ignore start*/void 0,q=0;q0?B[0]:" ",D=B.length>0?B.substr(1):B,E=y.linedelimiters[A];if(" "===C)z++;else if("-"===C)e.splice(z,1),f.splice(z,1);else if("+"===C)e.splice(z,0,D),f.splice(z,0,E),z++;else if("\\"===C){var F=y.lines[A-1]?y.lines[A-1][0]:null;"+"===F?o=!0:"-"===F&&(p=!0)}}}
-// Handle EOFNL insertion/removal
-if(o)for(;!e[e.length-1];)e.pop(),f.pop();else p&&(e.push(""),f.push("\n"));for(var G=0;G1&&void 0!==arguments[1]?arguments[1]:{},f=a.split(/\r\n|[\n\v\f\r\x85]/),g=a.match(/\r\n|[\n\v\f\r\x85]/g)||[],h=[],i=0;i0?j(h.lines.slice(-i.context)):[],m-=o.length,n-=o.length)}
-// Output our changes
-/*istanbul ignore start*/
-(g=/*istanbul ignore end*/o).push.apply(/*istanbul ignore start*/g,/*istanbul ignore start*/d(/*istanbul ignore end*/f.map(function(a){return(b.added?"+":"-")+a}))),
-// Track the updated file position
-b.added?q+=f.length:p+=f.length}else{
-// Identical context lines. Track line changes
-if(m)
-// Close out any changes that have been output (or join overlapping)
-if(f.length<=2*i.context&&a=k.length-2&&f.length<=i.context){
-// EOF is inside this hunk
-var v=/\n$/.test(c),w=/\n$/.test(e);0!=f.length||v?v&&w||o.push("\\ No newline at end of file"):
-// special case: old has no eol and no trailing context; no-nl can end up before adds
-o.splice(u.oldLines,0,"\\ No newline at end of file")}l.push(u),m=0,n=0,o=[]}p+=f.length,q+=f.length}},s=0;sa.length)return!1;for(var c=0;c"):e.removed&&b.push(""),b.push(d(e.value)),e.added?b.push(""):e.removed&&b.push("")}return b.join("")}function d(a){var b=a;return b=b.replace(/&/g,"&"),b=b.replace(//g,">"),b=b.replace(/"/g,""")}b.__esModule=!0,b.convertChangesToXML=c}])});
\ No newline at end of file
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/convert/dmp.js b/multiplatform-crypto-delegated/node_modules/diff/lib/convert/dmp.js
deleted file mode 100644
index b9b646f..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/convert/dmp.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*istanbul ignore start*/"use strict";
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP;
-// See: http://code.google.com/p/google-diff-match-patch/wiki/API
-function convertChangesToDMP(changes) {
-  var ret = [],
-      change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
-      operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-  for (var i = 0; i < changes.length; i++) {
-    change = changes[i];
-    if (change.added) {
-      operation = 1;
-    } else if (change.removed) {
-      operation = -1;
-    } else {
-      operation = 0;
-    }
-
-    ret.push([operation, change.value]);
-  }
-  return ret;
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvRE1QIiwiY2hhbmdlcyIsInJldCIsImNoYW5nZSIsIm9wZXJhdGlvbiIsImkiLCJsZW5ndGgiLCJhZGRlZCIsInJlbW92ZWQiLCJwdXNoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7OztnQ0FDZ0JBLG1CLEdBQUFBLG1CO0FBRGhCO0FBQ08sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLE1BQU0sRUFBVjtBQUFBLE1BQ0lDLHdDQURKO0FBQUEsTUFFSUMsMkNBRko7QUFHQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosUUFBUUssTUFBNUIsRUFBb0NELEdBQXBDLEVBQXlDO0FBQ3ZDRixhQUFTRixRQUFRSSxDQUFSLENBQVQ7QUFDQSxRQUFJRixPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSCxrQkFBWSxDQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUlELE9BQU9LLE9BQVgsRUFBb0I7QUFDekJKLGtCQUFZLENBQUMsQ0FBYjtBQUNELEtBRk0sTUFFQTtBQUNMQSxrQkFBWSxDQUFaO0FBQ0Q7O0FBRURGLFFBQUlPLElBQUosQ0FBUyxDQUFDTCxTQUFELEVBQVlELE9BQU9PLEtBQW5CLENBQVQ7QUFDRDtBQUNELFNBQU9SLEdBQVA7QUFDRCIsImZpbGUiOiJkbXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWU6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtZGlmZi1tYXRjaC1wYXRjaC93aWtpL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9ETVAoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBjaGFuZ2UsXG4gICAgICBvcGVyYXRpb247XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgb3BlcmF0aW9uID0gMTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uID0gMDtcbiAgICB9XG5cbiAgICByZXQucHVzaChbb3BlcmF0aW9uLCBjaGFuZ2UudmFsdWVdKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/convert/xml.js b/multiplatform-crypto-delegated/node_modules/diff/lib/convert/xml.js
deleted file mode 100644
index 331827a..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/convert/xml.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML;
-function convertChangesToXML(changes) {
-  var ret = [];
-  for (var i = 0; i < changes.length; i++) {
-    var change = changes[i];
-    if (change.added) {
-      ret.push('');
-    } else if (change.removed) {
-      ret.push('');
-    }
-
-    ret.push(escapeHTML(change.value));
-
-    if (change.added) {
-      ret.push('');
-    } else if (change.removed) {
-      ret.push('');
-    }
-  }
-  return ret.join('');
-}
-
-function escapeHTML(s) {
-  var n = s;
-  n = n.replace(/&/g, '&');
-  n = n.replace(//g, '>');
-  n = n.replace(/"/g, '"');
-
-  return n;
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2hhbmdlcyIsInJldCIsImkiLCJsZW5ndGgiLCJjaGFuZ2UiLCJhZGRlZCIsInB1c2giLCJyZW1vdmVkIiwiZXNjYXBlSFRNTCIsInZhbHVlIiwiam9pbiIsInMiLCJuIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsbUIsR0FBQUEsbUI7QUFBVCxTQUFTQSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSUMsTUFBTSxFQUFWO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLFFBQVFHLE1BQTVCLEVBQW9DRCxHQUFwQyxFQUF5QztBQUN2QyxRQUFJRSxTQUFTSixRQUFRRSxDQUFSLENBQWI7QUFDQSxRQUFJRSxPQUFPQyxLQUFYLEVBQWtCO0FBQ2hCSixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNELEtBRkQsTUFFTyxJQUFJRixPQUFPRyxPQUFYLEVBQW9CO0FBQ3pCTixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNEOztBQUVETCxRQUFJSyxJQUFKLENBQVNFLFdBQVdKLE9BQU9LLEtBQWxCLENBQVQ7O0FBRUEsUUFBSUwsT0FBT0MsS0FBWCxFQUFrQjtBQUNoQkosVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsT0FBT0csT0FBWCxFQUFvQjtBQUN6Qk4sVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRDtBQUNGO0FBQ0QsU0FBT0wsSUFBSVMsSUFBSixDQUFTLEVBQVQsQ0FBUDtBQUNEOztBQUVELFNBQVNGLFVBQVQsQ0FBb0JHLENBQXBCLEVBQXVCO0FBQ3JCLE1BQUlDLElBQUlELENBQVI7QUFDQUMsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSjtBQUNBRCxNQUFJQSxFQUFFQyxPQUFGLENBQVUsSUFBVixFQUFnQixNQUFoQixDQUFKO0FBQ0FELE1BQUlBLEVBQUVDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSjs7QUFFQSxTQUFPRCxDQUFQO0FBQ0QiLCJmaWxlIjoieG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9YTUwoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8aW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8ZGVsPicpO1xuICAgIH1cblxuICAgIHJldC5wdXNoKGVzY2FwZUhUTUwoY2hhbmdlLnZhbHVlKSk7XG5cbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPC9pbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzwvZGVsPicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIVE1MKHMpIHtcbiAgbGV0IG4gPSBzO1xuICBuID0gbi5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuICBuID0gbi5yZXBsYWNlKC88L2csICcmbHQ7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xuXG4gIHJldHVybiBuO1xufVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/array.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/array.js
deleted file mode 100644
index f3daa4e..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/array.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.arrayDiff = undefined;
-exports. /*istanbul ignore end*/diffArrays = diffArrays;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-arrayDiff.tokenize = function (value) {
-  return value.slice();
-};
-arrayDiff.join = arrayDiff.removeEmpty = function (value) {
-  return value;
-};
-
-function diffArrays(oldArr, newArr, callback) {
-  return arrayDiff.diff(oldArr, newArr, callback);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2FycmF5LmpzIl0sIm5hbWVzIjpbImRpZmZBcnJheXMiLCJhcnJheURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic2xpY2UiLCJqb2luIiwicmVtb3ZlRW1wdHkiLCJvbGRBcnIiLCJuZXdBcnIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBVWdCQSxVLEdBQUFBLFU7O0FBVmhCOzs7Ozs7dUJBRU8sSUFBTUMsaUZBQVksd0VBQWxCO0FBQ1BBLFVBQVVDLFFBQVYsR0FBcUIsVUFBU0MsS0FBVCxFQUFnQjtBQUNuQyxTQUFPQSxNQUFNQyxLQUFOLEVBQVA7QUFDRCxDQUZEO0FBR0FILFVBQVVJLElBQVYsR0FBaUJKLFVBQVVLLFdBQVYsR0FBd0IsVUFBU0gsS0FBVCxFQUFnQjtBQUN2RCxTQUFPQSxLQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTSCxVQUFULENBQW9CTyxNQUFwQixFQUE0QkMsTUFBNUIsRUFBb0NDLFFBQXBDLEVBQThDO0FBQUUsU0FBT1IsVUFBVVMsSUFBVixDQUFlSCxNQUFmLEVBQXVCQyxNQUF2QixFQUErQkMsUUFBL0IsQ0FBUDtBQUFrRCIsImZpbGUiOiJhcnJheS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBhcnJheURpZmYgPSBuZXcgRGlmZigpO1xuYXJyYXlEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNsaWNlKCk7XG59O1xuYXJyYXlEaWZmLmpvaW4gPSBhcnJheURpZmYucmVtb3ZlRW1wdHkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkFycmF5cyhvbGRBcnIsIG5ld0FyciwgY2FsbGJhY2spIHsgcmV0dXJuIGFycmF5RGlmZi5kaWZmKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjayk7IH1cbiJdfQ==
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/base.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/base.js
deleted file mode 100644
index 763daec..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/base.js
+++ /dev/null
@@ -1,235 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports['default'] = /*istanbul ignore end*/Diff;
-function Diff() {}
-
-Diff.prototype = {
-  /*istanbul ignore start*/ /*istanbul ignore end*/diff: function diff(oldString, newString) {
-    /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
-    var callback = options.callback;
-    if (typeof options === 'function') {
-      callback = options;
-      options = {};
-    }
-    this.options = options;
-
-    var self = this;
-
-    function done(value) {
-      if (callback) {
-        setTimeout(function () {
-          callback(undefined, value);
-        }, 0);
-        return true;
-      } else {
-        return value;
-      }
-    }
-
-    // Allow subclasses to massage the input prior to running
-    oldString = this.castInput(oldString);
-    newString = this.castInput(newString);
-
-    oldString = this.removeEmpty(this.tokenize(oldString));
-    newString = this.removeEmpty(this.tokenize(newString));
-
-    var newLen = newString.length,
-        oldLen = oldString.length;
-    var editLength = 1;
-    var maxEditLength = newLen + oldLen;
-    var bestPath = [{ newPos: -1, components: [] }];
-
-    // Seed editLength = 0, i.e. the content starts with the same values
-    var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);
-    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {
-      // Identity per the equality and tokenizer
-      return done([{ value: this.join(newString), count: newString.length }]);
-    }
-
-    // Main worker method. checks all permutations of a given edit length for acceptance.
-    function execEditLength() {
-      for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {
-        var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-        var addPath = bestPath[diagonalPath - 1],
-            removePath = bestPath[diagonalPath + 1],
-            _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;
-        if (addPath) {
-          // No one else is going to attempt to use this value, clear it
-          bestPath[diagonalPath - 1] = undefined;
-        }
-
-        var canAdd = addPath && addPath.newPos + 1 < newLen,
-            canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;
-        if (!canAdd && !canRemove) {
-          // If this path is a terminal then prune
-          bestPath[diagonalPath] = undefined;
-          continue;
-        }
-
-        // Select the diagonal that we want to branch from. We select the prior
-        // path whose position in the new string is the farthest from the origin
-        // and does not pass the bounds of the diff graph
-        if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {
-          basePath = clonePath(removePath);
-          self.pushComponent(basePath.components, undefined, true);
-        } else {
-          basePath = addPath; // No need to clone, we've pulled it from the list
-          basePath.newPos++;
-          self.pushComponent(basePath.components, true, undefined);
-        }
-
-        _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);
-
-        // If we have hit the end of both strings, then we are done
-        if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {
-          return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));
-        } else {
-          // Otherwise track this path as a potential candidate and continue.
-          bestPath[diagonalPath] = basePath;
-        }
-      }
-
-      editLength++;
-    }
-
-    // Performs the length of edit iteration. Is a bit fugly as this has to support the
-    // sync and async mode which is never fun. Loops over execEditLength until a value
-    // is produced.
-    if (callback) {
-      (function exec() {
-        setTimeout(function () {
-          // This should not happen, but we want to be safe.
-          /* istanbul ignore next */
-          if (editLength > maxEditLength) {
-            return callback();
-          }
-
-          if (!execEditLength()) {
-            exec();
-          }
-        }, 0);
-      })();
-    } else {
-      while (editLength <= maxEditLength) {
-        var ret = execEditLength();
-        if (ret) {
-          return ret;
-        }
-      }
-    }
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) {
-    var last = components[components.length - 1];
-    if (last && last.added === added && last.removed === removed) {
-      // We need to clone here as the component clone operation is just
-      // as shallow array clone
-      components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };
-    } else {
-      components.push({ count: 1, added: added, removed: removed });
-    }
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {
-    var newLen = newString.length,
-        oldLen = oldString.length,
-        newPos = basePath.newPos,
-        oldPos = newPos - diagonalPath,
-        commonCount = 0;
-    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {
-      newPos++;
-      oldPos++;
-      commonCount++;
-    }
-
-    if (commonCount) {
-      basePath.components.push({ count: commonCount });
-    }
-
-    basePath.newPos = newPos;
-    return oldPos;
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) {
-    if (this.options.comparator) {
-      return this.options.comparator(left, right);
-    } else {
-      return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();
-    }
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) {
-    var ret = [];
-    for (var i = 0; i < array.length; i++) {
-      if (array[i]) {
-        ret.push(array[i]);
-      }
-    }
-    return ret;
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) {
-    return value;
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) {
-    return value.split('');
-  },
-  /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) {
-    return chars.join('');
-  }
-};
-
-function buildValues(diff, components, newString, oldString, useLongestToken) {
-  var componentPos = 0,
-      componentLen = components.length,
-      newPos = 0,
-      oldPos = 0;
-
-  for (; componentPos < componentLen; componentPos++) {
-    var component = components[componentPos];
-    if (!component.removed) {
-      if (!component.added && useLongestToken) {
-        var value = newString.slice(newPos, newPos + component.count);
-        value = value.map(function (value, i) {
-          var oldValue = oldString[oldPos + i];
-          return oldValue.length > value.length ? oldValue : value;
-        });
-
-        component.value = diff.join(value);
-      } else {
-        component.value = diff.join(newString.slice(newPos, newPos + component.count));
-      }
-      newPos += component.count;
-
-      // Common case
-      if (!component.added) {
-        oldPos += component.count;
-      }
-    } else {
-      component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));
-      oldPos += component.count;
-
-      // Reverse add and remove so removes are output first to match common convention
-      // The diffing algorithm is tied to add then remove output and this is the simplest
-      // route to get the desired output with minimal overhead.
-      if (componentPos && components[componentPos - 1].added) {
-        var tmp = components[componentPos - 1];
-        components[componentPos - 1] = components[componentPos];
-        components[componentPos] = tmp;
-      }
-    }
-  }
-
-  // Special case handle for when one terminal is ignored (i.e. whitespace).
-  // For this case we merge the terminal into the prior string and drop the change.
-  // This is only available for string mode.
-  var lastComponent = components[componentLen - 1];
-  if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {
-    components[componentLen - 2].value += lastComponent.value;
-    components.pop();
-  }
-
-  return components;
-}
-
-function clonePath(path) {
-  return { newPos: path.newPos, components: path.components.slice(0) };
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOlsiRGlmZiIsInByb3RvdHlwZSIsImRpZmYiLCJvbGRTdHJpbmciLCJuZXdTdHJpbmciLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzZWxmIiwiZG9uZSIsInZhbHVlIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImNhc3RJbnB1dCIsInJlbW92ZUVtcHR5IiwidG9rZW5pemUiLCJuZXdMZW4iLCJsZW5ndGgiLCJvbGRMZW4iLCJlZGl0TGVuZ3RoIiwibWF4RWRpdExlbmd0aCIsImJlc3RQYXRoIiwibmV3UG9zIiwiY29tcG9uZW50cyIsIm9sZFBvcyIsImV4dHJhY3RDb21tb24iLCJqb2luIiwiY291bnQiLCJleGVjRWRpdExlbmd0aCIsImRpYWdvbmFsUGF0aCIsImJhc2VQYXRoIiwiYWRkUGF0aCIsInJlbW92ZVBhdGgiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjbG9uZVBhdGgiLCJwdXNoQ29tcG9uZW50IiwiYnVpbGRWYWx1ZXMiLCJ1c2VMb25nZXN0VG9rZW4iLCJleGVjIiwicmV0IiwiYWRkZWQiLCJyZW1vdmVkIiwibGFzdCIsInB1c2giLCJjb21tb25Db3VudCIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsImNvbXBhcmF0b3IiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJhcnJheSIsImkiLCJzcGxpdCIsImNoYXJzIiwiY29tcG9uZW50UG9zIiwiY29tcG9uZW50TGVuIiwiY29tcG9uZW50Iiwic2xpY2UiLCJtYXAiLCJvbGRWYWx1ZSIsInRtcCIsImxhc3RDb21wb25lbnQiLCJwb3AiLCJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7NENBQXdCQSxJO0FBQVQsU0FBU0EsSUFBVCxHQUFnQixDQUFFOztBQUVqQ0EsS0FBS0MsU0FBTCxHQUFpQjtBQUFBLG1EQUNmQyxJQURlLGdCQUNWQyxTQURVLEVBQ0NDLFNBREQsRUFDMEI7QUFBQSx3REFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUN2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RUFBd0JBLFNBQVNrQyxVQUFVL0IsS0FBM0MsQ0FBVixDQUFsQjtBQUNBSCxnQkFBVWtDLFVBQVUvQixLQUFwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFJNkIsZ0JBQWdCakMsV0FBV2lDLGVBQWUsQ0FBMUIsRUFBNkJmLEtBQWpELEVBQXdEO0FBQ3RELFlBQUlxQixNQUFNdkMsV0FBV2lDLGVBQWUsQ0FBMUIsQ0FBVjtBQUNBakMsbUJBQVdpQyxlQUFlLENBQTFCLElBQStCakMsV0FBV2lDLFlBQVgsQ0FBL0I7QUFDQWpDLG1CQUFXaUMsWUFBWCxJQUEyQk0sR0FBM0I7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsTUFBSUMsZ0JBQWdCeEMsV0FBV2tDLGVBQWUsQ0FBMUIsQ0FBcEI7QUFDQSxNQUFJQSxlQUFlLENBQWYsSUFDRyxPQUFPTSxjQUFjckQsS0FBckIsS0FBK0IsUUFEbEMsS0FFSXFELGNBQWN0QixLQUFkLElBQXVCc0IsY0FBY3JCLE9BRnpDLEtBR0d2QyxLQUFLMkMsTUFBTCxDQUFZLEVBQVosRUFBZ0JpQixjQUFjckQsS0FBOUIsQ0FIUCxFQUc2QztBQUMzQ2EsZUFBV2tDLGVBQWUsQ0FBMUIsRUFBNkIvQyxLQUE3QixJQUFzQ3FELGNBQWNyRCxLQUFwRDtBQUNBYSxlQUFXeUMsR0FBWDtBQUNEOztBQUVELFNBQU96QyxVQUFQO0FBQ0Q7O0FBRUQsU0FBU1ksU0FBVCxDQUFtQjhCLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRTNDLFFBQVEyQyxLQUFLM0MsTUFBZixFQUF1QkMsWUFBWTBDLEtBQUsxQyxVQUFMLENBQWdCb0MsS0FBaEIsQ0FBc0IsQ0FBdEIsQ0FBbkMsRUFBUDtBQUNEIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7XG4gIGRpZmYob2xkU3RyaW5nLCBuZXdTdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBsZXQgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7IH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgbGV0IGVkaXRMZW5ndGggPSAxO1xuICAgIGxldCBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIGxldCBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICBsZXQgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7dmFsdWU6IHRoaXMuam9pbihuZXdTdHJpbmcpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29tcGFyYXRvcihsZWZ0LCByaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsZWZ0ID09PSByaWdodFxuICAgICAgICB8fCAodGhpcy5vcHRpb25zLmlnbm9yZUNhc2UgJiYgbGVmdC50b0xvd2VyQ2FzZSgpID09PSByaWdodC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9LFxuICBqb2luKGNoYXJzKSB7XG4gICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4odmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gZGlmZi5qb2luKG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkpO1xuICAgICAgfVxuICAgICAgbmV3UG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gQ29tbW9uIGNhc2VcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkKSB7XG4gICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbihvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkIChpLmUuIHdoaXRlc3BhY2UpLlxuICAvLyBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZSB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgLy8gVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Igc3RyaW5nIG1vZGUuXG4gIGxldCBsYXN0Q29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAxXTtcbiAgaWYgKGNvbXBvbmVudExlbiA+IDFcbiAgICAgICYmIHR5cGVvZiBsYXN0Q29tcG9uZW50LnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/character.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/character.js
deleted file mode 100644
index e15da7a..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/character.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.characterDiff = undefined;
-exports. /*istanbul ignore end*/diffChars = diffChars;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-function diffChars(oldStr, newStr, options) {
-  return characterDiff.diff(oldStr, newStr, options);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6WyJkaWZmQ2hhcnMiLCJjaGFyYWN0ZXJEaWZmIiwib2xkU3RyIiwibmV3U3RyIiwib3B0aW9ucyIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBR2dCQSxTLEdBQUFBLFM7O0FBSGhCOzs7Ozs7dUJBRU8sSUFBTUMseUZBQWdCLHdFQUF0QjtBQUNBLFNBQVNELFNBQVQsQ0FBbUJFLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ0MsT0FBbkMsRUFBNEM7QUFBRSxTQUFPSCxjQUFjSSxJQUFkLENBQW1CSCxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLE9BQW5DLENBQVA7QUFBcUQiLCJmaWxlIjoiY2hhcmFjdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckRpZmYgPSBuZXcgRGlmZigpO1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGFycyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykgeyByZXR1cm4gY2hhcmFjdGVyRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTsgfVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/css.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/css.js
deleted file mode 100644
index 640af5e..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/css.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.cssDiff = undefined;
-exports. /*istanbul ignore end*/diffCss = diffCss;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-cssDiff.tokenize = function (value) {
-  return value.split(/([{}:;,]|\s+)/);
-};
-
-function diffCss(oldStr, newStr, callback) {
-  return cssDiff.diff(oldStr, newStr, callback);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6WyJkaWZmQ3NzIiwiY3NzRGlmZiIsInRva2VuaXplIiwidmFsdWUiLCJzcGxpdCIsIm9sZFN0ciIsIm5ld1N0ciIsImNhbGxiYWNrIiwiZGlmZiJdLCJtYXBwaW5ncyI6Ijs7OztnQ0FPZ0JBLE8sR0FBQUEsTzs7QUFQaEI7Ozs7Ozt1QkFFTyxJQUFNQyw2RUFBVSx3RUFBaEI7QUFDUEEsUUFBUUMsUUFBUixHQUFtQixVQUFTQyxLQUFULEVBQWdCO0FBQ2pDLFNBQU9BLE1BQU1DLEtBQU4sQ0FBWSxlQUFaLENBQVA7QUFDRCxDQUZEOztBQUlPLFNBQVNKLE9BQVQsQ0FBaUJLLE1BQWpCLEVBQXlCQyxNQUF6QixFQUFpQ0MsUUFBakMsRUFBMkM7QUFBRSxTQUFPTixRQUFRTyxJQUFSLENBQWFILE1BQWIsRUFBcUJDLE1BQXJCLEVBQTZCQyxRQUE3QixDQUFQO0FBQWdEIiwiZmlsZSI6ImNzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjc3NEaWZmID0gbmV3IERpZmYoKTtcbmNzc0RpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhbe306OyxdfFxccyspLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNzcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIGNzc0RpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/json.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/json.js
deleted file mode 100644
index ca21739..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/json.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.jsonDiff = undefined;
-
-var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-exports. /*istanbul ignore end*/diffJson = diffJson;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-/*istanbul ignore end*/var /*istanbul ignore start*/_line = require('./line') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/var objectPrototypeToString = Object.prototype.toString;
-
-var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a
-// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:
-jsonDiff.useLongestToken = true;
-
-jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff /*istanbul ignore end*/.tokenize;
-jsonDiff.castInput = function (value) {
-  /*istanbul ignore start*/var _options = /*istanbul ignore end*/this.options,
-      undefinedReplacement = _options.undefinedReplacement,
-      _options$stringifyRep = _options.stringifyReplacer,
-      stringifyReplacer = _options$stringifyRep === undefined ? function (k, v) /*istanbul ignore start*/{
-    return (/*istanbul ignore end*/typeof v === 'undefined' ? undefinedReplacement : v
-    );
-  } : _options$stringifyRep;
-
-
-  return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, '  ');
-};
-jsonDiff.equals = function (left, right) {
-  return (/*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1'))
-  );
-};
-
-function diffJson(oldObj, newObj, options) {
-  return jsonDiff.diff(oldObj, newObj, options);
-}
-
-// This function handles the presence of circular references by bailing out when encountering an
-// object that is already on the "stack" of items being processed. Accepts an optional replacer
-function canonicalize(obj, stack, replacementStack, replacer, key) {
-  stack = stack || [];
-  replacementStack = replacementStack || [];
-
-  if (replacer) {
-    obj = replacer(key, obj);
-  }
-
-  var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-
-  for (i = 0; i < stack.length; i += 1) {
-    if (stack[i] === obj) {
-      return replacementStack[i];
-    }
-  }
-
-  var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-
-  if ('[object Array]' === objectPrototypeToString.call(obj)) {
-    stack.push(obj);
-    canonicalizedObj = new Array(obj.length);
-    replacementStack.push(canonicalizedObj);
-    for (i = 0; i < obj.length; i += 1) {
-      canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key);
-    }
-    stack.pop();
-    replacementStack.pop();
-    return canonicalizedObj;
-  }
-
-  if (obj && obj.toJSON) {
-    obj = obj.toJSON();
-  }
-
-  if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) {
-    stack.push(obj);
-    canonicalizedObj = {};
-    replacementStack.push(canonicalizedObj);
-    var sortedKeys = [],
-        _key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-    for (_key in obj) {
-      /* istanbul ignore else */
-      if (obj.hasOwnProperty(_key)) {
-        sortedKeys.push(_key);
-      }
-    }
-    sortedKeys.sort();
-    for (i = 0; i < sortedKeys.length; i += 1) {
-      _key = sortedKeys[i];
-      canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key);
-    }
-    stack.pop();
-    replacementStack.pop();
-  } else {
-    canonicalizedObj = obj;
-  }
-  return canonicalizedObj;
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOlsiZGlmZkpzb24iLCJjYW5vbmljYWxpemUiLCJvYmplY3RQcm90b3R5cGVUb1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwianNvbkRpZmYiLCJ1c2VMb25nZXN0VG9rZW4iLCJ0b2tlbml6ZSIsImNhc3RJbnB1dCIsInZhbHVlIiwib3B0aW9ucyIsInVuZGVmaW5lZFJlcGxhY2VtZW50Iiwic3RyaW5naWZ5UmVwbGFjZXIiLCJrIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJjYWxsIiwicmVwbGFjZSIsIm9sZE9iaiIsIm5ld09iaiIsImRpZmYiLCJvYmoiLCJzdGFjayIsInJlcGxhY2VtZW50U3RhY2siLCJyZXBsYWNlciIsImtleSIsImkiLCJsZW5ndGgiLCJjYW5vbmljYWxpemVkT2JqIiwicHVzaCIsIkFycmF5IiwicG9wIiwidG9KU09OIiwic29ydGVkS2V5cyIsImhhc093blByb3BlcnR5Iiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FxQmdCQSxRLEdBQUFBLFE7eURBSUFDLFksR0FBQUEsWTs7QUF6QmhCOzs7O3VCQUNBOzs7O3VCQUVBLElBQU1DLDBCQUEwQkMsT0FBT0MsU0FBUCxDQUFpQkMsUUFBakQ7O0FBR08sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1A7QUFDQTtBQUNBQSxTQUFTQyxlQUFULEdBQTJCLElBQTNCOztBQUVBRCxTQUFTRSxRQUFULEdBQW9CLGdFQUFTQSxRQUE3QjtBQUNBRixTQUFTRyxTQUFULEdBQXFCLFVBQVNDLEtBQVQsRUFBZ0I7QUFBQSxpRUFDK0UsS0FBS0MsT0FEcEY7QUFBQSxNQUM1QkMsb0JBRDRCLFlBQzVCQSxvQkFENEI7QUFBQSx1Q0FDTkMsaUJBRE07QUFBQSxNQUNOQSxpQkFETSx5Q0FDYyxVQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxtQ0FBVSxPQUFPQSxDQUFQ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QUFLVCxJQUFJLENBQVQsRUFBWUEsSUFBSU8sV0FBV04sTUFBM0IsRUFBbUNELEtBQUssQ0FBeEMsRUFBMkM7QUFDekNELGFBQU1RLFdBQVdQLENBQVgsQ0FBTjtBQUNBRSx1QkFBaUJILElBQWpCLElBQXdCN0IsYUFBYXlCLElBQUlJLElBQUosQ0FBYixFQUF1QkgsS0FBdkIsRUFBOEJDLGdCQUE5QixFQUFnREMsUUFBaEQsRUFBMERDLElBQTFELENBQXhCO0FBQ0Q7QUFDREgsVUFBTVMsR0FBTjtBQUNBUixxQkFBaUJRLEdBQWpCO0FBQ0QsR0FuQkQsTUFtQk87QUFDTEgsdUJBQW1CUCxHQUFuQjtBQUNEO0FBQ0QsU0FBT08sZ0JBQVA7QUFDRCIsImZpbGUiOiJqc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7bGluZURpZmZ9IGZyb20gJy4vbGluZSc7XG5cbmNvbnN0IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuXG5leHBvcnQgY29uc3QganNvbkRpZmYgPSBuZXcgRGlmZigpO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSBsaW5lRGlmZi50b2tlbml6ZTtcbmpzb25EaWZmLmNhc3RJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGNvbnN0IHt1bmRlZmluZWRSZXBsYWNlbWVudCwgc3RyaW5naWZ5UmVwbGFjZXIgPSAoaywgdikgPT4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkUmVwbGFjZW1lbnQgOiB2fSA9IHRoaXMub3B0aW9ucztcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlLCBudWxsLCBudWxsLCBzdHJpbmdpZnlSZXBsYWNlciksIHN0cmluZ2lmeVJlcGxhY2VyLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzLmNhbGwoanNvbkRpZmYsIGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgb3B0aW9ucykgeyByZXR1cm4ganNvbkRpZmYuZGlmZihvbGRPYmosIG5ld09iaiwgb3B0aW9ucyk7IH1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLiBBY2NlcHRzIGFuIG9wdGlvbmFsIHJlcGxhY2VyXG5leHBvcnQgZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgaWYgKHJlcGxhY2VyKSB7XG4gICAgb2JqID0gcmVwbGFjZXIoa2V5LCBvYmopO1xuICB9XG5cbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHN0YWNrW2ldID09PSBvYmopIHtcbiAgICAgIHJldHVybiByZXBsYWNlbWVudFN0YWNrW2ldO1xuICAgIH1cbiAgfVxuXG4gIGxldCBjYW5vbmljYWxpemVkT2JqO1xuXG4gIGlmICgnW29iamVjdCBBcnJheV0nID09PSBvYmplY3RQcm90b3R5cGVUb1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG5ldyBBcnJheShvYmoubGVuZ3RoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnB1c2goY2Fub25pY2FsaXplZE9iaik7XG4gICAgZm9yIChpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY2Fub25pY2FsaXplZE9ialtpXSA9IGNhbm9uaWNhbGl6ZShvYmpbaV0sIHN0YWNrLCByZXBsYWNlbWVudFN0YWNrLCByZXBsYWNlciwga2V5KTtcbiAgICB9XG4gICAgc3RhY2sucG9wKCk7XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wb3AoKTtcbiAgICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbiAgfVxuXG4gIGlmIChvYmogJiYgb2JqLnRvSlNPTikge1xuICAgIG9iaiA9IG9iai50b0pTT04oKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IHt9O1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/line.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/line.js
deleted file mode 100644
index f03eedb..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/line.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.lineDiff = undefined;
-exports. /*istanbul ignore end*/diffLines = diffLines;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-/*istanbul ignore end*/var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-lineDiff.tokenize = function (value) {
-  var retLines = [],
-      linesAndNewlines = value.split(/(\n|\r\n)/);
-
-  // Ignore the final empty token that occurs if the string ends with a new line
-  if (!linesAndNewlines[linesAndNewlines.length - 1]) {
-    linesAndNewlines.pop();
-  }
-
-  // Merge the content and line separators into single tokens
-  for (var i = 0; i < linesAndNewlines.length; i++) {
-    var line = linesAndNewlines[i];
-
-    if (i % 2 && !this.options.newlineIsToken) {
-      retLines[retLines.length - 1] += line;
-    } else {
-      if (this.options.ignoreWhitespace) {
-        line = line.trim();
-      }
-      retLines.push(line);
-    }
-  }
-
-  return retLines;
-};
-
-function diffLines(oldStr, newStr, callback) {
-  return lineDiff.diff(oldStr, newStr, callback);
-}
-function diffTrimmedLines(oldStr, newStr, callback) {
-  var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true });
-  return lineDiff.diff(oldStr, newStr, options);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOlsiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImxpbmVEaWZmIiwidG9rZW5pemUiLCJ2YWx1ZSIsInJldExpbmVzIiwibGluZXNBbmROZXdsaW5lcyIsInNwbGl0IiwibGVuZ3RoIiwicG9wIiwiaSIsImxpbmUiLCJvcHRpb25zIiwibmV3bGluZUlzVG9rZW4iLCJpZ25vcmVXaGl0ZXNwYWNlIiwidHJpbSIsInB1c2giLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBOEJnQkEsUyxHQUFBQSxTO3lEQUNBQyxnQixHQUFBQSxnQjs7QUEvQmhCOzs7O3VCQUNBOzs7O3VCQUVPLElBQU1DLCtFQUFXLHdFQUFqQjtBQUNQQSxTQUFTQyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsV0FBVyxFQUFmO0FBQUEsTUFDSUMsbUJBQW1CRixNQUFNRyxLQUFOLENBQVksV0FBWixDQUR2Qjs7QUFHQTtBQUNBLE1BQUksQ0FBQ0QsaUJBQWlCQSxpQkFBaUJFLE1BQWpCLEdBQTBCLENBQTNDLENBQUwsRUFBb0Q7QUFDbERGLHFCQUFpQkcsR0FBakI7QUFDRDs7QUFFRDtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJSixpQkFBaUJFLE1BQXJDLEVBQTZDRSxHQUE3QyxFQUFrRDtBQUNoRCxRQUFJQyxPQUFPTCxpQkFBaUJJLENBQWpCLENBQVg7O0FBRUEsUUFBSUEsSUFBSSxDQUFKLElBQVMsQ0FBQyxLQUFLRSxPQUFMLENBQWFDLGNBQTNCLEVBQTJDO0FBQ3pDUixlQUFTQSxTQUFTRyxNQUFULEdBQWtCLENBQTNCLEtBQWlDRyxJQUFqQztBQUNELEtBRkQsTUFFTztBQUNMLFVBQUksS0FBS0MsT0FBTCxDQUFhRSxnQkFBakIsRUFBbUM7QUFDakNILGVBQU9BLEtBQUtJLElBQUwsRUFBUDtBQUNEO0FBQ0RWLGVBQVNXLElBQVQsQ0FBY0wsSUFBZDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT04sUUFBUDtBQUNELENBeEJEOztBQTBCTyxTQUFTTCxTQUFULENBQW1CaUIsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxRQUFuQyxFQUE2QztBQUFFLFNBQU9qQixTQUFTa0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsUUFBOUIsQ0FBUDtBQUFpRDtBQUNoRyxTQUFTbEIsZ0JBQVQsQ0FBMEJnQixNQUExQixFQUFrQ0MsTUFBbEMsRUFBMENDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUlQLFVBQVUsOEVBQWdCTyxRQUFoQixFQUEwQixFQUFDTCxrQkFBa0IsSUFBbkIsRUFBMUIsQ0FBZDtBQUNBLFNBQU9aLFNBQVNrQixJQUFULENBQWNILE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCTixPQUE5QixDQUFQO0FBQ0QiLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2dlbmVyYXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbC9wYXJhbXMnO1xuXG5leHBvcnQgY29uc3QgbGluZURpZmYgPSBuZXcgRGlmZigpO1xubGluZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgcmV0TGluZXMgPSBbXSxcbiAgICAgIGxpbmVzQW5kTmV3bGluZXMgPSB2YWx1ZS5zcGxpdCgvKFxcbnxcXHJcXG4pLyk7XG5cbiAgLy8gSWdub3JlIHRoZSBmaW5hbCBlbXB0eSB0b2tlbiB0aGF0IG9jY3VycyBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhIG5ldyBsaW5lXG4gIGlmICghbGluZXNBbmROZXdsaW5lc1tsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgbGluZXNBbmROZXdsaW5lcy5wb3AoKTtcbiAgfVxuXG4gIC8vIE1lcmdlIHRoZSBjb250ZW50IGFuZCBsaW5lIHNlcGFyYXRvcnMgaW50byBzaW5nbGUgdG9rZW5zXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXNBbmROZXdsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNBbmROZXdsaW5lc1tpXTtcblxuICAgIGlmIChpICUgMiAmJiAhdGhpcy5vcHRpb25zLm5ld2xpbmVJc1Rva2VuKSB7XG4gICAgICByZXRMaW5lc1tyZXRMaW5lcy5sZW5ndGggLSAxXSArPSBsaW5lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlnbm9yZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0TGluZXMucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0TGluZXM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG5leHBvcnQgZnVuY3Rpb24gZGlmZlRyaW1tZWRMaW5lcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbiJdfQ==
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/sentence.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/sentence.js
deleted file mode 100644
index c1dcb20..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/sentence.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.sentenceDiff = undefined;
-exports. /*istanbul ignore end*/diffSentences = diffSentences;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-sentenceDiff.tokenize = function (value) {
-  return value.split(/(\S.+?[.!?])(?=\s+|$)/);
-};
-
-function diffSentences(oldStr, newStr, callback) {
-  return sentenceDiff.diff(oldStr, newStr, callback);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbImRpZmZTZW50ZW5jZXMiLCJzZW50ZW5jZURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic3BsaXQiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCQSxhLEdBQUFBLGE7O0FBUmhCOzs7Ozs7dUJBR08sSUFBTUMsdUZBQWUsd0VBQXJCO0FBQ1BBLGFBQWFDLFFBQWIsR0FBd0IsVUFBU0MsS0FBVCxFQUFnQjtBQUN0QyxTQUFPQSxNQUFNQyxLQUFOLENBQVksdUJBQVosQ0FBUDtBQUNELENBRkQ7O0FBSU8sU0FBU0osYUFBVCxDQUF1QkssTUFBdkIsRUFBK0JDLE1BQS9CLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUFFLFNBQU9OLGFBQWFPLElBQWIsQ0FBa0JILE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ0MsUUFBbEMsQ0FBUDtBQUFxRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ==
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/word.js b/multiplatform-crypto-delegated/node_modules/diff/lib/diff/word.js
deleted file mode 100644
index 4af1b05..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/diff/word.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.wordDiff = undefined;
-exports. /*istanbul ignore end*/diffWords = diffWords;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace;
-
-var /*istanbul ignore start*/_base = require('./base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-/*istanbul ignore end*/var /*istanbul ignore start*/_params = require('../util/params') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/ // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode
-//
-// Ranges and exceptions:
-// Latin-1 Supplement, 0080–00FF
-//  - U+00D7  × Multiplication sign
-//  - U+00F7  ÷ Division sign
-// Latin Extended-A, 0100–017F
-// Latin Extended-B, 0180–024F
-// IPA Extensions, 0250–02AF
-// Spacing Modifier Letters, 02B0–02FF
-//  - U+02C7  ˇ ˇ  Caron
-//  - U+02D8  ˘ ˘  Breve
-//  - U+02D9  ˙ ˙  Dot Above
-//  - U+02DA  ˚ ˚  Ring Above
-//  - U+02DB  ˛ ˛  Ogonek
-//  - U+02DC  ˜ ˜  Small Tilde
-//  - U+02DD  ˝ ˝  Double Acute Accent
-// Latin Extended Additional, 1E00–1EFF
-var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/;
-
-var reWhitespace = /\S/;
-
-var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/();
-wordDiff.equals = function (left, right) {
-  if (this.options.ignoreCase) {
-    left = left.toLowerCase();
-    right = right.toLowerCase();
-  }
-  return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);
-};
-wordDiff.tokenize = function (value) {
-  var tokens = value.split(/(\s+|\b)/);
-
-  // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.
-  for (var i = 0; i < tokens.length - 1; i++) {
-    // If we have an empty string in the next field and we have only word chars before and after, merge
-    if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {
-      tokens[i] += tokens[i + 2];
-      tokens.splice(i + 1, 2);
-      i--;
-    }
-  }
-
-  return tokens;
-};
-
-function diffWords(oldStr, newStr, options) {
-  options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(options, { ignoreWhitespace: true });
-  return wordDiff.diff(oldStr, newStr, options);
-}
-
-function diffWordsWithSpace(oldStr, newStr, options) {
-  return wordDiff.diff(oldStr, newStr, options);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOlsiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZXh0ZW5kZWRXb3JkQ2hhcnMiLCJyZVdoaXRlc3BhY2UiLCJ3b3JkRGlmZiIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsIm9wdGlvbnMiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJpZ25vcmVXaGl0ZXNwYWNlIiwidGVzdCIsInRva2VuaXplIiwidmFsdWUiLCJ0b2tlbnMiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJzcGxpY2UiLCJvbGRTdHIiLCJuZXdTdHIiLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7O2dDQW1EZ0JBLFMsR0FBQUEsUzt5REFLQUMsa0IsR0FBQUEsa0I7O0FBeERoQjs7Ozt1QkFDQTs7Ozt3QkFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsK0RBQTFCOztBQUVBLElBQU1DLGVBQWUsSUFBckI7O0FBRU8sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1BBLFNBQVNDLE1BQVQsR0FBa0IsVUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXNCO0FBQ3RDLE1BQUksS0FBS0MsT0FBTCxDQUFhQyxVQUFqQixFQUE2QjtBQUMzQkgsV0FBT0EsS0FBS0ksV0FBTCxFQUFQO0FBQ0FILFlBQVFBLE1BQU1HLFdBQU4sRUFBUjtBQUNEO0FBQ0QsU0FBT0osU0FBU0MsS0FBVCxJQUFtQixLQUFLQyxPQUFMLENBQWFHLGdCQUFiLElBQWlDLENBQUNSLGFBQWFTLElBQWIsQ0FBa0JOLElBQWxCLENBQWxDLElBQTZELENBQUNILGFBQWFTLElBQWIsQ0FBa0JMLEtBQWxCLENBQXhGO0FBQ0QsQ0FORDtBQU9BSCxTQUFTUyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsU0FBU0QsTUFBTUUsS0FBTixDQUFZLFVBQVosQ0FBYjs7QUFFQTtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixPQUFPRyxNQUFQLEdBQWdCLENBQXBDLEVBQXVDRCxHQUF2QyxFQUE0QztBQUMxQztBQUNBLFFBQUksQ0FBQ0YsT0FBT0UsSUFBSSxDQUFYLENBQUQsSUFBa0JGLE9BQU9FLElBQUksQ0FBWCxDQUFsQixJQUNLZixrQkFBa0JVLElBQWxCLENBQXVCRyxPQUFPRSxDQUFQLENBQXZCLENBREwsSUFFS2Ysa0JBQWtCVSxJQUFsQixDQUF1QkcsT0FBT0UsSUFBSSxDQUFYLENBQXZCLENBRlQsRUFFZ0Q7QUFDOUNGLGFBQU9FLENBQVAsS0FBYUYsT0FBT0UsSUFBSSxDQUFYLENBQWI7QUFDQUYsYUFBT0ksTUFBUCxDQUFjRixJQUFJLENBQWxCLEVBQXFCLENBQXJCO0FBQ0FBO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPRixNQUFQO0FBQ0QsQ0FoQkQ7O0FBa0JPLFNBQVNmLFNBQVQsQ0FBbUJvQixNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNiLE9BQW5DLEVBQTRDO0FBQ2pEQSxZQUFVLDhFQUFnQkEsT0FBaEIsRUFBeUIsRUFBQ0csa0JBQWtCLElBQW5CLEVBQXpCLENBQVY7QUFDQSxTQUFPUCxTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEOztBQUVNLFNBQVNQLGtCQUFULENBQTRCbUIsTUFBNUIsRUFBb0NDLE1BQXBDLEVBQTRDYixPQUE1QyxFQUFxRDtBQUMxRCxTQUFPSixTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVDYXNlKSB7XG4gICAgbGVmdCA9IGxlZnQudG9Mb3dlckNhc2UoKTtcbiAgICByaWdodCA9IHJpZ2h0LnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3Jkc1dpdGhTcGFjZShvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/index.js b/multiplatform-crypto-delegated/node_modules/diff/lib/index.js
deleted file mode 100644
index 8608caf..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/index.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.merge = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined;
-
-/*istanbul ignore end*/var /*istanbul ignore start*/_base = require('./diff/base') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _base2 = _interopRequireDefault(_base);
-
-/*istanbul ignore end*/var /*istanbul ignore start*/_character = require('./diff/character') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_word = require('./diff/word') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_line = require('./diff/line') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_sentence = require('./diff/sentence') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_css = require('./diff/css') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_json = require('./diff/json') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_array = require('./diff/array') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_apply = require('./patch/apply') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_parse = require('./patch/parse') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_merge = require('./patch/merge') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_create = require('./patch/create') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_dmp = require('./convert/dmp') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_xml = require('./convert/xml') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/* See LICENSE file for terms of use */
-
-/*
- * Text diff implementation.
- *
- * This library supports the following APIS:
- * JsDiff.diffChars: Character by character diff
- * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace
- * JsDiff.diffLines: Line based diff
- *
- * JsDiff.diffCss: Diff targeted at CSS content
- *
- * These methods are based on the implementation proposed in
- * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986).
- * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927
- */
-exports. /*istanbul ignore end*/Diff = _base2['default'];
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/merge = _merge.merge;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize;
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJEaWZmIiwiZGlmZkNoYXJzIiwiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImRpZmZTZW50ZW5jZXMiLCJkaWZmQ3NzIiwiZGlmZkpzb24iLCJkaWZmQXJyYXlzIiwic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwiYXBwbHlQYXRjaCIsImFwcGx5UGF0Y2hlcyIsInBhcnNlUGF0Y2giLCJtZXJnZSIsImNvbnZlcnRDaGFuZ2VzVG9ETVAiLCJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2Fub25pY2FsaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozt1QkFnQkE7Ozs7dUJBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFqQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O2dDQWtDRUEsSTt5REFFQUMsUzt5REFDQUMsUzt5REFDQUMsa0I7eURBQ0FDLFM7eURBQ0FDLGdCO3lEQUNBQyxhO3lEQUVBQyxPO3lEQUNBQyxRO3lEQUVBQyxVO3lEQUVBQyxlO3lEQUNBQyxtQjt5REFDQUMsVzt5REFDQUMsVTt5REFDQUMsWTt5REFDQUMsVTt5REFDQUMsSzt5REFDQUMsbUI7eURBQ0FDLG1CO3lEQUNBQyxZIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogU2VlIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMgb2YgdXNlICovXG5cbi8qXG4gKiBUZXh0IGRpZmYgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBsaWJyYXJ5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgQVBJUzpcbiAqIEpzRGlmZi5kaWZmQ2hhcnM6IENoYXJhY3RlciBieSBjaGFyYWN0ZXIgZGlmZlxuICogSnNEaWZmLmRpZmZXb3JkczogV29yZCAoYXMgZGVmaW5lZCBieSBcXGIgcmVnZXgpIGRpZmYgd2hpY2ggaWdub3JlcyB3aGl0ZXNwYWNlXG4gKiBKc0RpZmYuZGlmZkxpbmVzOiBMaW5lIGJhc2VkIGRpZmZcbiAqXG4gKiBKc0RpZmYuZGlmZkNzczogRGlmZiB0YXJnZXRlZCBhdCBDU1MgY29udGVudFxuICpcbiAqIFRoZXNlIG1ldGhvZHMgYXJlIGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm9wb3NlZCBpblxuICogXCJBbiBPKE5EKSBEaWZmZXJlbmNlIEFsZ29yaXRobSBhbmQgaXRzIFZhcmlhdGlvbnNcIiAoTXllcnMsIDE5ODYpLlxuICogaHR0cDovL2NpdGVzZWVyeC5pc3QucHN1LmVkdS92aWV3ZG9jL3N1bW1hcnk/ZG9pPTEwLjEuMS40LjY5MjdcbiAqL1xuaW1wb3J0IERpZmYgZnJvbSAnLi9kaWZmL2Jhc2UnO1xuaW1wb3J0IHtkaWZmQ2hhcnN9IGZyb20gJy4vZGlmZi9jaGFyYWN0ZXInO1xuaW1wb3J0IHtkaWZmV29yZHMsIGRpZmZXb3Jkc1dpdGhTcGFjZX0gZnJvbSAnLi9kaWZmL3dvcmQnO1xuaW1wb3J0IHtkaWZmTGluZXMsIGRpZmZUcmltbWVkTGluZXN9IGZyb20gJy4vZGlmZi9saW5lJztcbmltcG9ydCB7ZGlmZlNlbnRlbmNlc30gZnJvbSAnLi9kaWZmL3NlbnRlbmNlJztcblxuaW1wb3J0IHtkaWZmQ3NzfSBmcm9tICcuL2RpZmYvY3NzJztcbmltcG9ydCB7ZGlmZkpzb24sIGNhbm9uaWNhbGl6ZX0gZnJvbSAnLi9kaWZmL2pzb24nO1xuXG5pbXBvcnQge2RpZmZBcnJheXN9IGZyb20gJy4vZGlmZi9hcnJheSc7XG5cbmltcG9ydCB7YXBwbHlQYXRjaCwgYXBwbHlQYXRjaGVzfSBmcm9tICcuL3BhdGNoL2FwcGx5JztcbmltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXRjaC9wYXJzZSc7XG5pbXBvcnQge21lcmdlfSBmcm9tICcuL3BhdGNoL21lcmdlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgZGlmZkFycmF5cyxcblxuICBzdHJ1Y3R1cmVkUGF0Y2gsXG4gIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsXG4gIGNyZWF0ZVBhdGNoLFxuICBhcHBseVBhdGNoLFxuICBhcHBseVBhdGNoZXMsXG4gIHBhcnNlUGF0Y2gsXG4gIG1lcmdlLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/apply.js b/multiplatform-crypto-delegated/node_modules/diff/lib/patch/apply.js
deleted file mode 100644
index fa83015..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/apply.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/applyPatch = applyPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches;
-
-var /*istanbul ignore start*/_parse = require('./parse') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_distanceIterator = require('../util/distance-iterator') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/var _distanceIterator2 = _interopRequireDefault(_distanceIterator);
-
-function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
-/*istanbul ignore end*/function applyPatch(source, uniDiff) {
-  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
-  if (typeof uniDiff === 'string') {
-    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
-  }
-
-  if (Array.isArray(uniDiff)) {
-    if (uniDiff.length > 1) {
-      throw new Error('applyPatch only works with a single input.');
-    }
-
-    uniDiff = uniDiff[0];
-  }
-
-  // Apply the diff to the input
-  var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
-      delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
-      hunks = uniDiff.hunks,
-      compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{
-    return (/*istanbul ignore end*/line === patchContent
-    );
-  },
-      errorCount = 0,
-      fuzzFactor = options.fuzzFactor || 0,
-      minLine = 0,
-      offset = 0,
-      removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/,
-      addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;
-
-  /**
-   * Checks if the hunk exactly fits on the provided location
-   */
-  function hunkFits(hunk, toPos) {
-    for (var j = 0; j < hunk.lines.length; j++) {
-      var line = hunk.lines[j],
-          operation = line.length > 0 ? line[0] : ' ',
-          content = line.length > 0 ? line.substr(1) : line;
-
-      if (operation === ' ' || operation === '-') {
-        // Context sanity check
-        if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
-          errorCount++;
-
-          if (errorCount > fuzzFactor) {
-            return false;
-          }
-        }
-        toPos++;
-      }
-    }
-
-    return true;
-  }
-
-  // Search best fit offsets for each hunk based on the previous ones
-  for (var i = 0; i < hunks.length; i++) {
-    var hunk = hunks[i],
-        maxLine = lines.length - hunk.oldLines,
-        localOffset = 0,
-        toPos = offset + hunk.oldStart - 1;
-
-    var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine);
-
-    for (; localOffset !== undefined; localOffset = iterator()) {
-      if (hunkFits(hunk, toPos + localOffset)) {
-        hunk.offset = offset += localOffset;
-        break;
-      }
-    }
-
-    if (localOffset === undefined) {
-      return false;
-    }
-
-    // Set lower text limit to end of the current hunk, so next ones don't try
-    // to fit over already patched text
-    minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
-  }
-
-  // Apply patch hunks
-  var diffOffset = 0;
-  for (var _i = 0; _i < hunks.length; _i++) {
-    var _hunk = hunks[_i],
-        _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
-    diffOffset += _hunk.newLines - _hunk.oldLines;
-
-    if (_toPos < 0) {
-      // Creating a new file
-      _toPos = 0;
-    }
-
-    for (var j = 0; j < _hunk.lines.length; j++) {
-      var line = _hunk.lines[j],
-          operation = line.length > 0 ? line[0] : ' ',
-          content = line.length > 0 ? line.substr(1) : line,
-          delimiter = _hunk.linedelimiters[j];
-
-      if (operation === ' ') {
-        _toPos++;
-      } else if (operation === '-') {
-        lines.splice(_toPos, 1);
-        delimiters.splice(_toPos, 1);
-        /* istanbul ignore else */
-      } else if (operation === '+') {
-        lines.splice(_toPos, 0, content);
-        delimiters.splice(_toPos, 0, delimiter);
-        _toPos++;
-      } else if (operation === '\\') {
-        var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
-        if (previousOperation === '+') {
-          removeEOFNL = true;
-        } else if (previousOperation === '-') {
-          addEOFNL = true;
-        }
-      }
-    }
-  }
-
-  // Handle EOFNL insertion/removal
-  if (removeEOFNL) {
-    while (!lines[lines.length - 1]) {
-      lines.pop();
-      delimiters.pop();
-    }
-  } else if (addEOFNL) {
-    lines.push('');
-    delimiters.push('\n');
-  }
-  for (var _k = 0; _k < lines.length - 1; _k++) {
-    lines[_k] = lines[_k] + delimiters[_k];
-  }
-  return lines.join('');
-}
-
-// Wrapper that supports multiple file patches via callbacks.
-function applyPatches(uniDiff, options) {
-  if (typeof uniDiff === 'string') {
-    uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff);
-  }
-
-  var currentIndex = 0;
-  function processIndex() {
-    var index = uniDiff[currentIndex++];
-    if (!index) {
-      return options.complete();
-    }
-
-    options.loadFile(index, function (err, data) {
-      if (err) {
-        return options.complete(err);
-      }
-
-      var updatedContent = applyPatch(data, index, options);
-      options.patched(index, updatedContent, function (err) {
-        if (err) {
-          return options.complete(err);
-        }
-
-        processIndex();
-      });
-    });
-  }
-  processIndex();
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwiYXBwbHlQYXRjaGVzIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImxpbmVzIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJodW5rcyIsImNvbXBhcmVMaW5lIiwibGluZU51bWJlciIsImxpbmUiLCJvcGVyYXRpb24iLCJwYXRjaENvbnRlbnQiLCJlcnJvckNvdW50IiwiZnV6ekZhY3RvciIsIm1pbkxpbmUiLCJvZmZzZXQiLCJyZW1vdmVFT0ZOTCIsImFkZEVPRk5MIiwiaHVua0ZpdHMiLCJodW5rIiwidG9Qb3MiLCJqIiwiY29udGVudCIsInN1YnN0ciIsImkiLCJtYXhMaW5lIiwib2xkTGluZXMiLCJsb2NhbE9mZnNldCIsIm9sZFN0YXJ0IiwiaXRlcmF0b3IiLCJ1bmRlZmluZWQiLCJkaWZmT2Zmc2V0IiwibmV3TGluZXMiLCJkZWxpbWl0ZXIiLCJsaW5lZGVsaW1pdGVycyIsInNwbGljZSIsInByZXZpb3VzT3BlcmF0aW9uIiwicG9wIiwicHVzaCIsIl9rIiwiam9pbiIsImN1cnJlbnRJbmRleCIsInByb2Nlc3NJbmRleCIsImluZGV4IiwiY29tcGxldGUiLCJsb2FkRmlsZSIsImVyciIsImRhdGEiLCJ1cGRhdGVkQ29udGVudCIsInBhdGNoZWQiXSwibWFwcGluZ3MiOiI7OztnQ0FHZ0JBLFUsR0FBQUEsVTt5REFvSUFDLFksR0FBQUEsWTs7QUF2SWhCOztBQUNBOzs7Ozs7dUJBRU8sU0FBU0QsVUFBVCxDQUFvQkUsTUFBcEIsRUFBNEJDLE9BQTVCLEVBQW1EO0FBQUEsc0RBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDeEQsTUFBSSxPQUFPRCxPQUFQLEtBQW1CLFFBQXZCLEVBQWlDO0FBQy9CQSxjQUFVLHdFQUFXQSxPQUFYLENBQVY7QUFDRDs7QUFFRCxNQUFJRSxNQUFNQyxP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QUFZO0FBQ1YsYUFBTzlDLFFBQVErQyxRQUFSLEVBQVA7QUFDRDs7QUFFRC9DLFlBQVFnRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT2pELFFBQVErQyxRQUFSLENBQWlCRSxHQUFqQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUUsaUJBQWlCdkQsV0FBV3NELElBQVgsRUFBaUJKLEtBQWpCLEVBQXdCOUMsT0FBeEIsQ0FBckI7QUFDQUEsY0FBUW9ELE9BQVIsQ0FBZ0JOLEtBQWhCLEVBQXVCSyxjQUF2QixFQUF1QyxVQUFTRixHQUFULEVBQWM7QUFDbkQsWUFBSUEsR0FBSixFQUFTO0FBQ1AsaUJBQU9qRCxRQUFRK0MsUUFBUixDQUFpQkUsR0FBakIsQ0FBUDtBQUNEOztBQUVESjtBQUNELE9BTkQ7QUFPRCxLQWJEO0FBY0Q7QUFDREE7QUFDRCIsImZpbGUiOiJhcHBseS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGlmICh0b1BvcyA8IDApIHsgLy8gQ3JlYXRpbmcgYSBuZXcgZmlsZVxuICAgICAgdG9Qb3MgPSAwO1xuICAgIH1cblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/create.js b/multiplatform-crypto-delegated/node_modules/diff/lib/patch/create.js
deleted file mode 100644
index be4d187..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/create.js
+++ /dev/null
@@ -1,148 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/structuredPatch = structuredPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch;
-
-var /*istanbul ignore start*/_line = require('../diff/line') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
-  if (!options) {
-    options = {};
-  }
-  if (typeof options.context === 'undefined') {
-    options.context = 4;
-  }
-
-  var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options);
-  diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier
-
-  function contextLines(lines) {
-    return lines.map(function (entry) {
-      return ' ' + entry;
-    });
-  }
-
-  var hunks = [];
-  var oldRangeStart = 0,
-      newRangeStart = 0,
-      curRange = [],
-      oldLine = 1,
-      newLine = 1;
-
-  /*istanbul ignore start*/var _loop = function _loop( /*istanbul ignore end*/i) {
-    var current = diff[i],
-        lines = current.lines || current.value.replace(/\n$/, '').split('\n');
-    current.lines = lines;
-
-    if (current.added || current.removed) {
-      /*istanbul ignore start*/var _curRange;
-
-      /*istanbul ignore end*/ // If we have previous context, start with that
-      if (!oldRangeStart) {
-        var prev = diff[i - 1];
-        oldRangeStart = oldLine;
-        newRangeStart = newLine;
-
-        if (prev) {
-          curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
-          oldRangeStart -= curRange.length;
-          newRangeStart -= curRange.length;
-        }
-      }
-
-      // Output our changes
-      /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) {
-        return (current.added ? '+' : '-') + entry;
-      })));
-
-      // Track the updated file position
-      if (current.added) {
-        newLine += lines.length;
-      } else {
-        oldLine += lines.length;
-      }
-    } else {
-      // Identical context lines. Track line changes
-      if (oldRangeStart) {
-        // Close out any changes that have been output (or join overlapping)
-        if (lines.length <= options.context * 2 && i < diff.length - 2) {
-          /*istanbul ignore start*/var _curRange2;
-
-          /*istanbul ignore end*/ // Overlapping
-          /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines)));
-        } else {
-          /*istanbul ignore start*/var _curRange3;
-
-          /*istanbul ignore end*/ // end the range and output
-          var contextSize = Math.min(lines.length, options.context);
-          /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize))));
-
-          var hunk = {
-            oldStart: oldRangeStart,
-            oldLines: oldLine - oldRangeStart + contextSize,
-            newStart: newRangeStart,
-            newLines: newLine - newRangeStart + contextSize,
-            lines: curRange
-          };
-          if (i >= diff.length - 2 && lines.length <= options.context) {
-            // EOF is inside this hunk
-            var oldEOFNewline = /\n$/.test(oldStr);
-            var newEOFNewline = /\n$/.test(newStr);
-            if (lines.length == 0 && !oldEOFNewline) {
-              // special case: old has no eol and no trailing context; no-nl can end up before adds
-              curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file');
-            } else if (!oldEOFNewline || !newEOFNewline) {
-              curRange.push('\\ No newline at end of file');
-            }
-          }
-          hunks.push(hunk);
-
-          oldRangeStart = 0;
-          newRangeStart = 0;
-          curRange = [];
-        }
-      }
-      oldLine += lines.length;
-      newLine += lines.length;
-    }
-  };
-
-  for (var i = 0; i < diff.length; i++) {
-    /*istanbul ignore start*/_loop( /*istanbul ignore end*/i);
-  }
-
-  return {
-    oldFileName: oldFileName, newFileName: newFileName,
-    oldHeader: oldHeader, newHeader: newHeader,
-    hunks: hunks
-  };
-}
-
-function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
-  var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
-
-  var ret = [];
-  if (oldFileName == newFileName) {
-    ret.push('Index: ' + oldFileName);
-  }
-  ret.push('===================================================================');
-  ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
-  ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
-
-  for (var i = 0; i < diff.hunks.length; i++) {
-    var hunk = diff.hunks[i];
-    ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
-    ret.push.apply(ret, hunk.lines);
-  }
-
-  return ret.join('\n') + '\n';
-}
-
-function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
-  return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwic3BsaWNlIiwicmV0IiwiYXBwbHkiLCJqb2luIiwiZmlsZU5hbWUiXSwibWFwcGluZ3MiOiI7OztnQ0FFZ0JBLGUsR0FBQUEsZTt5REFpR0FDLG1CLEdBQUFBLG1CO3lEQXdCQUMsVyxHQUFBQSxXOztBQTNIaEI7Ozs7dUJBRU8sU0FBU0YsZUFBVCxDQUF5QkcsV0FBekIsRUFBc0NDLFdBQXRDLEVBQW1EQyxNQUFuRCxFQUEyREMsTUFBM0QsRUFBbUVDLFNBQW5FLEVBQThFQyxTQUE5RSxFQUF5RkMsT0FBekYsRUFBa0c7QUFDdkcsTUFBSSxDQUFDQSxPQUFMLEVBQWM7QUFDWkEsY0FBVSxFQUFWO0FBQ0Q7QUFDRCxNQUFJLE9BQU9BLFFBQVFDLE9BQWYsS0FBMkIsV0FBL0IsRUFBNEM7QUFDMUNELFlBQVFDLE9BQVIsR0FBa0IsQ0FBbEI7QUFDRDs7QUFFRCxN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QUEvQyxFQUEwREMsU0FBMUQsRUFBcUVDLE9BQXJFLEVBQThFO0FBQ25GLFNBQU9SLG9CQUFvQitDLFFBQXBCLEVBQThCQSxRQUE5QixFQUF3QzNDLE1BQXhDLEVBQWdEQyxNQUFoRCxFQUF3REMsU0FBeEQsRUFBbUVDLFNBQW5FLEVBQThFQyxPQUE5RSxDQUFQO0FBQ0QiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgZGlmZi5wdXNoKHt2YWx1ZTogJycsIGxpbmVzOiBbXX0pOyAgIC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgvXFxuJC8udGVzdChvbGRTdHIpKTtcbiAgICAgICAgICAgIGxldCBuZXdFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG5ld1N0cikpO1xuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PSAwICYmICFvbGRFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogb2xkIGhhcyBubyBlb2wgYW5kIG5vIHRyYWlsaW5nIGNvbnRleHQ7IG5vLW5sIGNhbiBlbmQgdXAgYmVmb3JlIGFkZHNcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9sZEVPRk5ld2xpbmUgfHwgIW5ld0VPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgY3VyUmFuZ2UucHVzaCgnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGh1bmtzLnB1c2goaHVuayk7XG5cbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJSYW5nZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgb2xkRmlsZU5hbWU6IG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZTogbmV3RmlsZU5hbWUsXG4gICAgb2xkSGVhZGVyOiBvbGRIZWFkZXIsIG5ld0hlYWRlcjogbmV3SGVhZGVyLFxuICAgIGh1bmtzOiBodW5rc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID0gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcblxuICBjb25zdCByZXQgPSBbXTtcbiAgaWYgKG9sZEZpbGVOYW1lID09IG5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgb2xkRmlsZU5hbWUpO1xuICB9XG4gIHJldC5wdXNoKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gIHJldC5wdXNoKCctLS0gJyArIGRpZmYub2xkRmlsZU5hbWUgKyAodHlwZW9mIGRpZmYub2xkSGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm9sZEhlYWRlcikpO1xuICByZXQucHVzaCgnKysrICcgKyBkaWZmLm5ld0ZpbGVOYW1lICsgKHR5cGVvZiBkaWZmLm5ld0hlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6ICdcXHQnICsgZGlmZi5uZXdIZWFkZXIpKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYuaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBodW5rID0gZGlmZi5odW5rc1tpXTtcbiAgICByZXQucHVzaChcbiAgICAgICdAQCAtJyArIGh1bmsub2xkU3RhcnQgKyAnLCcgKyBodW5rLm9sZExpbmVzXG4gICAgICArICcgKycgKyBodW5rLm5ld1N0YXJ0ICsgJywnICsgaHVuay5uZXdMaW5lc1xuICAgICAgKyAnIEBAJ1xuICAgICk7XG4gICAgcmV0LnB1c2guYXBwbHkocmV0LCBodW5rLmxpbmVzKTtcbiAgfVxuXG4gIHJldHVybiByZXQuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGNoKGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNyZWF0ZVR3b0ZpbGVzUGF0Y2goZmlsZU5hbWUsIGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xufVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/merge.js b/multiplatform-crypto-delegated/node_modules/diff/lib/patch/merge.js
deleted file mode 100644
index 074c4bc..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/merge.js
+++ /dev/null
@@ -1,396 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/calcLineCount = calcLineCount;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge;
-
-var /*istanbul ignore start*/_create = require('./create') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_parse = require('./parse') /*istanbul ignore end*/;
-
-var /*istanbul ignore start*/_array = require('../util/array') /*istanbul ignore end*/;
-
-/*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
-
-/*istanbul ignore end*/function calcLineCount(hunk) {
-  /*istanbul ignore start*/var _calcOldNewLineCount = /*istanbul ignore end*/calcOldNewLineCount(hunk.lines),
-      oldLines = _calcOldNewLineCount.oldLines,
-      newLines = _calcOldNewLineCount.newLines;
-
-  if (oldLines !== undefined) {
-    hunk.oldLines = oldLines;
-  } else {
-    delete hunk.oldLines;
-  }
-
-  if (newLines !== undefined) {
-    hunk.newLines = newLines;
-  } else {
-    delete hunk.newLines;
-  }
-}
-
-function merge(mine, theirs, base) {
-  mine = loadPatch(mine, base);
-  theirs = loadPatch(theirs, base);
-
-  var ret = {};
-
-  // For index we just let it pass through as it doesn't have any necessary meaning.
-  // Leaving sanity checks on this to the API consumer that may know more about the
-  // meaning in their own context.
-  if (mine.index || theirs.index) {
-    ret.index = mine.index || theirs.index;
-  }
-
-  if (mine.newFileName || theirs.newFileName) {
-    if (!fileNameChanged(mine)) {
-      // No header or no change in ours, use theirs (and ours if theirs does not exist)
-      ret.oldFileName = theirs.oldFileName || mine.oldFileName;
-      ret.newFileName = theirs.newFileName || mine.newFileName;
-      ret.oldHeader = theirs.oldHeader || mine.oldHeader;
-      ret.newHeader = theirs.newHeader || mine.newHeader;
-    } else if (!fileNameChanged(theirs)) {
-      // No header or no change in theirs, use ours
-      ret.oldFileName = mine.oldFileName;
-      ret.newFileName = mine.newFileName;
-      ret.oldHeader = mine.oldHeader;
-      ret.newHeader = mine.newHeader;
-    } else {
-      // Both changed... figure it out
-      ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName);
-      ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName);
-      ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader);
-      ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader);
-    }
-  }
-
-  ret.hunks = [];
-
-  var mineIndex = 0,
-      theirsIndex = 0,
-      mineOffset = 0,
-      theirsOffset = 0;
-
-  while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) {
-    var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity },
-        theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity };
-
-    if (hunkBefore(mineCurrent, theirsCurrent)) {
-      // This patch does not overlap with any of the others, yay.
-      ret.hunks.push(cloneHunk(mineCurrent, mineOffset));
-      mineIndex++;
-      theirsOffset += mineCurrent.newLines - mineCurrent.oldLines;
-    } else if (hunkBefore(theirsCurrent, mineCurrent)) {
-      // This patch does not overlap with any of the others, yay.
-      ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset));
-      theirsIndex++;
-      mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines;
-    } else {
-      // Overlap, merge as best we can
-      var mergedHunk = {
-        oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart),
-        oldLines: 0,
-        newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset),
-        newLines: 0,
-        lines: []
-      };
-      mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines);
-      theirsIndex++;
-      mineIndex++;
-
-      ret.hunks.push(mergedHunk);
-    }
-  }
-
-  return ret;
-}
-
-function loadPatch(param, base) {
-  if (typeof param === 'string') {
-    if (/^@@/m.test(param) || /^Index:/m.test(param)) {
-      return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0]
-      );
-    }
-
-    if (!base) {
-      throw new Error('Must provide a base reference or pass in a patch');
-    }
-    return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param)
-    );
-  }
-
-  return param;
-}
-
-function fileNameChanged(patch) {
-  return patch.newFileName && patch.newFileName !== patch.oldFileName;
-}
-
-function selectField(index, mine, theirs) {
-  if (mine === theirs) {
-    return mine;
-  } else {
-    index.conflict = true;
-    return { mine: mine, theirs: theirs };
-  }
-}
-
-function hunkBefore(test, check) {
-  return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart;
-}
-
-function cloneHunk(hunk, offset) {
-  return {
-    oldStart: hunk.oldStart, oldLines: hunk.oldLines,
-    newStart: hunk.newStart + offset, newLines: hunk.newLines,
-    lines: hunk.lines
-  };
-}
-
-function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) {
-  // This will generally result in a conflicted hunk, but there are cases where the context
-  // is the only overlap where we can successfully merge the content here.
-  var mine = { offset: mineOffset, lines: mineLines, index: 0 },
-      their = { offset: theirOffset, lines: theirLines, index: 0 };
-
-  // Handle any leading content
-  insertLeading(hunk, mine, their);
-  insertLeading(hunk, their, mine);
-
-  // Now in the overlap content. Scan through and select the best changes from each.
-  while (mine.index < mine.lines.length && their.index < their.lines.length) {
-    var mineCurrent = mine.lines[mine.index],
-        theirCurrent = their.lines[their.index];
-
-    if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) {
-      // Both modified ...
-      mutualChange(hunk, mine, their);
-    } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') {
-      /*istanbul ignore start*/var _hunk$lines;
-
-      /*istanbul ignore end*/ // Mine inserted
-      /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine)));
-    } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') {
-      /*istanbul ignore start*/var _hunk$lines2;
-
-      /*istanbul ignore end*/ // Theirs inserted
-      /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their)));
-    } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') {
-      // Mine removed or edited
-      removal(hunk, mine, their);
-    } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') {
-      // Their removed or edited
-      removal(hunk, their, mine, true);
-    } else if (mineCurrent === theirCurrent) {
-      // Context identity
-      hunk.lines.push(mineCurrent);
-      mine.index++;
-      their.index++;
-    } else {
-      // Context mismatch
-      conflict(hunk, collectChange(mine), collectChange(their));
-    }
-  }
-
-  // Now push anything that may be remaining
-  insertTrailing(hunk, mine);
-  insertTrailing(hunk, their);
-
-  calcLineCount(hunk);
-}
-
-function mutualChange(hunk, mine, their) {
-  var myChanges = collectChange(mine),
-      theirChanges = collectChange(their);
-
-  if (allRemoves(myChanges) && allRemoves(theirChanges)) {
-    // Special case for remove changes that are supersets of one another
-    if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) {
-      /*istanbul ignore start*/var _hunk$lines3;
-
-      /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges));
-      return;
-    } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) {
-      /*istanbul ignore start*/var _hunk$lines4;
-
-      /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges));
-      return;
-    }
-  } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) {
-    /*istanbul ignore start*/var _hunk$lines5;
-
-    /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges));
-    return;
-  }
-
-  conflict(hunk, myChanges, theirChanges);
-}
-
-function removal(hunk, mine, their, swap) {
-  var myChanges = collectChange(mine),
-      theirChanges = collectContext(their, myChanges);
-  if (theirChanges.merged) {
-    /*istanbul ignore start*/var _hunk$lines6;
-
-    /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged));
-  } else {
-    conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges);
-  }
-}
-
-function conflict(hunk, mine, their) {
-  hunk.conflict = true;
-  hunk.lines.push({
-    conflict: true,
-    mine: mine,
-    theirs: their
-  });
-}
-
-function insertLeading(hunk, insert, their) {
-  while (insert.offset < their.offset && insert.index < insert.lines.length) {
-    var line = insert.lines[insert.index++];
-    hunk.lines.push(line);
-    insert.offset++;
-  }
-}
-function insertTrailing(hunk, insert) {
-  while (insert.index < insert.lines.length) {
-    var line = insert.lines[insert.index++];
-    hunk.lines.push(line);
-  }
-}
-
-function collectChange(state) {
-  var ret = [],
-      operation = state.lines[state.index][0];
-  while (state.index < state.lines.length) {
-    var line = state.lines[state.index];
-
-    // Group additions that are immediately after subtractions and treat them as one "atomic" modify change.
-    if (operation === '-' && line[0] === '+') {
-      operation = '+';
-    }
-
-    if (operation === line[0]) {
-      ret.push(line);
-      state.index++;
-    } else {
-      break;
-    }
-  }
-
-  return ret;
-}
-function collectContext(state, matchChanges) {
-  var changes = [],
-      merged = [],
-      matchIndex = 0,
-      contextChanges = false,
-      conflicted = false;
-  while (matchIndex < matchChanges.length && state.index < state.lines.length) {
-    var change = state.lines[state.index],
-        match = matchChanges[matchIndex];
-
-    // Once we've hit our add, then we are done
-    if (match[0] === '+') {
-      break;
-    }
-
-    contextChanges = contextChanges || change[0] !== ' ';
-
-    merged.push(match);
-    matchIndex++;
-
-    // Consume any additions in the other block as a conflict to attempt
-    // to pull in the remaining context after this
-    if (change[0] === '+') {
-      conflicted = true;
-
-      while (change[0] === '+') {
-        changes.push(change);
-        change = state.lines[++state.index];
-      }
-    }
-
-    if (match.substr(1) === change.substr(1)) {
-      changes.push(change);
-      state.index++;
-    } else {
-      conflicted = true;
-    }
-  }
-
-  if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) {
-    conflicted = true;
-  }
-
-  if (conflicted) {
-    return changes;
-  }
-
-  while (matchIndex < matchChanges.length) {
-    merged.push(matchChanges[matchIndex++]);
-  }
-
-  return {
-    merged: merged,
-    changes: changes
-  };
-}
-
-function allRemoves(changes) {
-  return changes.reduce(function (prev, change) {
-    return prev && change[0] === '-';
-  }, true);
-}
-function skipRemoveSuperset(state, removeChanges, delta) {
-  for (var i = 0; i < delta; i++) {
-    var changeContent = removeChanges[removeChanges.length - delta + i].substr(1);
-    if (state.lines[state.index + i] !== ' ' + changeContent) {
-      return false;
-    }
-  }
-
-  state.index += delta;
-  return true;
-}
-
-function calcOldNewLineCount(lines) {
-  var oldLines = 0;
-  var newLines = 0;
-
-  lines.forEach(function (line) {
-    if (typeof line !== 'string') {
-      var myCount = calcOldNewLineCount(line.mine);
-      var theirCount = calcOldNewLineCount(line.theirs);
-
-      if (oldLines !== undefined) {
-        if (myCount.oldLines === theirCount.oldLines) {
-          oldLines += myCount.oldLines;
-        } else {
-          oldLines = undefined;
-        }
-      }
-
-      if (newLines !== undefined) {
-        if (myCount.newLines === theirCount.newLines) {
-          newLines += myCount.newLines;
-        } else {
-          newLines = undefined;
-        }
-      }
-    } else {
-      if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) {
-        newLines++;
-      }
-      if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) {
-        oldLines++;
-      }
-    }
-  });
-
-  return { oldLines: oldLines, newLines: newLines };
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6WyJjYWxjTGluZUNvdW50IiwibWVyZ2UiLCJodW5rIiwiY2FsY09sZE5ld0xpbmVDb3VudCIsImxpbmVzIiwib2xkTGluZXMiLCJuZXdMaW5lcyIsInVuZGVmaW5lZCIsIm1pbmUiLCJ0aGVpcnMiLCJiYXNlIiwibG9hZFBhdGNoIiwicmV0IiwiaW5kZXgiLCJuZXdGaWxlTmFtZSIsImZpbGVOYW1lQ2hhbmdlZCIsIm9sZEZpbGVOYW1lIiwib2xkSGVhZGVyIiwibmV3SGVhZGVyIiwic2VsZWN0RmllbGQiLCJodW5rcyIsIm1pbmVJbmRleCIsInRoZWlyc0luZGV4IiwibWluZU9mZnNldCIsInRoZWlyc09mZnNldCIsImxlbmd0aCIsIm1pbmVDdXJyZW50Iiwib2xkU3RhcnQiLCJJbmZpbml0eSIsInRoZWlyc0N1cnJlbnQiLCJodW5rQmVmb3JlIiwicHVzaCIsImNsb25lSHVuayIsIm1lcmdlZEh1bmsiLCJNYXRoIiwibWluIiwibmV3U3RhcnQiLCJtZXJnZUxpbmVzIiwicGFyYW0iLCJ0ZXN0IiwiRXJyb3IiLCJwYXRjaCIsImNvbmZsaWN0IiwiY2hlY2siLCJvZmZzZXQiLCJtaW5lTGluZXMiLCJ0aGVpck9mZnNldCIsInRoZWlyTGluZXMiLCJ0aGVpciIsImluc2VydExlYWRpbmciLCJ0aGVpckN1cnJlbnQiLCJtdXR1YWxDaGFuZ2UiLCJjb2xsZWN0Q2hhbmdlIiwicmVtb3ZhbCIsImluc2VydFRyYWlsaW5nIiwibXlDaGFuZ2VzIiwidGhlaXJDaGFuZ2VzIiwiYWxsUmVtb3ZlcyIsInNraXBSZW1vdmVTdXBlcnNldCIsInN3YXAiLCJjb2xsZWN0Q29udGV4dCIsIm1lcmdlZCIsImluc2VydCIsImxpbmUiLCJzdGF0ZSIsIm9wZXJhdGlvbiIsIm1hdGNoQ2hhbmdlcyIsImNoYW5nZXMiLCJtYXRjaEluZGV4IiwiY29udGV4dENoYW5nZXMiLCJjb25mbGljdGVkIiwiY2hhbmdlIiwibWF0Y2giLCJzdWJzdHIiLCJyZWR1Y2UiLCJwcmV2IiwicmVtb3ZlQ2hhbmdlcyIsImRlbHRhIiwiaSIsImNoYW5nZUNvbnRlbnQiLCJmb3JFYWNoIiwibXlDb3VudCIsInRoZWlyQ291bnQiXSwibWFwcGluZ3MiOiI7OztnQ0FLZ0JBLGEsR0FBQUEsYTt5REFnQkFDLEssR0FBQUEsSzs7QUFyQmhCOztBQUNBOztBQUVBOzs7O3VCQUVPLFNBQVNELGFBQVQsQ0FBdUJFLElBQXZCLEVBQTZCO0FBQUEsNkVBQ0xDLG9CQUFvQkQsS0FBS0UsS0FBekIsQ0FESztBQUFBLE1BQzNCQyxRQUQyQix3QkFDM0JBLFFBRDJCO0FBQUEsTUFDakJDLFFBRGlCLHdCQUNqQkEsUUFEaUI7O0FBR2xDLE1BQUlELGFBQWFFLFNBQWpCLEVBQTRCO0FBQzFCTCxTQUFLRyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU9ILEtBQUtHLFFBQVo7QUFDRDs7QUFFRCxNQUFJQyxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQkwsU0FBS0ksUUFBTCxHQUFnQkEsUUFBaEI7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPSixLQUFLSSxRQUFaO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTTCxLQUFULENBQWVPLElBQWYsRUFBcUJDLE1BQXJCLEVBQTZCQyxJQUE3QixFQUFtQztBQUN4Q0YsU0FBT0csVUFBVUgsSUFBVixFQUFnQkUsSUFBaEIsQ0FBUDtBQUNBRCxXQUFTRSxVQUFVRixNQUFWLEVBQWtCQyxJQUFsQixDQUFUOztBQUVBLE1BQUlFLE1BQU0sRUFBVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJSixLQUFLSyxLQUFMLElBQWNKLE9BQU9JLEtBQXpCLEVBQWdDO0FBQzlCRCxRQUFJQyxLQUFKLEdBQVlMLEtBQUtLLEtBQUwsSUFBY0osT0FBT0ksS0FBakM7QUFDRDs7QUFFRCxNQUFJTCxLQUFLTSxXQUFMLElBQW9CTCxPQUFPSyxXQUEvQixFQUE0QztBQUMxQyxRQUFJLENBQUNDLGdCQUFnQlAsSUFBaEIsQ0FBTCxF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Q0Q7QUFDRjs7QUFFRCxVQUFJRCxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTNFLFFBQVIsS0FBcUI0RSxXQUFXNUUsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZMkUsUUFBUTNFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXQyxTQUFYO0FBQ0Q7QUFDRjtBQUNGLEtBbkJELE1BbUJPO0FBQ0wsVUFBSUQsYUFBYUMsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEV6RDtBQUNEO0FBQ0QsVUFBSUQsYUFBYUUsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEUxRDtBQUNEO0FBQ0Y7QUFDRixHQTVCRDs7QUE4QkEsU0FBTyxFQUFDQSxrQkFBRCxFQUFXQyxrQkFBWCxFQUFQO0FBQ0QiLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3N0cnVjdHVyZWRQYXRjaH0gZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcblxuaW1wb3J0IHthcnJheUVxdWFsLCBhcnJheVN0YXJ0c1dpdGh9IGZyb20gJy4uL3V0aWwvYXJyYXknO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0xpbmVDb3VudChodW5rKSB7XG4gIGNvbnN0IHtvbGRMaW5lcywgbmV3TGluZXN9ID0gY2FsY09sZE5ld0xpbmVDb3VudChodW5rLmxpbmVzKTtcblxuICBpZiAob2xkTGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGh1bmsub2xkTGluZXMgPSBvbGRMaW5lcztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaHVuay5uZXdMaW5lcyA9IG5ld0xpbmVzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBodW5rLm5ld0xpbmVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShtaW5lLCB0aGVpcnMsIGJhc2UpIHtcbiAgbWluZSA9IGxvYWRQYXRjaChtaW5lLCBiYXNlKTtcbiAgdGhlaXJzID0gbG9hZFBhdGNoKHRoZWlycywgYmFzZSk7XG5cbiAgbGV0IHJldCA9IHt9O1xuXG4gIC8vIEZvciBpbmRleCB3ZSBqdXN0IGxldCBpdCBwYXNzIHRocm91Z2ggYXMgaXQgZG9lc24ndCBoYXZlIGFueSBuZWNlc3NhcnkgbWVhbmluZy5cbiAgLy8gTGVhdmluZyBzYW5pdHkgY2hlY2tzIG9uIHRoaXMgdG8gdGhlIEFQSSBjb25zdW1lciB0aGF0IG1heSBrbm93IG1vcmUgYWJvdXQgdGhlXG4gIC8vIG1lYW5pbmcgaW4gdGhlaXIgb3duIGNvbnRleHQuXG4gIGlmIChtaW5lLmluZGV4IHx8IHRoZWlycy5pbmRleCkge1xuICAgIHJldC5pbmRleCA9IG1pbmUuaW5kZXggfHwgdGhlaXJzLmluZGV4O1xuICB9XG5cbiAgaWYgKG1pbmUubmV3RmlsZU5hbWUgfHwgdGhlaXJzLm5ld0ZpbGVOYW1lKSB7XG4gICAgaWYgKCFmaWxlTmFtZUNoYW5nZWQobWluZSkpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gb3VycywgdXNlIHRoZWlycyAoYW5kIG91cnMgaWYgdGhlaXJzIGRvZXMgbm90IGV4aXN0KVxuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gdGhlaXJzLm9sZEZpbGVOYW1lIHx8IG1pbmUub2xkRmlsZU5hbWU7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSB0aGVpcnMubmV3RmlsZU5hbWUgfHwgbWluZS5uZXdGaWxlTmFtZTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSB0aGVpcnMub2xkSGVhZGVyIHx8IG1pbmUub2xkSGVhZGVyO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IHRoZWlycy5uZXdIZWFkZXIgfHwgbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIGlmICghZmlsZU5hbWVDaGFuZ2VkKHRoZWlycykpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gdGhlaXJzLCB1c2Ugb3Vyc1xuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gbWluZS5vbGRGaWxlTmFtZTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IG1pbmUubmV3RmlsZU5hbWU7XG4gICAgICByZXQub2xkSGVhZGVyID0gbWluZS5vbGRIZWFkZXI7XG4gICAgICByZXQubmV3SGVhZGVyID0gbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEJvdGggY2hhbmdlZC4uLiBmaWd1cmUgaXQgb3V0XG4gICAgICByZXQub2xkRmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUub2xkRmlsZU5hbWUsIHRoZWlycy5vbGRGaWxlTmFtZSk7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUubmV3RmlsZU5hbWUsIHRoZWlycy5uZXdGaWxlTmFtZSk7XG4gICAgICByZXQub2xkSGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm9sZEhlYWRlciwgdGhlaXJzLm9sZEhlYWRlcik7XG4gICAgICByZXQubmV3SGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm5ld0hlYWRlciwgdGhlaXJzLm5ld0hlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0Lmh1bmtzID0gW107XG5cbiAgbGV0IG1pbmVJbmRleCA9IDAsXG4gICAgICB0aGVpcnNJbmRleCA9IDAsXG4gICAgICBtaW5lT2Zmc2V0ID0gMCxcbiAgICAgIHRoZWlyc09mZnNldCA9IDA7XG5cbiAgd2hpbGUgKG1pbmVJbmRleCA8IG1pbmUuaHVua3MubGVuZ3RoIHx8IHRoZWlyc0luZGV4IDwgdGhlaXJzLmh1bmtzLmxlbmd0aCkge1xuICAgIGxldCBtaW5lQ3VycmVudCA9IG1pbmUuaHVua3NbbWluZUluZGV4XSB8fCB7b2xkU3RhcnQ6IEluZmluaXR5fSxcbiAgICAgICAgdGhlaXJzQ3VycmVudCA9IHRoZWlycy5odW5rc1t0aGVpcnNJbmRleF0gfHwge29sZFN0YXJ0OiBJbmZpbml0eX07XG5cbiAgICBpZiAoaHVua0JlZm9yZShtaW5lQ3VycmVudCwgdGhlaXJzQ3VycmVudCkpIHtcbiAgICAgIC8vIFRoaXMgcGF0Y2ggZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgb3RoZXJzLCB5YXkuXG4gICAgICByZXQuaHVua3MucHVzaChjbG9uZUh1bmsobWluZUN1cnJlbnQsIG1pbmVPZmZzZXQpKTtcbiAgICAgIG1pbmVJbmRleCsrO1xuICAgICAgdGhlaXJzT2Zmc2V0ICs9IG1pbmVDdXJyZW50Lm5ld0xpbmVzIC0gbWluZUN1cnJlbnQub2xkTGluZXM7XG4gICAgfSBlbHNlIGlmIChodW5rQmVmb3JlKHRoZWlyc0N1cnJlbnQsIG1pbmVDdXJyZW50KSkge1xuICAgICAgLy8gVGhpcyBwYXRjaCBkb2VzIG5vdCBvdmVybGFwIHdpdGggYW55IG9mIHRoZSBvdGhlcnMsIHlheS5cbiAgICAgIHJldC5odW5rcy5wdXNoKGNsb25lSHVuayh0aGVpcnNDdXJyZW50LCB0aGVpcnNPZmZzZXQpKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lT2Zmc2V0ICs9IHRoZWlyc0N1cnJlbnQubmV3TGluZXMgLSB0aGVpcnNDdXJyZW50Lm9sZExpbmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdmVybGFwLCBtZXJnZSBhcyBiZXN0IHdlIGNhblxuICAgICAgbGV0IG1lcmdlZEh1bmsgPSB7XG4gICAgICAgIG9sZFN0YXJ0OiBNYXRoLm1pbihtaW5lQ3VycmVudC5vbGRTdGFydCwgdGhlaXJzQ3VycmVudC5vbGRTdGFydCksXG4gICAgICAgIG9sZExpbmVzOiAwLFxuICAgICAgICBuZXdTdGFydDogTWF0aC5taW4obWluZUN1cnJlbnQubmV3U3RhcnQgKyBtaW5lT2Zmc2V0LCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0ICsgdGhlaXJzT2Zmc2V0KSxcbiAgICAgICAgbmV3TGluZXM6IDAsXG4gICAgICAgIGxpbmVzOiBbXVxuICAgICAgfTtcbiAgICAgIG1lcmdlTGluZXMobWVyZ2VkSHVuaywgbWluZUN1cnJlbnQub2xkU3RhcnQsIG1pbmVDdXJyZW50LmxpbmVzLCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0LCB0aGVpcnNDdXJyZW50LmxpbmVzKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lSW5kZXgrKztcblxuICAgICAgcmV0Lmh1bmtzLnB1c2gobWVyZ2VkSHVuayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gbG9hZFBhdGNoKHBhcmFtLCBiYXNlKSB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKC9eQEAvbS50ZXN0KHBhcmFtKSB8fCAoL15JbmRleDovbS50ZXN0KHBhcmFtKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZVBhdGNoKHBhcmFtKVswXTtcbiAgICB9XG5cbiAgICBpZiAoIWJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgYmFzZSByZWZlcmVuY2Ugb3IgcGFzcyBpbiBhIHBhdGNoJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHJ1Y3R1cmVkUGF0Y2godW5kZWZpbmVkLCB1bmRlZmluZWQsIGJhc2UsIHBhcmFtKTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbTtcbn1cblxuZnVuY3Rpb24gZmlsZU5hbWVDaGFuZ2VkKHBhdGNoKSB7XG4gIHJldHVybiBwYXRjaC5uZXdGaWxlTmFtZSAmJiBwYXRjaC5uZXdGaWxlTmFtZSAhPT0gcGF0Y2gub2xkRmlsZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdEZpZWxkKGluZGV4LCBtaW5lLCB0aGVpcnMpIHtcbiAgaWYgKG1pbmUgPT09IHRoZWlycykge1xuICAgIHJldHVybiBtaW5lO1xuICB9IGVsc2Uge1xuICAgIGluZGV4LmNvbmZsaWN0ID0gdHJ1ZTtcbiAgICByZXR1cm4ge21pbmUsIHRoZWlyc307XG4gIH1cbn1cblxuZnVuY3Rpb24gaHVua0JlZm9yZSh0ZXN0LCBjaGVjaykge1xuICByZXR1cm4gdGVzdC5vbGRTdGFydCA8IGNoZWNrLm9sZFN0YXJ0XG4gICAgJiYgKHRlc3Qub2xkU3RhcnQgKyB0ZXN0Lm9sZExpbmVzKSA8IGNoZWNrLm9sZFN0YXJ0O1xufVxuXG5mdW5jdGlvbiBjbG9uZUh1bmsoaHVuaywgb2Zmc2V0KSB7XG4gIHJldHVybiB7XG4gICAgb2xkU3RhcnQ6IGh1bmsub2xkU3RhcnQsIG9sZExpbmVzOiBodW5rLm9sZExpbmVzLFxuICAgIG5ld1N0YXJ0OiBodW5rLm5ld1N0YXJ0ICsgb2Zmc2V0LCBuZXdMaW5lczogaHVuay5uZXdMaW5lcyxcbiAgICBsaW5lczogaHVuay5saW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZUxpbmVzKGh1bmssIG1pbmVPZmZzZXQsIG1pbmVMaW5lcywgdGhlaXJPZmZzZXQsIHRoZWlyTGluZXMpIHtcbiAgLy8gVGhpcyB3aWxsIGdlbmVyYWxseSByZXN1bHQgaW4gYSBjb25mbGljdGVkIGh1bmssIGJ1dCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlIGNvbnRleHRcbiAgLy8gaXMgdGhlIG9ubHkgb3ZlcmxhcCB3aGVyZSB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IG1lcmdlIHRoZSBjb250ZW50IGhlcmUuXG4gIGxldCBtaW5lID0ge29mZnNldDogbWluZU9mZnNldCwgbGluZXM6IG1pbmVMaW5lcywgaW5kZXg6IDB9LFxuICAgICAgdGhlaXIgPSB7b2Zmc2V0OiB0aGVpck9mZnNldCwgbGluZXM6IHRoZWlyTGluZXMsIGluZGV4OiAwfTtcblxuICAvLyBIYW5kbGUgYW55IGxlYWRpbmcgY29udGVudFxuICBpbnNlcnRMZWFkaW5nKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgaW5zZXJ0TGVhZGluZyhodW5rLCB0aGVpciwgbWluZSk7XG5cbiAgLy8gTm93IGluIHRoZSBvdmVybGFwIGNvbnRlbnQuIFNjYW4gdGhyb3VnaCBhbmQgc2VsZWN0IHRoZSBiZXN0IGNoYW5nZXMgZnJvbSBlYWNoLlxuICB3aGlsZSAobWluZS5pbmRleCA8IG1pbmUubGluZXMubGVuZ3RoICYmIHRoZWlyLmluZGV4IDwgdGhlaXIubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IG1pbmVDdXJyZW50ID0gbWluZS5saW5lc1ttaW5lLmluZGV4XSxcbiAgICAgICAgdGhlaXJDdXJyZW50ID0gdGhlaXIubGluZXNbdGhlaXIuaW5kZXhdO1xuXG4gICAgaWYgKChtaW5lQ3VycmVudFswXSA9PT0gJy0nIHx8IG1pbmVDdXJyZW50WzBdID09PSAnKycpXG4gICAgICAgICYmICh0aGVpckN1cnJlbnRbMF0gPT09ICctJyB8fCB0aGVpckN1cnJlbnRbMF0gPT09ICcrJykpIHtcbiAgICAgIC8vIEJvdGggbW9kaWZpZWQgLi4uXG4gICAgICBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnRbMF0gPT09ICcrJyAmJiB0aGVpckN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gTWluZSBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKG1pbmUpKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJysnICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlycyBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJy0nICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlyIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIHRoZWlyLCBtaW5lLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50ID09PSB0aGVpckN1cnJlbnQpIHtcbiAgICAgIC8vIENvbnRleHQgaWRlbnRpdHlcbiAgICAgIGh1bmsubGluZXMucHVzaChtaW5lQ3VycmVudCk7XG4gICAgICBtaW5lLmluZGV4Kys7XG4gICAgICB0aGVpci5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250ZXh0IG1pc21hdGNoXG4gICAgICBjb25mbGljdChodW5rLCBjb2xsZWN0Q2hhbmdlKG1pbmUpLCBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTm93IHB1c2ggYW55dGhpbmcgdGhhdCBtYXkgYmUgcmVtYWluaW5nXG4gIGluc2VydFRyYWlsaW5nKGh1bmssIG1pbmUpO1xuICBpbnNlcnRUcmFpbGluZyhodW5rLCB0aGVpcik7XG5cbiAgY2FsY0xpbmVDb3VudChodW5rKTtcbn1cblxuZnVuY3Rpb24gbXV0dWFsQ2hhbmdlKGh1bmssIG1pbmUsIHRoZWlyKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENoYW5nZSh0aGVpcik7XG5cbiAgaWYgKGFsbFJlbW92ZXMobXlDaGFuZ2VzKSAmJiBhbGxSZW1vdmVzKHRoZWlyQ2hhbmdlcykpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHJlbW92ZSBjaGFuZ2VzIHRoYXQgYXJlIHN1cGVyc2V0cyBvZiBvbmUgYW5vdGhlclxuICAgIGlmIChhcnJheVN0YXJ0c1dpdGgobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpXG4gICAgICAgICYmIHNraXBSZW1vdmVTdXBlcnNldCh0aGVpciwgbXlDaGFuZ2VzLCBteUNoYW5nZXMubGVuZ3RoIC0gdGhlaXJDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gbXlDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGFycmF5U3RhcnRzV2l0aCh0aGVpckNoYW5nZXMsIG15Q2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KG1pbmUsIHRoZWlyQ2hhbmdlcywgdGhlaXJDaGFuZ2VzLmxlbmd0aCAtIG15Q2hhbmdlcy5sZW5ndGgpKSB7XG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIHRoZWlyQ2hhbmdlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IGVsc2UgaWYgKGFycmF5RXF1YWwobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbmZsaWN0KGh1bmssIG15Q2hhbmdlcywgdGhlaXJDaGFuZ2VzKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZhbChodW5rLCBtaW5lLCB0aGVpciwgc3dhcCkge1xuICBsZXQgbXlDaGFuZ2VzID0gY29sbGVjdENoYW5nZShtaW5lKSxcbiAgICAgIHRoZWlyQ2hhbmdlcyA9IGNvbGxlY3RDb250ZXh0KHRoZWlyLCBteUNoYW5nZXMpO1xuICBpZiAodGhlaXJDaGFuZ2VzLm1lcmdlZCkge1xuICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzLm1lcmdlZCk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmxpY3QoaHVuaywgc3dhcCA/IHRoZWlyQ2hhbmdlcyA6IG15Q2hhbmdlcywgc3dhcCA/IG15Q2hhbmdlcyA6IHRoZWlyQ2hhbmdlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmxpY3QoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgaHVuay5jb25mbGljdCA9IHRydWU7XG4gIGh1bmsubGluZXMucHVzaCh7XG4gICAgY29uZmxpY3Q6IHRydWUsXG4gICAgbWluZTogbWluZSxcbiAgICB0aGVpcnM6IHRoZWlyXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRMZWFkaW5nKGh1bmssIGluc2VydCwgdGhlaXIpIHtcbiAgd2hpbGUgKGluc2VydC5vZmZzZXQgPCB0aGVpci5vZmZzZXQgJiYgaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gICAgaW5zZXJ0Lm9mZnNldCsrO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRUcmFpbGluZyhodW5rLCBpbnNlcnQpIHtcbiAgd2hpbGUgKGluc2VydC5pbmRleCA8IGluc2VydC5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IGluc2VydC5saW5lc1tpbnNlcnQuaW5kZXgrK107XG4gICAgaHVuay5saW5lcy5wdXNoKGxpbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RDaGFuZ2Uoc3RhdGUpIHtcbiAgbGV0IHJldCA9IFtdLFxuICAgICAgb3BlcmF0aW9uID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdWzBdO1xuICB3aGlsZSAoc3RhdGUuaW5kZXggPCBzdGF0ZS5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XTtcblxuICAgIC8vIEdyb3VwIGFkZGl0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhZnRlciBzdWJ0cmFjdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgb25lIFwiYXRvbWljXCIgbW9kaWZ5IGNoYW5nZS5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnLScgJiYgbGluZVswXSA9PT0gJysnKSB7XG4gICAgICBvcGVyYXRpb24gPSAnKyc7XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gbGluZVswXSkge1xuICAgICAgcmV0LnB1c2gobGluZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gY29sbGVjdENvbnRleHQoc3RhdGUsIG1hdGNoQ2hhbmdlcykge1xuICBsZXQgY2hhbmdlcyA9IFtdLFxuICAgICAgbWVyZ2VkID0gW10sXG4gICAgICBtYXRjaEluZGV4ID0gMCxcbiAgICAgIGNvbnRleHRDaGFuZ2VzID0gZmFsc2UsXG4gICAgICBjb25mbGljdGVkID0gZmFsc2U7XG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aFxuICAgICAgICAmJiBzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBjaGFuZ2UgPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF0sXG4gICAgICAgIG1hdGNoID0gbWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdO1xuXG4gICAgLy8gT25jZSB3ZSd2ZSBoaXQgb3VyIGFkZCwgdGhlbiB3ZSBhcmUgZG9uZVxuICAgIGlmIChtYXRjaFswXSA9PT0gJysnKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb250ZXh0Q2hhbmdlcyA9IGNvbnRleHRDaGFuZ2VzIHx8IGNoYW5nZVswXSAhPT0gJyAnO1xuXG4gICAgbWVyZ2VkLnB1c2gobWF0Y2gpO1xuICAgIG1hdGNoSW5kZXgrKztcblxuICAgIC8vIENvbnN1bWUgYW55IGFkZGl0aW9ucyBpbiB0aGUgb3RoZXIgYmxvY2sgYXMgYSBjb25mbGljdCB0byBhdHRlbXB0XG4gICAgLy8gdG8gcHVsbCBpbiB0aGUgcmVtYWluaW5nIGNvbnRleHQgYWZ0ZXIgdGhpc1xuICAgIGlmIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgY29uZmxpY3RlZCA9IHRydWU7XG5cbiAgICAgIHdoaWxlIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlID0gc3RhdGUubGluZXNbKytzdGF0ZS5pbmRleF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoLnN1YnN0cigxKSA9PT0gY2hhbmdlLnN1YnN0cigxKSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4XSB8fCAnJylbMF0gPT09ICcrJ1xuICAgICAgJiYgY29udGV4dENoYW5nZXMpIHtcbiAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChjb25mbGljdGVkKSB7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICB3aGlsZSAobWF0Y2hJbmRleCA8IG1hdGNoQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICBtZXJnZWQucHVzaChtYXRjaENoYW5nZXNbbWF0Y2hJbmRleCsrXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lcmdlZCxcbiAgICBjaGFuZ2VzXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFsbFJlbW92ZXMoY2hhbmdlcykge1xuICByZXR1cm4gY2hhbmdlcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY2hhbmdlKSB7XG4gICAgcmV0dXJuIHByZXYgJiYgY2hhbmdlWzBdID09PSAnLSc7XG4gIH0sIHRydWUpO1xufVxuZnVuY3Rpb24gc2tpcFJlbW92ZVN1cGVyc2V0KHN0YXRlLCByZW1vdmVDaGFuZ2VzLCBkZWx0YSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlbHRhOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlQ29udGVudCA9IHJlbW92ZUNoYW5nZXNbcmVtb3ZlQ2hhbmdlcy5sZW5ndGggLSBkZWx0YSArIGldLnN1YnN0cigxKTtcbiAgICBpZiAoc3RhdGUubGluZXNbc3RhdGUuaW5kZXggKyBpXSAhPT0gJyAnICsgY2hhbmdlQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLmluZGV4ICs9IGRlbHRhO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lcykge1xuICBsZXQgb2xkTGluZXMgPSAwO1xuICBsZXQgbmV3TGluZXMgPSAwO1xuXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgIGlmICh0eXBlb2YgbGluZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBteUNvdW50ID0gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lLm1pbmUpO1xuICAgICAgbGV0IHRoZWlyQ291bnQgPSBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmUudGhlaXJzKTtcblxuICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG15Q291bnQub2xkTGluZXMgPT09IHRoZWlyQ291bnQub2xkTGluZXMpIHtcbiAgICAgICAgICBvbGRMaW5lcyArPSBteUNvdW50Lm9sZExpbmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9sZExpbmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChteUNvdW50Lm5ld0xpbmVzID09PSB0aGVpckNvdW50Lm5ld0xpbmVzKSB7XG4gICAgICAgICAgbmV3TGluZXMgKz0gbXlDb3VudC5uZXdMaW5lcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMaW5lcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3TGluZXMgIT09IHVuZGVmaW5lZCAmJiAobGluZVswXSA9PT0gJysnIHx8IGxpbmVbMF0gPT09ICcgJykpIHtcbiAgICAgICAgbmV3TGluZXMrKztcbiAgICAgIH1cbiAgICAgIGlmIChvbGRMaW5lcyAhPT0gdW5kZWZpbmVkICYmIChsaW5lWzBdID09PSAnLScgfHwgbGluZVswXSA9PT0gJyAnKSkge1xuICAgICAgICBvbGRMaW5lcysrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtvbGRMaW5lcywgbmV3TGluZXN9O1xufVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/parse.js b/multiplatform-crypto-delegated/node_modules/diff/lib/patch/parse.js
deleted file mode 100644
index e5f1730..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/patch/parse.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/parsePatch = parsePatch;
-function parsePatch(uniDiff) {
-  /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-  var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/),
-      delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [],
-      list = [],
-      i = 0;
-
-  function parseIndex() {
-    var index = {};
-    list.push(index);
-
-    // Parse diff metadata
-    while (i < diffstr.length) {
-      var line = diffstr[i];
-
-      // File header found, end parsing diff metadata
-      if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) {
-        break;
-      }
-
-      // Diff index
-      var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line);
-      if (header) {
-        index.index = header[1];
-      }
-
-      i++;
-    }
-
-    // Parse file headers if they are defined. Unified diff requires them, but
-    // there's no technical issues to have an isolated hunk without file header
-    parseFileHeader(index);
-    parseFileHeader(index);
-
-    // Parse hunks
-    index.hunks = [];
-
-    while (i < diffstr.length) {
-      var _line = diffstr[i];
-
-      if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) {
-        break;
-      } else if (/^@@/.test(_line)) {
-        index.hunks.push(parseHunk());
-      } else if (_line && options.strict) {
-        // Ignore unexpected content unless in strict mode
-        throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));
-      } else {
-        i++;
-      }
-    }
-  }
-
-  // Parses the --- and +++ headers, if none are found, no lines
-  // are consumed.
-  function parseFileHeader(index) {
-    var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]);
-    if (fileHeader) {
-      var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';
-      var data = fileHeader[2].split('\t', 2);
-      var fileName = data[0].replace(/\\\\/g, '\\');
-      if (/^".*"$/.test(fileName)) {
-        fileName = fileName.substr(1, fileName.length - 2);
-      }
-      index[keyPrefix + 'FileName'] = fileName;
-      index[keyPrefix + 'Header'] = (data[1] || '').trim();
-
-      i++;
-    }
-  }
-
-  // Parses a hunk
-  // This assumes that we are at the start of a hunk.
-  function parseHunk() {
-    var chunkHeaderIndex = i,
-        chunkHeaderLine = diffstr[i++],
-        chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/);
-
-    var hunk = {
-      oldStart: +chunkHeader[1],
-      oldLines: +chunkHeader[2] || 1,
-      newStart: +chunkHeader[3],
-      newLines: +chunkHeader[4] || 1,
-      lines: [],
-      linedelimiters: []
-    };
-
-    var addCount = 0,
-        removeCount = 0;
-    for (; i < diffstr.length; i++) {
-      // Lines starting with '---' could be mistaken for the "remove line" operation
-      // But they could be the header for the next file. Therefore prune such cases out.
-      if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {
-        break;
-      }
-      var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0];
-
-      if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') {
-        hunk.lines.push(diffstr[i]);
-        hunk.linedelimiters.push(delimiters[i] || '\n');
-
-        if (operation === '+') {
-          addCount++;
-        } else if (operation === '-') {
-          removeCount++;
-        } else if (operation === ' ') {
-          addCount++;
-          removeCount++;
-        }
-      } else {
-        break;
-      }
-    }
-
-    // Handle the empty block count case
-    if (!addCount && hunk.newLines === 1) {
-      hunk.newLines = 0;
-    }
-    if (!removeCount && hunk.oldLines === 1) {
-      hunk.oldLines = 0;
-    }
-
-    // Perform optional sanity checking
-    if (options.strict) {
-      if (addCount !== hunk.newLines) {
-        throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
-      }
-      if (removeCount !== hunk.oldLines) {
-        throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));
-      }
-    }
-
-    return hunk;
-  }
-
-  while (i < diffstr.length) {
-    parseIndex();
-  }
-
-  return list;
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6WyJwYXJzZVBhdGNoIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJkaWZmc3RyIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJsaXN0IiwiaSIsInBhcnNlSW5kZXgiLCJpbmRleCIsInB1c2giLCJsZW5ndGgiLCJsaW5lIiwidGVzdCIsImhlYWRlciIsImV4ZWMiLCJwYXJzZUZpbGVIZWFkZXIiLCJodW5rcyIsInBhcnNlSHVuayIsInN0cmljdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbGVIZWFkZXIiLCJrZXlQcmVmaXgiLCJkYXRhIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwic3Vic3RyIiwidHJpbSIsImNodW5rSGVhZGVySW5kZXgiLCJjaHVua0hlYWRlckxpbmUiLCJjaHVua0hlYWRlciIsImh1bmsiLCJvbGRTdGFydCIsIm9sZExpbmVzIiwibmV3U3RhcnQiLCJuZXdMaW5lcyIsImxpbmVzIiwibGluZWRlbGltaXRlcnMiLCJhZGRDb3VudCIsInJlbW92ZUNvdW50IiwiaW5kZXhPZiIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsVSxHQUFBQSxVO0FBQVQsU0FBU0EsVUFBVCxDQUFvQkMsT0FBcEIsRUFBMkM7QUFBQSxzREFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUNoRCxNQUFJQyxVQUFVRixRQUFRRyxLQUFSLENBQWMscUJBQWQsQ0FBZDtBQUFBLE1BQ0lDLGFBQWFKLFFBQVFLLEtBQVIsQ0FBYyxzQkFBZCxLQUF5QyxFQUQxRDtBQUFBLE1BRUlDLE9BQU8sRUFGWDtBQUFBLE1BR0lDLElBQUksQ0FIUjs7QUFLQSxXQUFTQyxVQUFULEdBQXNCO0FBQ3BCLFFBQUlDLFFBQVEsRUFBWjtBQUNBSCxTQUFLSSxJQUFMLENBQVVELEtBQVY7O0FBRUE7QUFDQSxXQUFPRixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6QixVQUFJQyxPQUFPVixRQUFR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QW9CO0FBQ2xCLFVBQUlxQixhQUFhUCxLQUFLSSxRQUF0QixFQUFnQztBQUM5QixjQUFNLElBQUlqQixLQUFKLENBQVUsc0RBQXNEVSxtQkFBbUIsQ0FBekUsQ0FBVixDQUFOO0FBQ0Q7QUFDRCxVQUFJVyxnQkFBZ0JSLEtBQUtFLFFBQXpCLEVBQW1DO0FBQ2pDLGNBQU0sSUFBSWYsS0FBSixDQUFVLHdEQUF3RFUsbUJBQW1CLENBQTNFLENBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0csSUFBUDtBQUNEOztBQUVELFNBQU8xQixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6Qkg7QUFDRDs7QUFFRCxTQUFPRixJQUFQO0FBQ0QiLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KC9cXHJcXG58W1xcblxcdlxcZlxcclxceDg1XS8pLFxuICAgICAgZGVsaW1pdGVycyA9IHVuaURpZmYubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgbGlzdCA9IFtdLFxuICAgICAgaSA9IDA7XG5cbiAgZnVuY3Rpb24gcGFyc2VJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB7fTtcbiAgICBsaXN0LnB1c2goaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgZGlmZiBtZXRhZGF0YVxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgLy8gRmlsZSBoZWFkZXIgZm91bmQsIGVuZCBwYXJzaW5nIGRpZmYgbWV0YWRhdGFcbiAgICAgIGlmICgvXihcXC1cXC1cXC18XFwrXFwrXFwrfEBAKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gRGlmZiBpbmRleFxuICAgICAgbGV0IGhlYWRlciA9ICgvXig/OkluZGV4OnxkaWZmKD86IC1yIFxcdyspKylcXHMrKC4rPylcXHMqJC8pLmV4ZWMobGluZSk7XG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGluZGV4LmluZGV4ID0gaGVhZGVyWzFdO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgZmlsZSBoZWFkZXJzIGlmIHRoZXkgYXJlIGRlZmluZWQuIFVuaWZpZWQgZGlmZiByZXF1aXJlcyB0aGVtLCBidXRcbiAgICAvLyB0aGVyZSdzIG5vIHRlY2huaWNhbCBpc3N1ZXMgdG8gaGF2ZSBhbiBpc29sYXRlZCBodW5rIHdpdGhvdXQgZmlsZSBoZWFkZXJcbiAgICBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpO1xuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBodW5rc1xuICAgIGluZGV4Lmh1bmtzID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIGlmICgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAoL15AQC8udGVzdChsaW5lKSkge1xuICAgICAgICBpbmRleC5odW5rcy5wdXNoKHBhcnNlSHVuaygpKTtcbiAgICAgIH0gZWxzZSBpZiAobGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KGxpbmUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYXJzZXMgdGhlIC0tLSBhbmQgKysrIGhlYWRlcnMsIGlmIG5vbmUgYXJlIGZvdW5kLCBubyBsaW5lc1xuICAvLyBhcmUgY29uc3VtZWQuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZUhlYWRlcihpbmRleCkge1xuICAgIGNvbnN0IGZpbGVIZWFkZXIgPSAoL14oLS0tfFxcK1xcK1xcKylcXHMrKC4qKSQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgY29uc3QgZGF0YSA9IGZpbGVIZWFkZXJbMl0uc3BsaXQoJ1xcdCcsIDIpO1xuICAgICAgbGV0IGZpbGVOYW1lID0gZGF0YVswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpO1xuICAgICAgaWYgKC9eXCIuKlwiJC8udGVzdChmaWxlTmFtZSkpIHtcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMSwgZmlsZU5hbWUubGVuZ3RoIC0gMik7XG4gICAgICB9XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnRmlsZU5hbWUnXSA9IGZpbGVOYW1lO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gKGRhdGFbMV0gfHwgJycpLnRyaW0oKTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdLFxuICAgICAgbGluZWRlbGltaXRlcnM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggJy0tLScgY291bGQgYmUgbWlzdGFrZW4gZm9yIHRoZSBcInJlbW92ZSBsaW5lXCIgb3BlcmF0aW9uXG4gICAgICAvLyBCdXQgdGhleSBjb3VsZCBiZSB0aGUgaGVhZGVyIGZvciB0aGUgbmV4dCBmaWxlLiBUaGVyZWZvcmUgcHJ1bmUgc3VjaCBjYXNlcyBvdXQuXG4gICAgICBpZiAoZGlmZnN0cltpXS5pbmRleE9mKCctLS0gJykgPT09IDBcbiAgICAgICAgICAgICYmIChpICsgMiA8IGRpZmZzdHIubGVuZ3RoKVxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMV0uaW5kZXhPZignKysrICcpID09PSAwXG4gICAgICAgICAgICAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsZXQgb3BlcmF0aW9uID0gKGRpZmZzdHJbaV0ubGVuZ3RoID09IDAgJiYgaSAhPSAoZGlmZnN0ci5sZW5ndGggLSAxKSkgPyAnICcgOiBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuICAgICAgICBodW5rLmxpbmVkZWxpbWl0ZXJzLnB1c2goZGVsaW1pdGVyc1tpXSB8fCAnXFxuJyk7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgYmxvY2sgY291bnQgY2FzZVxuICAgIGlmICghYWRkQ291bnQgJiYgaHVuay5uZXdMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5uZXdMaW5lcyA9IDA7XG4gICAgfVxuICAgIGlmICghcmVtb3ZlQ291bnQgJiYgaHVuay5vbGRMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5vbGRMaW5lcyA9IDA7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBvcHRpb25hbCBzYW5pdHkgY2hlY2tpbmdcbiAgICBpZiAob3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIGlmIChhZGRDb3VudCAhPT0gaHVuay5uZXdMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZGVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZW1vdmVDb3VudCAhPT0gaHVuay5vbGRMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW92ZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodW5rO1xuICB9XG5cbiAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgIHBhcnNlSW5kZXgoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuIl19
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/util/array.js b/multiplatform-crypto-delegated/node_modules/diff/lib/util/array.js
deleted file mode 100644
index 1bb4256..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/util/array.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*istanbul ignore start*/"use strict";
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/arrayEqual = arrayEqual;
-/*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith;
-function arrayEqual(a, b) {
-  if (a.length !== b.length) {
-    return false;
-  }
-
-  return arrayStartsWith(a, b);
-}
-
-function arrayStartsWith(array, start) {
-  if (start.length > array.length) {
-    return false;
-  }
-
-  for (var i = 0; i < start.length; i++) {
-    if (start[i] !== array[i]) {
-      return false;
-    }
-  }
-
-  return true;
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RXF1YWwiLCJhcnJheVN0YXJ0c1dpdGgiLCJhIiwiYiIsImxlbmd0aCIsImFycmF5Iiwic3RhcnQiLCJpIl0sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCQSxVLEdBQUFBLFU7eURBUUFDLGUsR0FBQUEsZTtBQVJULFNBQVNELFVBQVQsQ0FBb0JFLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQjtBQUMvQixNQUFJRCxFQUFFRSxNQUFGLEtBQWFELEVBQUVDLE1BQW5CLEVBQTJCO0FBQ3pCLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU9ILGdCQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQVA7QUFDRDs7QUFFTSxTQUFTRixlQUFULENBQXlCSSxLQUF6QixFQUFnQ0MsS0FBaEMsRUFBdUM7QUFDNUMsTUFBSUEsTUFBTUYsTUFBTixHQUFlQyxNQUFNRCxNQUF6QixFQUFpQztBQUMvQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQUlHLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTUYsTUFBMUIsRUFBa0NHLEdBQWxDLEVBQXVDO0FBQ3JDLFFBQUlELE1BQU1DLENBQU4sTUFBYUYsTUFBTUUsQ0FBTixDQUFqQixFQUEyQjtBQUN6QixhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6ImFycmF5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFycmF5RXF1YWwoYSwgYikge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5U3RhcnRzV2l0aChhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5U3RhcnRzV2l0aChhcnJheSwgc3RhcnQpIHtcbiAgaWYgKHN0YXJ0Lmxlbmd0aCA+IGFycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhcnQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3RhcnRbaV0gIT09IGFycmF5W2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/util/distance-iterator.js b/multiplatform-crypto-delegated/node_modules/diff/lib/util/distance-iterator.js
deleted file mode 100644
index 95e4675..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/util/distance-iterator.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*istanbul ignore start*/"use strict";
-
-exports.__esModule = true;
-
-exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) {
-  var wantForward = true,
-      backwardExhausted = false,
-      forwardExhausted = false,
-      localOffset = 1;
-
-  return function iterator() {
-    if (wantForward && !forwardExhausted) {
-      if (backwardExhausted) {
-        localOffset++;
-      } else {
-        wantForward = false;
-      }
-
-      // Check if trying to fit beyond text length, and if not, check it fits
-      // after offset location (or desired location on first iteration)
-      if (start + localOffset <= maxLine) {
-        return localOffset;
-      }
-
-      forwardExhausted = true;
-    }
-
-    if (!backwardExhausted) {
-      if (!forwardExhausted) {
-        wantForward = true;
-      }
-
-      // Check if trying to fit before text beginning, and if not, check it fits
-      // before offset location
-      if (minLine <= start - localOffset) {
-        return -localOffset++;
-      }
-
-      backwardExhausted = true;
-      return iterator();
-    }
-
-    // We tried to fit hunk before text beginning and beyond text length, then
-    // hunk can't fit on the text. Return undefined
-  };
-};
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbInN0YXJ0IiwibWluTGluZSIsIm1heExpbmUiLCJ3YW50Rm9yd2FyZCIsImJhY2t3YXJkRXhoYXVzdGVkIiwiZm9yd2FyZEV4aGF1c3RlZCIsImxvY2FsT2Zmc2V0IiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7NENBR2UsVUFBU0EsS0FBVCxFQUFnQkMsT0FBaEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUlDLGNBQWMsSUFBbEI7QUFBQSxNQUNJQyxvQkFBb0IsS0FEeEI7QUFBQSxNQUVJQyxtQkFBbUIsS0FGdkI7QUFBQSxNQUdJQyxjQUFjLENBSGxCOztBQUtBLFNBQU8sU0FBU0MsUUFBVCxHQUFvQjtBQUN6QixRQUFJSixlQUFlLENBQUNFLGdCQUFwQixFQUFzQztBQUNwQyxVQUFJRCxpQkFBSixFQUF1QjtBQUNyQkU7QUFDRCxPQUZELE1BRU87QUFDTEgsc0JBQWMsS0FBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJSCxRQUFRTSxXQUFSLElBQXVCSixPQUEzQixFQUFvQztBQUNsQyxlQUFPSSxXQUFQO0FBQ0Q7O0FBRURELHlCQUFtQixJQUFuQjtBQUNEOztBQUVELFFBQUksQ0FBQ0QsaUJBQUwsRUFBd0I7QUFDdEIsVUFBSSxDQUFDQyxnQkFBTCxFQUF1QjtBQUNyQkYsc0JBQWMsSUFBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJRixXQUFXRCxRQUFRTSxXQUF2QixFQUFvQztBQUNsQyxlQUFPLENBQUNBLGFBQVI7QUFDRDs7QUFFREYsMEJBQW9CLElBQXBCO0FBQ0EsYUFBT0csVUFBUDtBQUNEOztBQUVEO0FBQ0E7QUFDRCxHQWxDRDtBQW1DRCxDIiwiZmlsZSI6ImRpc3RhbmNlLWl0ZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmd0aCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/lib/util/params.js b/multiplatform-crypto-delegated/node_modules/diff/lib/util/params.js
deleted file mode 100644
index 6ff0483..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/lib/util/params.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*istanbul ignore start*/'use strict';
-
-exports.__esModule = true;
-exports. /*istanbul ignore end*/generateOptions = generateOptions;
-function generateOptions(options, defaults) {
-  if (typeof options === 'function') {
-    defaults.callback = options;
-  } else if (options) {
-    for (var name in options) {
-      /* istanbul ignore else */
-      if (options.hasOwnProperty(name)) {
-        defaults[name] = options[name];
-      }
-    }
-  }
-  return defaults;
-}
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6WyJnZW5lcmF0ZU9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJjYWxsYmFjayIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsZSxHQUFBQSxlO0FBQVQsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsYUFBU0MsUUFBVCxHQUFvQkYsT0FBcEI7QUFDRCxHQUZELE1BRU8sSUFBSUEsT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSUcsSUFBVCxJQUFpQkgsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxVQUFJQSxRQUFRSSxjQUFSLENBQXVCRCxJQUF2QixDQUFKLEVBQWtDO0FBQ2hDRixpQkFBU0UsSUFBVCxJQUFpQkgsUUFBUUcsSUFBUixDQUFqQjtBQUNEO0FBQ0Y7QUFDRjtBQUNELFNBQU9GLFFBQVA7QUFDRCIsImZpbGUiOiJwYXJhbXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0=
diff --git a/multiplatform-crypto-delegated/node_modules/diff/package.json b/multiplatform-crypto-delegated/node_modules/diff/package.json
deleted file mode 100644
index 4082ec0..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/package.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
-  "_from": "diff@3.5.0",
-  "_id": "diff@3.5.0",
-  "_inBundle": false,
-  "_integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
-  "_location": "/diff",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "diff@3.5.0",
-    "name": "diff",
-    "escapedName": "diff",
-    "rawSpec": "3.5.0",
-    "saveSpec": null,
-    "fetchSpec": "3.5.0"
-  },
-  "_requiredBy": [
-    "/mocha"
-  ],
-  "_resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-  "_shasum": "800c0dd1e0a8bfbc95835c202ad220fe317e5a12",
-  "_spec": "diff@3.5.0",
-  "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha",
-  "browser": "./dist/diff.js",
-  "bugs": {
-    "url": "http://github.com/kpdecker/jsdiff/issues",
-    "email": "kpdecker@gmail.com"
-  },
-  "bundleDependencies": false,
-  "dependencies": {},
-  "deprecated": false,
-  "description": "A javascript text diff implementation.",
-  "devDependencies": {
-    "async": "^1.4.2",
-    "babel-core": "^6.0.0",
-    "babel-loader": "^6.0.0",
-    "babel-preset-es2015-mod": "^6.3.13",
-    "babel-preset-es3": "^1.0.1",
-    "chai": "^3.3.0",
-    "colors": "^1.1.2",
-    "eslint": "^1.6.0",
-    "grunt": "^0.4.5",
-    "grunt-babel": "^6.0.0",
-    "grunt-clean": "^0.4.0",
-    "grunt-cli": "^0.1.13",
-    "grunt-contrib-clean": "^1.0.0",
-    "grunt-contrib-copy": "^1.0.0",
-    "grunt-contrib-uglify": "^1.0.0",
-    "grunt-contrib-watch": "^1.0.0",
-    "grunt-eslint": "^17.3.1",
-    "grunt-karma": "^0.12.1",
-    "grunt-mocha-istanbul": "^3.0.1",
-    "grunt-mocha-test": "^0.12.7",
-    "grunt-webpack": "^1.0.11",
-    "istanbul": "github:kpdecker/istanbul",
-    "karma": "^0.13.11",
-    "karma-mocha": "^0.2.0",
-    "karma-mocha-reporter": "^2.0.0",
-    "karma-phantomjs-launcher": "^1.0.0",
-    "karma-sauce-launcher": "^0.3.0",
-    "karma-sourcemap-loader": "^0.3.6",
-    "karma-webpack": "^1.7.0",
-    "mocha": "^2.3.3",
-    "phantomjs-prebuilt": "^2.1.5",
-    "semver": "^5.0.3",
-    "webpack": "^1.12.2",
-    "webpack-dev-server": "^1.12.0"
-  },
-  "engines": {
-    "node": ">=0.3.1"
-  },
-  "homepage": "https://github.com/kpdecker/jsdiff#readme",
-  "keywords": [
-    "diff",
-    "javascript"
-  ],
-  "license": "BSD-3-Clause",
-  "main": "./lib",
-  "maintainers": [
-    {
-      "name": "Kevin Decker",
-      "email": "kpdecker@gmail.com",
-      "url": "http://incaseofstairs.com"
-    }
-  ],
-  "name": "diff",
-  "optionalDependencies": {},
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/kpdecker/jsdiff.git"
-  },
-  "scripts": {
-    "test": "grunt"
-  },
-  "version": "3.5.0"
-}
diff --git a/multiplatform-crypto-delegated/node_modules/diff/release-notes.md b/multiplatform-crypto-delegated/node_modules/diff/release-notes.md
deleted file mode 100644
index 0116a2b..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/release-notes.md
+++ /dev/null
@@ -1,247 +0,0 @@
-# Release Notes
-
-## Development
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.5.0...master)
-
-## v3.5.0 - March 4th, 2018
-- Omit redundant slice in join method of diffArrays - 1023590
-- Support patches with empty lines - fb0f208
-- Accept a custom JSON replacer function for JSON diffing - 69c7f0a
-- Optimize parch header parser - 2aec429
-- Fix typos - e89c832
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.5.0...v3.5.0)
-
-## v3.5.0 - March 4th, 2018
-- Omit redundant slice in join method of diffArrays - 1023590
-- Support patches with empty lines - fb0f208
-- Accept a custom JSON replacer function for JSON diffing - 69c7f0a
-- Optimize parch header parser - 2aec429
-- Fix typos - e89c832
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.4.0...v3.5.0)
-
-## v3.4.0 - October 7th, 2017
-- [#183](https://github.com/kpdecker/jsdiff/issues/183) - Feature request: ability to specify a custom equality checker for `diffArrays`
-- [#173](https://github.com/kpdecker/jsdiff/issues/173) - Bug: diffArrays gives wrong result on array of booleans
-- [#158](https://github.com/kpdecker/jsdiff/issues/158) - diffArrays will not compare the empty string in array?
-- comparator for custom equality checks - 30e141e
-- count oldLines and newLines when there are conflicts - 53bf384
-- Fix: diffArrays can compare falsey items - 9e24284
-- Docs: Replace grunt with npm test - 00e2f94
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.3.1...v3.4.0)
-
-## v3.3.1 - September 3rd, 2017
-- [#141](https://github.com/kpdecker/jsdiff/issues/141) - Cannot apply patch because my file delimiter is "/r/n" instead of "/n"
-- [#192](https://github.com/kpdecker/jsdiff/pull/192) - Fix: Bad merge when adding new files (#189)
-- correct spelling mistake - 21fa478
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.3.0...v3.3.1)
-
-## v3.3.0 - July 5th, 2017
-- [#114](https://github.com/kpdecker/jsdiff/issues/114) - /patch/merge not exported
-- Gracefully accept invalid newStart in hunks, same as patch(1) does. - d8a3635
-- Use regex rather than starts/ends with for parsePatch - 6cab62c
-- Add browser flag - e64f674
-- refactor: simplified code a bit more - 8f8e0f2
-- refactor: simplified code a bit - b094a6f
-- fix: some corrections re ignoreCase option - 3c78fd0
-- ignoreCase option - 3cbfbb5
-- Sanitize filename while parsing patches - 2fe8129
-- Added better installation methods - aced50b
-- Simple export of functionality - 8690f31
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.2.0...v3.3.0)
-
-## v3.2.0 - December 26th, 2016
-- [#156](https://github.com/kpdecker/jsdiff/pull/156) - Add `undefinedReplacement` option to `diffJson` ([@ewnd9](https://api.github.com/users/ewnd9))
-- [#154](https://github.com/kpdecker/jsdiff/pull/154) - Add `examples` and `images` to `.npmignore`. ([@wtgtybhertgeghgtwtg](https://api.github.com/users/wtgtybhertgeghgtwtg))
-- [#153](https://github.com/kpdecker/jsdiff/pull/153) - feat(structuredPatch): Pass options to diffLines ([@Kiougar](https://api.github.com/users/Kiougar))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.1.0...v3.2.0)
-
-## v3.1.0 - November 27th, 2016
-- [#146](https://github.com/kpdecker/jsdiff/pull/146) - JsDiff.diffArrays to compare arrays ([@wvanderdeijl](https://api.github.com/users/wvanderdeijl))
-- [#144](https://github.com/kpdecker/jsdiff/pull/144) - Split file using all possible line delimiter instead of hard-coded "/n" and join lines back using the original delimiters ([@soulbeing](https://api.github.com/users/soulbeing))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.0.1...v3.1.0)
-
-## v3.0.1 - October 9th, 2016
-- [#139](https://github.com/kpdecker/jsdiff/pull/139) - Make README.md look nicer in npmjs.com ([@takenspc](https://api.github.com/users/takenspc))
-- [#135](https://github.com/kpdecker/jsdiff/issues/135) - parsePatch combines patches from multiple files into a single IUniDiff when there is no "Index" line ([@ramya-rao-a](https://api.github.com/users/ramya-rao-a))
-- [#124](https://github.com/kpdecker/jsdiff/issues/124) - IE7/IE8 failure since 2.0.0 ([@boneskull](https://api.github.com/users/boneskull))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v3.0.0...v3.0.1)
-
-## v3.0.0 - August 23rd, 2016
-- [#130](https://github.com/kpdecker/jsdiff/pull/130) - Add callback argument to applyPatches `patched` option ([@piranna](https://api.github.com/users/piranna))
-- [#120](https://github.com/kpdecker/jsdiff/pull/120) - Correctly handle file names containing spaces ([@adius](https://api.github.com/users/adius))
-- [#119](https://github.com/kpdecker/jsdiff/pull/119) - Do single reflow ([@wifiextender](https://api.github.com/users/wifiextender))
-- [#117](https://github.com/kpdecker/jsdiff/pull/117) - Make more usable with long strings. ([@abnbgist](https://api.github.com/users/abnbgist))
-
-Compatibility notes:
-- applyPatches patch callback now is async and requires the callback be called to continue operation
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.3...v3.0.0)
-
-## v2.2.3 - May 31st, 2016
-- [#118](https://github.com/kpdecker/jsdiff/pull/118) - Add a fix for applying 0-length destination patches ([@chaaz](https://api.github.com/users/chaaz))
-- [#115](https://github.com/kpdecker/jsdiff/pull/115) - Fixed grammar in README ([@krizalys](https://api.github.com/users/krizalys))
-- [#113](https://github.com/kpdecker/jsdiff/pull/113) - fix typo ([@vmazare](https://api.github.com/users/vmazare))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.2...v2.2.3)
-
-## v2.2.2 - March 13th, 2016
-- [#102](https://github.com/kpdecker/jsdiff/issues/102) - diffJson with dates, returns empty curly braces  ([@dr-dimitru](https://api.github.com/users/dr-dimitru))
-- [#97](https://github.com/kpdecker/jsdiff/issues/97) - Whitespaces & diffWords ([@faiwer](https://api.github.com/users/faiwer))
-- [#92](https://github.com/kpdecker/jsdiff/pull/92) - Fixes typo in the readme ([@bg451](https://api.github.com/users/bg451))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.1...v2.2.2)
-
-## v2.2.1 - November 12th, 2015
-- [#89](https://github.com/kpdecker/jsdiff/pull/89) - add in display selector to readme ([@FranDias](https://api.github.com/users/FranDias))
-- [#88](https://github.com/kpdecker/jsdiff/pull/88) - Split diffs based on file headers instead of 'Index:' metadata ([@piranna](https://api.github.com/users/piranna))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.0...v2.2.1)
-
-## v2.2.0 - October 29th, 2015
-- [#80](https://github.com/kpdecker/jsdiff/pull/80) - Fix a typo: applyPath ->  applyPatch ([@fluxxu](https://api.github.com/users/fluxxu))
-- [#83](https://github.com/kpdecker/jsdiff/pull/83) - Add basic fuzzy matching to applyPatch ([@piranna](https://github.com/piranna))
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.2.0...v2.2.0)
-
-## v2.2.0 - October 29th, 2015
-- [#80](https://github.com/kpdecker/jsdiff/pull/80) - Fix a typo: applyPath ->  applyPatch ([@fluxxu](https://api.github.com/users/fluxxu))
-- [#83](https://github.com/kpdecker/jsdiff/pull/83) - Add basic fuzzy matching to applyPatch ([@piranna](https://github.com/piranna))
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.3...v2.2.0)
-
-## v2.1.3 - September 30th, 2015
-- [#78](https://github.com/kpdecker/jsdiff/pull/78) - fix: error throwing when apply patch to empty string ([@21paradox](https://api.github.com/users/21paradox))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.2...v2.1.3)
-
-## v2.1.2 - September 23rd, 2015
-- [#76](https://github.com/kpdecker/jsdiff/issues/76) - diff headers give error ([@piranna](https://api.github.com/users/piranna))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.1...v2.1.2)
-
-## v2.1.1 - September 9th, 2015
-- [#73](https://github.com/kpdecker/jsdiff/issues/73) - Is applyPatches() exposed in the API? ([@davidparsson](https://api.github.com/users/davidparsson))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.1.0...v2.1.1)
-
-## v2.1.0 - August 27th, 2015
-- [#72](https://github.com/kpdecker/jsdiff/issues/72) - Consider using options object API for flag permutations ([@kpdecker](https://api.github.com/users/kpdecker))
-- [#70](https://github.com/kpdecker/jsdiff/issues/70) - diffWords treats \n at the end as significant whitespace ([@nesQuick](https://api.github.com/users/nesQuick))
-- [#69](https://github.com/kpdecker/jsdiff/issues/69) - Missing count ([@wfalkwallace](https://api.github.com/users/wfalkwallace))
-- [#68](https://github.com/kpdecker/jsdiff/issues/68) - diffLines seems broken ([@wfalkwallace](https://api.github.com/users/wfalkwallace))
-- [#60](https://github.com/kpdecker/jsdiff/issues/60) - Support multiple diff hunks ([@piranna](https://api.github.com/users/piranna))
-- [#54](https://github.com/kpdecker/jsdiff/issues/54) - Feature Request: 3-way merge ([@mog422](https://api.github.com/users/mog422))
-- [#42](https://github.com/kpdecker/jsdiff/issues/42) - Fuzz factor for applyPatch ([@stuartpb](https://api.github.com/users/stuartpb))
-- Move whitespace ignore out of equals method - 542063c
-- Include source maps in babel output - 7f7ab21
-- Merge diff/line and diff/patch implementations - 1597705
-- Drop map utility method - 1ddc939
-- Documentation for parsePatch and applyPatches - 27c4b77
-
-Compatibility notes:
-- The undocumented ignoreWhitespace flag has been removed from the Diff equality check directly. This implementation may be copied to diff utilities if dependencies existed on this functionality.
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.2...v2.1.0)
-
-## v2.0.2 - August 8th, 2015
-- [#67](https://github.com/kpdecker/jsdiff/issues/67) - cannot require from npm module in node ([@commenthol](https://api.github.com/users/commenthol))
-- Convert to chai since we don’t support IE8 - a96bbad
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.1...v2.0.2)
-
-## v2.0.1 - August 7th, 2015
-- Add release build at proper step - 57542fd
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v2.0.0...v2.0.1)
-
-## v2.0.0 - August 7th, 2015
-- [#66](https://github.com/kpdecker/jsdiff/issues/66) - Add karma and sauce tests ([@kpdecker](https://api.github.com/users/kpdecker))
-- [#65](https://github.com/kpdecker/jsdiff/issues/65) - Create component repository for bower ([@kpdecker](https://api.github.com/users/kpdecker))
-- [#64](https://github.com/kpdecker/jsdiff/issues/64) - Automatically call removeEmpty for all tokenizer calls ([@kpdecker](https://api.github.com/users/kpdecker))
-- [#62](https://github.com/kpdecker/jsdiff/pull/62) - Allow access to structured object representation of patch data ([@bittrance](https://api.github.com/users/bittrance))
-- [#61](https://github.com/kpdecker/jsdiff/pull/61) - Use svg instead of png to get better image quality ([@PeterDaveHello](https://api.github.com/users/PeterDaveHello))
-- [#29](https://github.com/kpdecker/jsdiff/issues/29) - word tokenizer works only for 7 bit ascii ([@plasmagunman](https://api.github.com/users/plasmagunman))
-
-Compatibility notes:
-- `this.removeEmpty` is now called automatically for all instances. If this is not desired, this may be overridden on a per instance basis.
-- The library has been refactored to use some ES6 features. The external APIs should remain the same, but bower projects that directly referenced the repository will now have to point to the [components/jsdiff](https://github.com/components/jsdiff) repository.
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.4.0...v2.0.0)
-
-## v1.4.0 - May 6th, 2015
-- [#57](https://github.com/kpdecker/jsdiff/issues/57) - createPatch -> applyPatch failed. ([@mog422](https://api.github.com/users/mog422))
-- [#56](https://github.com/kpdecker/jsdiff/pull/56) - Two files patch ([@rgeissert](https://api.github.com/users/rgeissert))
-- [#14](https://github.com/kpdecker/jsdiff/issues/14) - Flip added and removed order? ([@jakesandlund](https://api.github.com/users/jakesandlund))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.2...v1.4.0)
-
-## v1.3.2 - March 30th, 2015
-- [#53](https://github.com/kpdecker/jsdiff/pull/53) - Updated README.MD with Bower installation instructions ([@ofbriggs](https://api.github.com/users/ofbriggs))
-- [#49](https://github.com/kpdecker/jsdiff/issues/49) - Cannot read property 'oldlines' of undefined ([@nwtn](https://api.github.com/users/nwtn))
-- [#44](https://github.com/kpdecker/jsdiff/issues/44) - invalid-meta jsdiff is missing "main" entry in bower.json
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.1...v1.3.2)
-
-## v1.3.1 - March 13th, 2015
-- [#52](https://github.com/kpdecker/jsdiff/pull/52) - Fix for #51 Wrong result of JsDiff.diffLines ([@felicienfrancois](https://api.github.com/users/felicienfrancois))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.3.0...v1.3.1)
-
-## v1.3.0 - March 2nd, 2015
-- [#47](https://github.com/kpdecker/jsdiff/pull/47) - Adding Diff Trimmed Lines ([@JamesGould123](https://api.github.com/users/JamesGould123))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.2...v1.3.0)
-
-## v1.2.2 - January 26th, 2015
-- [#45](https://github.com/kpdecker/jsdiff/pull/45) - Fix AMD module loading ([@pedrocarrico](https://api.github.com/users/pedrocarrico))
-- [#43](https://github.com/kpdecker/jsdiff/pull/43) - added a bower file ([@nbrustein](https://api.github.com/users/nbrustein))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.1...v1.2.2)
-
-## v1.2.1 - December 26th, 2014
-- [#41](https://github.com/kpdecker/jsdiff/pull/41) - change condition of using node export system. ([@ironhee](https://api.github.com/users/ironhee))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.2.0...v1.2.1)
-
-## v1.2.0 - November 29th, 2014
-- [#37](https://github.com/kpdecker/jsdiff/pull/37) - Add support for sentences. ([@vmariano](https://api.github.com/users/vmariano))
-- [#28](https://github.com/kpdecker/jsdiff/pull/28) - Implemented diffJson ([@papandreou](https://api.github.com/users/papandreou))
-- [#27](https://github.com/kpdecker/jsdiff/issues/27) - Slow to execute over diffs with a large number of changes ([@termi](https://api.github.com/users/termi))
-- Allow for optional async diffing - 19385b9
-- Fix diffChars implementation - eaa44ed
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.1.0...v1.2.0)
-
-## v1.1.0 - November 25th, 2014
-- [#33](https://github.com/kpdecker/jsdiff/pull/33) - AMD and global exports ([@ovcharik](https://api.github.com/users/ovcharik))
-- [#32](https://github.com/kpdecker/jsdiff/pull/32) - Add support for component ([@vmariano](https://api.github.com/users/vmariano))
-- [#31](https://github.com/kpdecker/jsdiff/pull/31) - Don't rely on Array.prototype.map ([@papandreou](https://api.github.com/users/papandreou))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.8...v1.1.0)
-
-## v1.0.8 - December 22nd, 2013
-- [#24](https://github.com/kpdecker/jsdiff/pull/24) - Handle windows newlines on non windows machines. ([@benogle](https://api.github.com/users/benogle))
-- [#23](https://github.com/kpdecker/jsdiff/pull/23) - Prettied up the API formatting a little, and added basic node and web examples ([@airportyh](https://api.github.com/users/airportyh))
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.7...v1.0.8)
-
-## v1.0.7 - September 11th, 2013
-
-- [#22](https://github.com/kpdecker/jsdiff/pull/22) - Added variant of WordDiff that doesn't ignore whitespace differences ([@papandreou](https://api.github.com/users/papandreou)
-
-- Add 0.10 to travis tests - 243a526
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.6...v1.0.7)
-
-## v1.0.6 - August 30th, 2013
-
-- [#19](https://github.com/kpdecker/jsdiff/pull/19) - Explicitly define contents of npm package ([@sindresorhus](https://api.github.com/users/sindresorhus)
-
-[Commits](https://github.com/kpdecker/jsdiff/compare/v1.0.5...v1.0.6)
diff --git a/multiplatform-crypto-delegated/node_modules/diff/runtime.js b/multiplatform-crypto-delegated/node_modules/diff/runtime.js
deleted file mode 100644
index fd8ca6e..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/runtime.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require('babel-core/register')({
-  ignore: /\/lib\/|\/node_modules\//
-});
diff --git a/multiplatform-crypto-delegated/node_modules/diff/yarn.lock b/multiplatform-crypto-delegated/node_modules/diff/yarn.lock
deleted file mode 100644
index 29e3ab3..0000000
--- a/multiplatform-crypto-delegated/node_modules/diff/yarn.lock
+++ /dev/null
@@ -1,5729 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-abbrev@1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-
-abbrev@1.0.x:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-
-accepts@1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
-  dependencies:
-    mime-types "~2.1.11"
-    negotiator "0.6.1"
-
-accepts@~1.3.4:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
-  dependencies:
-    mime-types "~2.1.18"
-    negotiator "0.6.1"
-
-acorn@^3.0.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
-
-adm-zip@~0.4.3:
-  version "0.4.7"
-  resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1"
-
-after@0.8.2:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
-
-agent-base@2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7"
-  dependencies:
-    extend "~3.0.0"
-    semver "~5.0.1"
-
-ajv@^4.9.1:
-  version "4.11.8"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
-  dependencies:
-    co "^4.6.0"
-    json-stable-stringify "^1.0.1"
-
-ajv@^5.1.0:
-  version "5.5.2"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
-  dependencies:
-    co "^4.6.0"
-    fast-deep-equal "^1.0.0"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.3.0"
-
-align-text@^0.1.1, align-text@^0.1.3:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
-  dependencies:
-    kind-of "^3.0.2"
-    longest "^1.0.1"
-    repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
-ansi-escapes@^1.1.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-
-ansi-regex@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
-ansi-regex@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
-
-ansi-styles@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-ansi-styles@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
-  dependencies:
-    color-convert "^1.9.0"
-
-anymatch@^1.3.0:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
-  dependencies:
-    micromatch "^2.1.5"
-    normalize-path "^2.0.0"
-
-append-transform@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
-  dependencies:
-    default-require-extensions "^1.0.0"
-
-aproba@^1.0.3:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
-
-archiver@~0.14.0:
-  version "0.14.4"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-0.14.4.tgz#5b9ddb9f5ee1ceef21cb8f3b020e6240ecb4315c"
-  dependencies:
-    async "~0.9.0"
-    buffer-crc32 "~0.2.1"
-    glob "~4.3.0"
-    lazystream "~0.1.0"
-    lodash "~3.2.0"
-    readable-stream "~1.0.26"
-    tar-stream "~1.1.0"
-    zip-stream "~0.5.0"
-
-archy@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
-
-are-we-there-yet@~1.1.2:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
-  dependencies:
-    delegates "^1.0.0"
-    readable-stream "^2.0.6"
-
-argparse@^1.0.2, argparse@^1.0.7:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
-  dependencies:
-    sprintf-js "~1.0.2"
-
-"argparse@~ 0.1.11":
-  version "0.1.16"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
-  dependencies:
-    underscore "~1.7.0"
-    underscore.string "~2.4.0"
-
-arr-diff@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
-  dependencies:
-    arr-flatten "^1.0.1"
-
-arr-flatten@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
-
-array-find-index@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
-
-array-flatten@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
-
-array-slice@^0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5"
-
-array-union@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
-  dependencies:
-    array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-
-array-unique@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
-
-arraybuffer.slice@0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
-
-arrify@^1.0.0, arrify@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-
-asn1@0.1.11:
-  version "0.1.11"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7"
-
-asn1@~0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
-assert-plus@^0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
-
-assert-plus@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-
-assert@^1.1.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
-  dependencies:
-    util "0.10.3"
-
-assertion-error@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
-
-async-each@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
-
-async@0.1.x, async@~0.1.18, async@~0.1.22:
-  version "0.1.22"
-  resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061"
-
-async@1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/async/-/async-1.4.0.tgz#35f86f83c59e0421d099cd9a91d8278fb578c00d"
-
-async@1.x, async@^1.3.0, async@^1.4.0, async@^1.4.2, async@^1.5.0, async@^1.5.2:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
-async@^0.9.0, async@~0.9.0:
-  version "0.9.2"
-  resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
-
-async@~0.2.6:
-  version "0.2.10"
-  resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1"
-
-async@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9"
-
-asynckit@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-
-aws-sign2@~0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63"
-
-aws-sign2@~0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-
-aws-sign2@~0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-
-aws4@^1.2.1, aws4@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-
-babel-code-frame@^6.26.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
-  dependencies:
-    chalk "^1.1.3"
-    esutils "^2.0.2"
-    js-tokens "^3.0.2"
-
-babel-core@^6.0.0, babel-core@^6.0.12, babel-core@^6.26.0, babel-core@^6.6.5:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
-  dependencies:
-    babel-code-frame "^6.26.0"
-    babel-generator "^6.26.0"
-    babel-helpers "^6.24.1"
-    babel-messages "^6.23.0"
-    babel-register "^6.26.0"
-    babel-runtime "^6.26.0"
-    babel-template "^6.26.0"
-    babel-traverse "^6.26.0"
-    babel-types "^6.26.0"
-    babylon "^6.18.0"
-    convert-source-map "^1.5.0"
-    debug "^2.6.8"
-    json5 "^0.5.1"
-    lodash "^4.17.4"
-    minimatch "^3.0.4"
-    path-is-absolute "^1.0.1"
-    private "^0.1.7"
-    slash "^1.0.0"
-    source-map "^0.5.6"
-
-babel-generator@^6.18.0, babel-generator@^6.26.0:
-  version "6.26.1"
-  resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
-  dependencies:
-    babel-messages "^6.23.0"
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    detect-indent "^4.0.0"
-    jsesc "^1.3.0"
-    lodash "^4.17.4"
-    source-map "^0.5.7"
-    trim-right "^1.0.1"
-
-babel-helper-call-delegate@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
-  dependencies:
-    babel-helper-hoist-variables "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-define-map@^6.24.1:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
-  dependencies:
-    babel-helper-function-name "^6.24.1"
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    lodash "^4.17.4"
-
-babel-helper-function-name@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
-  dependencies:
-    babel-helper-get-function-arity "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helper-get-function-arity@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-hoist-variables@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-optimise-call-expression@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-helper-regex@^6.24.1:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    lodash "^4.17.4"
-
-babel-helper-replace-supers@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
-  dependencies:
-    babel-helper-optimise-call-expression "^6.24.1"
-    babel-messages "^6.23.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-helpers@^6.24.1:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-loader@^6.0.0:
-  version "6.4.1"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
-  dependencies:
-    find-cache-dir "^0.1.1"
-    loader-utils "^0.2.16"
-    mkdirp "^0.5.1"
-    object-assign "^4.0.1"
-
-babel-messages@^6.23.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-check-es2015-constants@^6.3.13:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-syntax-async-functions@^6.3.13:
-  version "6.13.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
-
-babel-plugin-transform-es2015-arrow-functions@^6.3.13:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoped-functions@^6.3.13:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-block-scoping@^6.6.0, babel-plugin-transform-es2015-block-scoping@^6.6.5:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-template "^6.26.0"
-    babel-traverse "^6.26.0"
-    babel-types "^6.26.0"
-    lodash "^4.17.4"
-
-babel-plugin-transform-es2015-classes@^6.6.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
-  dependencies:
-    babel-helper-define-map "^6.24.1"
-    babel-helper-function-name "^6.24.1"
-    babel-helper-optimise-call-expression "^6.24.1"
-    babel-helper-replace-supers "^6.24.1"
-    babel-messages "^6.23.0"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-computed-properties@^6.3.13:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-
-babel-plugin-transform-es2015-destructuring@^6.6.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-duplicate-keys@^6.6.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-for-of@^6.6.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-function-name@^6.3.13:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
-  dependencies:
-    babel-helper-function-name "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-literals@^6.3.13:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-modules-commonjs@6.7.7:
-  version "6.7.7"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.7.7.tgz#fa5ca2016617c4d712123d8cfc15787fcaa83f33"
-  dependencies:
-    babel-plugin-transform-strict-mode "^6.6.5"
-    babel-runtime "^5.0.0"
-    babel-template "^6.7.0"
-    babel-types "^6.7.7"
-
-babel-plugin-transform-es2015-modules-commonjs@^6.6.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
-  dependencies:
-    babel-plugin-transform-strict-mode "^6.24.1"
-    babel-runtime "^6.26.0"
-    babel-template "^6.26.0"
-    babel-types "^6.26.0"
-
-babel-plugin-transform-es2015-object-super@^6.3.13:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
-  dependencies:
-    babel-helper-replace-supers "^6.24.1"
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-parameters@^6.6.0:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
-  dependencies:
-    babel-helper-call-delegate "^6.24.1"
-    babel-helper-get-function-arity "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-template "^6.24.1"
-    babel-traverse "^6.24.1"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-shorthand-properties@^6.3.13:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-spread@^6.3.13:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-sticky-regex@^6.3.13:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
-  dependencies:
-    babel-helper-regex "^6.24.1"
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-template-literals@^6.6.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-typeof-symbol@^6.6.0:
-  version "6.23.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-unicode-regex@^6.3.13:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
-  dependencies:
-    babel-helper-regex "^6.24.1"
-    babel-runtime "^6.22.0"
-    regexpu-core "^2.0.0"
-
-babel-plugin-transform-es3-member-expression-literals@^6.8.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz#733d3444f3ecc41bef8ed1a6a4e09657b8969ebb"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-es3-property-literals@^6.8.0:
-  version "6.22.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-es3-property-literals/-/babel-plugin-transform-es3-property-literals-6.22.0.tgz#b2078d5842e22abf40f73e8cde9cd3711abd5758"
-  dependencies:
-    babel-runtime "^6.22.0"
-
-babel-plugin-transform-regenerator@6.6.5:
-  version "6.6.5"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.6.5.tgz#079a982bd56e2235e31ee3b17ad54aeba898d4e7"
-  dependencies:
-    babel-core "^6.6.5"
-    babel-plugin-syntax-async-functions "^6.3.13"
-    babel-plugin-transform-es2015-block-scoping "^6.6.5"
-    babel-plugin-transform-es2015-for-of "^6.6.0"
-    babel-runtime "^5.0.0"
-    babel-traverse "^6.6.5"
-    babel-types "^6.6.5"
-    babylon "^6.6.5"
-    private "~0.1.5"
-
-babel-plugin-transform-regenerator@^6.6.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
-  dependencies:
-    regenerator-transform "^0.10.0"
-
-babel-plugin-transform-strict-mode@^6.24.1, babel-plugin-transform-strict-mode@^6.6.5:
-  version "6.24.1"
-  resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
-  dependencies:
-    babel-runtime "^6.22.0"
-    babel-types "^6.24.1"
-
-babel-preset-es2015-mod@^6.3.13:
-  version "6.6.0"
-  resolved "https://registry.yarnpkg.com/babel-preset-es2015-mod/-/babel-preset-es2015-mod-6.6.0.tgz#e105b62eb7c1001090ab86225298904cf90c1e8e"
-  dependencies:
-    babel-plugin-transform-es2015-modules-commonjs "6.7.7"
-    babel-plugin-transform-regenerator "6.6.5"
-    babel-preset-es2015 "6.6.0"
-    modify-babel-preset "2.0.2"
-
-babel-preset-es2015@6.6.0:
-  version "6.6.0"
-  resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.6.0.tgz#88b33e58fec94c6ebde58dc65ece5d14e0ec2568"
-  dependencies:
-    babel-plugin-check-es2015-constants "^6.3.13"
-    babel-plugin-transform-es2015-arrow-functions "^6.3.13"
-    babel-plugin-transform-es2015-block-scoped-functions "^6.3.13"
-    babel-plugin-transform-es2015-block-scoping "^6.6.0"
-    babel-plugin-transform-es2015-classes "^6.6.0"
-    babel-plugin-transform-es2015-computed-properties "^6.3.13"
-    babel-plugin-transform-es2015-destructuring "^6.6.0"
-    babel-plugin-transform-es2015-duplicate-keys "^6.6.0"
-    babel-plugin-transform-es2015-for-of "^6.6.0"
-    babel-plugin-transform-es2015-function-name "^6.3.13"
-    babel-plugin-transform-es2015-literals "^6.3.13"
-    babel-plugin-transform-es2015-modules-commonjs "^6.6.0"
-    babel-plugin-transform-es2015-object-super "^6.3.13"
-    babel-plugin-transform-es2015-parameters "^6.6.0"
-    babel-plugin-transform-es2015-shorthand-properties "^6.3.13"
-    babel-plugin-transform-es2015-spread "^6.3.13"
-    babel-plugin-transform-es2015-sticky-regex "^6.3.13"
-    babel-plugin-transform-es2015-template-literals "^6.6.0"
-    babel-plugin-transform-es2015-typeof-symbol "^6.6.0"
-    babel-plugin-transform-es2015-unicode-regex "^6.3.13"
-    babel-plugin-transform-regenerator "^6.6.0"
-
-babel-preset-es3@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/babel-preset-es3/-/babel-preset-es3-1.0.1.tgz#e08dd950a1670dab8b50abceaa9b93d3d9accd1e"
-  dependencies:
-    babel-plugin-transform-es3-member-expression-literals "^6.8.0"
-    babel-plugin-transform-es3-property-literals "^6.8.0"
-
-babel-register@^6.26.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
-  dependencies:
-    babel-core "^6.26.0"
-    babel-runtime "^6.26.0"
-    core-js "^2.5.0"
-    home-or-tmp "^2.0.0"
-    lodash "^4.17.4"
-    mkdirp "^0.5.1"
-    source-map-support "^0.4.15"
-
-babel-runtime@^5.0.0:
-  version "5.8.38"
-  resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-5.8.38.tgz#1c0b02eb63312f5f087ff20450827b425c9d4c19"
-  dependencies:
-    core-js "^1.0.0"
-
-babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
-  dependencies:
-    core-js "^2.4.0"
-    regenerator-runtime "^0.11.0"
-
-babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.7.0:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
-  dependencies:
-    babel-runtime "^6.26.0"
-    babel-traverse "^6.26.0"
-    babel-types "^6.26.0"
-    babylon "^6.18.0"
-    lodash "^4.17.4"
-
-babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0, babel-traverse@^6.6.5:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
-  dependencies:
-    babel-code-frame "^6.26.0"
-    babel-messages "^6.23.0"
-    babel-runtime "^6.26.0"
-    babel-types "^6.26.0"
-    babylon "^6.18.0"
-    debug "^2.6.8"
-    globals "^9.18.0"
-    invariant "^2.2.2"
-    lodash "^4.17.4"
-
-babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0, babel-types@^6.6.5, babel-types@^6.7.7:
-  version "6.26.0"
-  resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
-  dependencies:
-    babel-runtime "^6.26.0"
-    esutils "^2.0.2"
-    lodash "^4.17.4"
-    to-fast-properties "^1.0.3"
-
-babylon@^6.18.0, babylon@^6.6.5:
-  version "6.18.0"
-  resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
-
-backo2@1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
-
-balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-
-base64-arraybuffer@0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
-
-base64-js@^1.0.2:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801"
-
-base64id@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
-
-batch@0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
-
-batch@^0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464"
-
-bcrypt-pbkdf@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
-  dependencies:
-    tweetnacl "^0.14.3"
-
-better-assert@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
-  dependencies:
-    callsite "1.0.0"
-
-big.js@^3.1.3:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
-
-binary-extensions@^1.0.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
-
-bind-obj-methods@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz#4f5979cac15793adf70e488161e463e209ca509c"
-
-bl@^0.9.0, bl@~0.9.0:
-  version "0.9.5"
-  resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054"
-  dependencies:
-    readable-stream "~1.0.26"
-
-blob@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
-
-block-stream@*:
-  version "0.0.9"
-  resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
-  dependencies:
-    inherits "~2.0.0"
-
-bluebird@^2.9.27, bluebird@^2.9.30:
-  version "2.11.0"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
-
-bluebird@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
-
-body-parser@1.18.2, body-parser@^1.12.4:
-  version "1.18.2"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
-  dependencies:
-    bytes "3.0.0"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "~1.1.1"
-    http-errors "~1.6.2"
-    iconv-lite "0.4.19"
-    on-finished "~2.3.0"
-    qs "6.5.1"
-    raw-body "2.3.2"
-    type-is "~1.6.15"
-
-body-parser@~1.14.0:
-  version "1.14.2"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz#1015cb1fe2c443858259581db53332f8d0cf50f9"
-  dependencies:
-    bytes "2.2.0"
-    content-type "~1.0.1"
-    debug "~2.2.0"
-    depd "~1.1.0"
-    http-errors "~1.3.1"
-    iconv-lite "0.4.13"
-    on-finished "~2.3.0"
-    qs "5.2.0"
-    raw-body "~2.1.5"
-    type-is "~1.6.10"
-
-boom@2.x.x:
-  version "2.10.1"
-  resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
-  dependencies:
-    hoek "2.x.x"
-
-boom@4.x.x:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
-  dependencies:
-    hoek "4.x.x"
-
-boom@5.x.x:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
-  dependencies:
-    hoek "4.x.x"
-
-brace-expansion@^1.0.0, brace-expansion@^1.1.7:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
-  dependencies:
-    balanced-match "^1.0.0"
-    concat-map "0.0.1"
-
-braces@^0.1.2:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6"
-  dependencies:
-    expand-range "^0.1.0"
-
-braces@^1.8.2:
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
-  dependencies:
-    expand-range "^1.8.1"
-    preserve "^0.2.0"
-    repeat-element "^1.1.2"
-
-browserify-aes@0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c"
-  dependencies:
-    inherits "^2.0.1"
-
-browserify-zlib@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
-  dependencies:
-    pako "~0.2.0"
-
-buffer-crc32@~0.2.1:
-  version "0.2.13"
-  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
-
-buffer@^4.9.0:
-  version "4.9.1"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
-  dependencies:
-    base64-js "^1.0.2"
-    ieee754 "^1.1.4"
-    isarray "^1.0.0"
-
-builtin-modules@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-
-builtin-status-codes@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-
-bytes@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-0.1.0.tgz#c574812228126d6369d1576925a8579db3f8e5a2"
-
-bytes@2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz#fd35464a403f6f9117c2de3609ecff9cae000588"
-
-bytes@2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339"
-
-bytes@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-
-caching-transform@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
-  dependencies:
-    md5-hex "^1.2.0"
-    mkdirp "^0.5.1"
-    write-file-atomic "^1.1.4"
-
-callsite@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
-
-camelcase-keys@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
-  dependencies:
-    camelcase "^2.0.0"
-    map-obj "^1.0.0"
-
-camelcase@^1.0.2:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
-camelcase@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
-
-camelcase@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
-
-caseless@~0.11.0:
-  version "0.11.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
-
-caseless@~0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-
-caseless@~0.9.0:
-  version "0.9.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.9.0.tgz#b7b65ce6bf1413886539cfd533f0b30effa9cf88"
-
-center-align@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
-  dependencies:
-    align-text "^0.1.3"
-    lazy-cache "^1.0.3"
-
-chai@^3.3.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
-  dependencies:
-    assertion-error "^1.0.1"
-    deep-eql "^0.1.3"
-    type-detect "^1.0.0"
-
-chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
-  dependencies:
-    ansi-styles "^2.2.1"
-    escape-string-regexp "^1.0.2"
-    has-ansi "^2.0.0"
-    strip-ansi "^3.0.0"
-    supports-color "^2.0.0"
-
-chalk@^2.0.1, chalk@^2.1.0:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
-  dependencies:
-    ansi-styles "^3.2.1"
-    escape-string-regexp "^1.0.5"
-    supports-color "^5.3.0"
-
-chokidar@^1.0.0, chokidar@^1.4.1:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
-  dependencies:
-    anymatch "^1.3.0"
-    async-each "^1.0.0"
-    glob-parent "^2.0.0"
-    inherits "^2.0.1"
-    is-binary-path "^1.0.0"
-    is-glob "^2.0.0"
-    path-is-absolute "^1.0.0"
-    readdirp "^2.0.0"
-  optionalDependencies:
-    fsevents "^1.0.0"
-
-circular-json@^0.3.1:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
-
-clean-yaml-object@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68"
-
-cli-cursor@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
-  dependencies:
-    restore-cursor "^1.0.1"
-
-cli-width@^1.0.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d"
-
-cli@0.4.3:
-  version "0.4.3"
-  resolved "https://registry.yarnpkg.com/cli/-/cli-0.4.3.tgz#e6819c8d5faa957f64f98f66a8506268c1d1f17d"
-  dependencies:
-    glob ">= 3.1.4"
-
-cliui@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
-  dependencies:
-    center-align "^0.1.1"
-    right-align "^0.1.1"
-    wordwrap "0.0.2"
-
-cliui@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
-  dependencies:
-    string-width "^2.1.1"
-    strip-ansi "^4.0.0"
-    wrap-ansi "^2.0.0"
-
-clone@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
-
-co@^4.6.0:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-
-code-point-at@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-
-coffee-script@~1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.3.3.tgz#150d6b4cb522894369efed6a2101c20bc7f4a4f4"
-
-color-convert@^1.9.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
-  dependencies:
-    color-name "^1.1.1"
-
-color-name@^1.1.1:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-
-color-support@^1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
-
-colors@0.x.x, colors@~0.6.0, colors@~0.6.2:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
-
-colors@^1.1.0, colors@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
-
-combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
-  dependencies:
-    delayed-stream "~1.0.0"
-
-combined-stream@~0.0.4, combined-stream@~0.0.5:
-  version "0.0.7"
-  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f"
-  dependencies:
-    delayed-stream "0.0.5"
-
-commander@0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06"
-
-commander@2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873"
-
-commander@^2.8.1, commander@^2.9.0:
-  version "2.14.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa"
-
-commondir@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
-
-component-bind@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
-
-component-emitter@1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
-
-component-emitter@1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
-
-component-inherit@0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
-
-compress-commons@~0.2.0:
-  version "0.2.9"
-  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-0.2.9.tgz#422d927430c01abd06cd455b6dfc04cb4cf8003c"
-  dependencies:
-    buffer-crc32 "~0.2.1"
-    crc32-stream "~0.3.1"
-    node-int64 "~0.3.0"
-    readable-stream "~1.0.26"
-
-compressible@~2.0.13:
-  version "2.0.13"
-  resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9"
-  dependencies:
-    mime-db ">= 1.33.0 < 2"
-
-compression@^1.5.2:
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69"
-  dependencies:
-    accepts "~1.3.4"
-    bytes "3.0.0"
-    compressible "~2.0.13"
-    debug "2.6.9"
-    on-headers "~1.0.1"
-    safe-buffer "5.1.1"
-    vary "~1.1.2"
-
-concat-map@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-concat-stream@1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
-  dependencies:
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
-concat-stream@^1.4.1, concat-stream@^1.4.6:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26"
-  dependencies:
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
-connect-history-api-fallback@^1.3.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
-
-connect@^3.3.5:
-  version "3.6.6"
-  resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524"
-  dependencies:
-    debug "2.6.9"
-    finalhandler "1.1.0"
-    parseurl "~1.3.2"
-    utils-merge "1.0.1"
-
-connect@~2.4.4:
-  version "2.4.6"
-  resolved "https://registry.yarnpkg.com/connect/-/connect-2.4.6.tgz#012c2fe05018504ed2028668a16903199e6e7ace"
-  dependencies:
-    bytes "0.1.0"
-    cookie "0.0.4"
-    crc "0.2.0"
-    debug "*"
-    formidable "1.0.11"
-    fresh "0.1.0"
-    pause "0.0.1"
-    qs "0.5.1"
-    send "0.0.4"
-
-console-browserify@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
-  dependencies:
-    date-now "^0.1.4"
-
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-
-constants-browserify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
-
-content-disposition@0.5.2:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
-
-content-type@~1.0.1, content-type@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-
-convert-source-map@^1.1.1, convert-source-map@^1.3.0, convert-source-map@^1.5.0:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
-
-cookie-signature@1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
-
-cookie@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.0.4.tgz#5456bd47aee2666eac976ea80a6105940483fe98"
-
-cookie@0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
-
-core-js@^1.0.0:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
-
-core-js@^2.1.0, core-js@^2.4.0, core-js@^2.5.0:
-  version "2.5.3"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e"
-
-core-util-is@1.0.2, core-util-is@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-coveralls@^2.13.3:
-  version "2.13.3"
-  resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-2.13.3.tgz#9ad7c2ae527417f361e8b626483f48ee92dd2bc7"
-  dependencies:
-    js-yaml "3.6.1"
-    lcov-parse "0.0.10"
-    log-driver "1.2.5"
-    minimist "1.2.0"
-    request "2.79.0"
-
-crc32-stream@~0.3.1:
-  version "0.3.4"
-  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-0.3.4.tgz#73bc25b45fac1db6632231a7bfce8927e9f06552"
-  dependencies:
-    buffer-crc32 "~0.2.1"
-    readable-stream "~1.0.24"
-
-"crc32@>= 0.2.2":
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/crc32/-/crc32-0.2.2.tgz#7ad220d6ffdcd119f9fc127a7772cacea390a4ba"
-
-crc@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/crc/-/crc-0.2.0.tgz#f4486b9bf0a12df83c3fca14e31e030fdabd9454"
-
-cross-spawn@^4:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
-  dependencies:
-    lru-cache "^4.0.1"
-    which "^1.2.9"
-
-cross-spawn@^5.0.1:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
-  dependencies:
-    lru-cache "^4.0.1"
-    shebang-command "^1.2.0"
-    which "^1.2.9"
-
-cryptiles@2.x.x:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
-  dependencies:
-    boom "2.x.x"
-
-cryptiles@3.x.x:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
-  dependencies:
-    boom "5.x.x"
-
-crypto-browserify@3.3.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c"
-  dependencies:
-    browserify-aes "0.4.0"
-    pbkdf2-compat "2.0.1"
-    ripemd160 "0.2.0"
-    sha.js "2.2.6"
-
-ctype@0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f"
-
-currently-unhandled@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
-  dependencies:
-    array-find-index "^1.0.1"
-
-custom-event@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425"
-
-d@1:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
-  dependencies:
-    es5-ext "^0.10.9"
-
-dashdash@^1.12.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
-  dependencies:
-    assert-plus "^1.0.0"
-
-date-now@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-
-dateformat@1.0.2-1.2.3:
-  version "1.0.2-1.2.3"
-  resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9"
-
-debug-log@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
-
-debug@*, debug@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
-  dependencies:
-    ms "2.0.0"
-
-debug@2, debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.6, debug@^2.6.8:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  dependencies:
-    ms "2.0.0"
-
-debug@2.2.0, debug@~2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
-  dependencies:
-    ms "0.7.1"
-
-debug@2.3.3:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
-  dependencies:
-    ms "0.7.2"
-
-decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-deep-eql@^0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
-  dependencies:
-    type-detect "0.1.1"
-
-deep-extend@~0.4.0:
-  version "0.4.2"
-  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
-
-deep-is@~0.1.2, deep-is@~0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-
-default-require-extensions@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
-  dependencies:
-    strip-bom "^2.0.0"
-
-"deflate-js@>= 0.2.2":
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/deflate-js/-/deflate-js-0.2.3.tgz#f85abb58ebc5151a306147473d57c3e4f7e4426b"
-
-del@^2.0.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
-  dependencies:
-    globby "^5.0.0"
-    is-path-cwd "^1.0.0"
-    is-path-in-cwd "^1.0.0"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-    rimraf "^2.2.8"
-
-delayed-stream@0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f"
-
-delayed-stream@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-delegates@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-
-depd@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-
-depd@~1.1.0, depd@~1.1.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
-
-destroy@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-
-detect-indent@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
-  dependencies:
-    repeating "^2.0.0"
-
-detect-libc@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-
-di@^0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
-
-diff@1.4.0, diff@^1.3.2:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf"
-
-doctrine@^0.7.1:
-  version "0.7.2"
-  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
-  dependencies:
-    esutils "^1.1.6"
-    isarray "0.0.1"
-
-dom-serialize@^2.2.0:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b"
-  dependencies:
-    custom-event "~1.0.0"
-    ent "~2.2.0"
-    extend "^3.0.0"
-    void-elements "^2.0.0"
-
-domain-browser@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
-
-ecc-jsbn@~0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
-  dependencies:
-    jsbn "~0.1.0"
-
-ee-first@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-
-emojis-list@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-
-encodeurl@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
-
-end-of-stream@^1.0.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
-  dependencies:
-    once "^1.4.0"
-
-engine.io-client@~1.8.4:
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.5.tgz#fe7fb60cb0dcf2fa2859489329cb5968dedeb11f"
-  dependencies:
-    component-emitter "1.2.1"
-    component-inherit "0.0.3"
-    debug "2.3.3"
-    engine.io-parser "1.3.2"
-    has-cors "1.1.0"
-    indexof "0.0.1"
-    parsejson "0.0.3"
-    parseqs "0.0.5"
-    parseuri "0.0.5"
-    ws "~1.1.5"
-    xmlhttprequest-ssl "1.5.3"
-    yeast "0.1.2"
-
-engine.io-parser@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a"
-  dependencies:
-    after "0.8.2"
-    arraybuffer.slice "0.0.6"
-    base64-arraybuffer "0.1.5"
-    blob "0.0.4"
-    has-binary "0.1.7"
-    wtf-8 "1.0.0"
-
-engine.io@~1.8.4:
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.5.tgz#4ebe5e75c6dc123dee4afdce6e5fdced21eb93f6"
-  dependencies:
-    accepts "1.3.3"
-    base64id "1.0.0"
-    cookie "0.3.1"
-    debug "2.3.3"
-    engine.io-parser "1.3.2"
-    ws "~1.1.5"
-
-enhanced-resolve@~0.9.0:
-  version "0.9.1"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e"
-  dependencies:
-    graceful-fs "^4.1.2"
-    memory-fs "^0.2.0"
-    tapable "^0.1.8"
-
-ent@~2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
-
-errno@^0.1.3:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
-  dependencies:
-    prr "~1.0.1"
-
-error-ex@^1.2.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
-  dependencies:
-    is-arrayish "^0.2.1"
-
-es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
-  version "0.10.39"
-  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87"
-  dependencies:
-    es6-iterator "~2.0.3"
-    es6-symbol "~3.1.1"
-
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
-  dependencies:
-    d "1"
-    es5-ext "^0.10.35"
-    es6-symbol "^3.1.1"
-
-es6-map@^0.1.3:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-    es6-iterator "~2.0.1"
-    es6-set "~0.1.5"
-    es6-symbol "~3.1.1"
-    event-emitter "~0.3.5"
-
-es6-promise@^4.0.3:
-  version "4.2.4"
-  resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
-
-es6-set@~0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-    es6-iterator "~2.0.1"
-    es6-symbol "3.1.1"
-    event-emitter "~0.3.5"
-
-es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-
-es6-weak-map@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
-  dependencies:
-    d "1"
-    es5-ext "^0.10.14"
-    es6-iterator "^2.0.1"
-    es6-symbol "^3.1.1"
-
-escape-html@~1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-
-escape-string-regexp@1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1"
-
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-escodegen@1.7.x:
-  version "1.7.1"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.7.1.tgz#30ecfcf66ca98dc67cd2fd162abeb6eafa8ce6fc"
-  dependencies:
-    esprima "^1.2.2"
-    estraverse "^1.9.1"
-    esutils "^2.0.2"
-    optionator "^0.5.0"
-  optionalDependencies:
-    source-map "~0.2.0"
-
-escope@^3.3.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
-  dependencies:
-    es6-map "^0.1.3"
-    es6-weak-map "^2.0.1"
-    esrecurse "^4.1.0"
-    estraverse "^4.1.1"
-
-eslint@^1.5.1, eslint@^1.6.0:
-  version "1.10.3"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-1.10.3.tgz#fb19a91b13c158082bbca294b17d979bc8353a0a"
-  dependencies:
-    chalk "^1.0.0"
-    concat-stream "^1.4.6"
-    debug "^2.1.1"
-    doctrine "^0.7.1"
-    escape-string-regexp "^1.0.2"
-    escope "^3.3.0"
-    espree "^2.2.4"
-    estraverse "^4.1.1"
-    estraverse-fb "^1.3.1"
-    esutils "^2.0.2"
-    file-entry-cache "^1.1.1"
-    glob "^5.0.14"
-    globals "^8.11.0"
-    handlebars "^4.0.0"
-    inquirer "^0.11.0"
-    is-my-json-valid "^2.10.0"
-    is-resolvable "^1.0.0"
-    js-yaml "3.4.5"
-    json-stable-stringify "^1.0.0"
-    lodash.clonedeep "^3.0.1"
-    lodash.merge "^3.3.2"
-    lodash.omit "^3.1.0"
-    minimatch "^3.0.0"
-    mkdirp "^0.5.0"
-    object-assign "^4.0.1"
-    optionator "^0.6.0"
-    path-is-absolute "^1.0.0"
-    path-is-inside "^1.0.1"
-    shelljs "^0.5.3"
-    strip-json-comments "~1.0.1"
-    text-table "~0.2.0"
-    user-home "^2.0.0"
-    xml-escape "~1.0.0"
-
-espree@^2.2.4:
-  version "2.2.5"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-2.2.5.tgz#df691b9310889402aeb29cc066708c56690b854b"
-
-esprima@2.5.x:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.5.0.tgz#f387a46fd344c1b1a39baf8c20bfb43b6d0058cc"
-
-esprima@^1.2.2:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9"
-
-esprima@^2.6.0:
-  version "2.7.3"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-
-esprima@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
-
-"esprima@~ 1.0.2":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad"
-
-esrecurse@^4.1.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
-  dependencies:
-    estraverse "^4.1.0"
-
-estraverse-fb@^1.3.1:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/estraverse-fb/-/estraverse-fb-1.3.2.tgz#d323a4cb5e5ac331cea033413a9253e1643e07c4"
-
-estraverse@^1.9.1:
-  version "1.9.3"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-
-estraverse@^4.1.0, estraverse@^4.1.1:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-
-esutils@^1.1.6:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
-
-esutils@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-
-etag@~1.8.1:
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-
-event-emitter@~0.3.5:
-  version "0.3.5"
-  resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
-  dependencies:
-    d "1"
-    es5-ext "~0.10.14"
-
-eventemitter2@~0.4.13:
-  version "0.4.14"
-  resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab"
-
-eventemitter3@1.x.x:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
-
-events-to-array@^1.0.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.1.2.tgz#2d41f563e1fe400ed4962fe1a4d5c6a7539df7f6"
-
-events@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
-
-eventsource@0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
-  dependencies:
-    original ">=0.0.5"
-
-execa@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
-  dependencies:
-    cross-spawn "^5.0.1"
-    get-stream "^3.0.0"
-    is-stream "^1.1.0"
-    npm-run-path "^2.0.0"
-    p-finally "^1.0.0"
-    signal-exit "^3.0.0"
-    strip-eof "^1.0.0"
-
-exit-hook@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-
-exit@~0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
-
-expand-braces@^0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea"
-  dependencies:
-    array-slice "^0.2.3"
-    array-unique "^0.2.1"
-    braces "^0.1.2"
-
-expand-brackets@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
-  dependencies:
-    is-posix-bracket "^0.1.0"
-
-expand-range@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044"
-  dependencies:
-    is-number "^0.1.1"
-    repeat-string "^0.2.2"
-
-expand-range@^1.8.1:
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
-  dependencies:
-    fill-range "^2.1.0"
-
-express@^4.13.3:
-  version "4.16.2"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
-  dependencies:
-    accepts "~1.3.4"
-    array-flatten "1.1.1"
-    body-parser "1.18.2"
-    content-disposition "0.5.2"
-    content-type "~1.0.4"
-    cookie "0.3.1"
-    cookie-signature "1.0.6"
-    debug "2.6.9"
-    depd "~1.1.1"
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    finalhandler "1.1.0"
-    fresh "0.5.2"
-    merge-descriptors "1.0.1"
-    methods "~1.1.2"
-    on-finished "~2.3.0"
-    parseurl "~1.3.2"
-    path-to-regexp "0.1.7"
-    proxy-addr "~2.0.2"
-    qs "6.5.1"
-    range-parser "~1.2.0"
-    safe-buffer "5.1.1"
-    send "0.16.1"
-    serve-static "1.13.1"
-    setprototypeof "1.1.0"
-    statuses "~1.3.1"
-    type-is "~1.6.15"
-    utils-merge "1.0.1"
-    vary "~1.1.2"
-
-extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
-
-extglob@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
-  dependencies:
-    is-extglob "^1.0.0"
-
-extract-zip@^1.6.5:
-  version "1.6.6"
-  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c"
-  dependencies:
-    concat-stream "1.6.0"
-    debug "2.6.9"
-    mkdirp "0.5.0"
-    yauzl "2.4.1"
-
-extsprintf@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-
-extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-
-eyes@0.1.x:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
-
-fast-deep-equal@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
-
-fast-json-stable-stringify@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
-
-fast-levenshtein@~1.0.0, fast-levenshtein@~1.0.6:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz#0178dcdee023b92905193af0959e8a7639cfdcb9"
-
-faye-websocket@^0.10.0, faye-websocket@~0.10.0:
-  version "0.10.0"
-  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
-  dependencies:
-    websocket-driver ">=0.5.1"
-
-faye-websocket@~0.11.0:
-  version "0.11.1"
-  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
-  dependencies:
-    websocket-driver ">=0.5.1"
-
-fd-slicer@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
-  dependencies:
-    pend "~1.2.0"
-
-figures@^1.0.1, figures@^1.3.5:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
-  dependencies:
-    escape-string-regexp "^1.0.5"
-    object-assign "^4.1.0"
-
-file-entry-cache@^1.1.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8"
-  dependencies:
-    flat-cache "^1.2.1"
-    object-assign "^4.0.1"
-
-file-sync-cmp@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b"
-
-filename-regex@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
-
-fileset@0.2.x:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/fileset/-/fileset-0.2.1.tgz#588ef8973c6623b2a76df465105696b96aac8067"
-  dependencies:
-    glob "5.x"
-    minimatch "2.x"
-
-fill-range@^2.1.0:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
-  dependencies:
-    is-number "^2.1.0"
-    isobject "^2.0.0"
-    randomatic "^1.1.3"
-    repeat-element "^1.1.2"
-    repeat-string "^1.5.2"
-
-finalhandler@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5"
-  dependencies:
-    debug "2.6.9"
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    on-finished "~2.3.0"
-    parseurl "~1.3.2"
-    statuses "~1.3.1"
-    unpipe "~1.0.0"
-
-find-cache-dir@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
-  dependencies:
-    commondir "^1.0.1"
-    mkdirp "^0.5.1"
-    pkg-dir "^1.0.0"
-
-find-up@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
-  dependencies:
-    path-exists "^2.0.0"
-    pinkie-promise "^2.0.0"
-
-find-up@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
-  dependencies:
-    locate-path "^2.0.0"
-
-findup-sync@~0.1.0, findup-sync@~0.1.2:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683"
-  dependencies:
-    glob "~3.2.9"
-    lodash "~2.4.1"
-
-flat-cache@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
-  dependencies:
-    circular-json "^0.3.1"
-    del "^2.0.2"
-    graceful-fs "^4.1.2"
-    write "^0.2.1"
-
-for-in@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
-
-for-own@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
-  dependencies:
-    for-in "^1.0.1"
-
-foreground-child@^1.3.3, foreground-child@^1.5.3, foreground-child@^1.5.6:
-  version "1.5.6"
-  resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
-  dependencies:
-    cross-spawn "^4"
-    signal-exit "^3.0.0"
-
-forever-agent@~0.6.0, forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-
-form-data@~0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.2.0.tgz#26f8bc26da6440e299cbdcfb69035c4f77a6e466"
-  dependencies:
-    async "~0.9.0"
-    combined-stream "~0.0.4"
-    mime-types "~2.0.3"
-
-form-data@~2.1.1:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "^1.0.5"
-    mime-types "^2.1.12"
-
-form-data@~2.3.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "1.0.6"
-    mime-types "^2.1.12"
-
-formidable@1.0.11:
-  version "1.0.11"
-  resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.11.tgz#68f63325a035e644b6f7bb3d11243b9761de1b30"
-
-forwarded@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
-
-fresh@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.1.0.tgz#03e4b0178424e4c2d5d19a54d8814cdc97934850"
-
-fresh@0.5.2:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
-
-fs-exists-cached@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz#cf25554ca050dc49ae6656b41de42258989dcbce"
-
-fs-extra@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^2.1.0"
-    klaw "^1.0.0"
-
-fs.realpath@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-fsevents@^1.0.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8"
-  dependencies:
-    nan "^2.3.0"
-    node-pre-gyp "^0.6.39"
-
-fstream-ignore@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
-  dependencies:
-    fstream "^1.0.0"
-    inherits "2"
-    minimatch "^3.0.0"
-
-fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
-  version "1.0.11"
-  resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
-  dependencies:
-    graceful-fs "^4.1.2"
-    inherits "~2.0.0"
-    mkdirp ">=0.5 0"
-    rimraf "2"
-
-function-loop@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/function-loop/-/function-loop-1.0.1.tgz#8076bb305e8e6a3cceee2920765f330d190f340c"
-
-gauge@~2.7.3:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
-  dependencies:
-    aproba "^1.0.3"
-    console-control-strings "^1.0.0"
-    has-unicode "^2.0.0"
-    object-assign "^4.1.0"
-    signal-exit "^3.0.0"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-    wide-align "^1.1.0"
-
-gaze@^1.0.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
-  dependencies:
-    globule "^1.0.0"
-
-generate-function@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
-  dependencies:
-    is-property "^1.0.0"
-
-get-caller-file@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-
-get-stdin@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
-
-get-stream@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-
-getobject@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c"
-
-getpass@^0.1.1:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
-  dependencies:
-    assert-plus "^1.0.0"
-
-glob-base@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
-  dependencies:
-    glob-parent "^2.0.0"
-    is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
-  dependencies:
-    is-glob "^2.0.0"
-
-glob-whatev@~0.1.4:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/glob-whatev/-/glob-whatev-0.1.8.tgz#a33a763262e501e851bc84fd22b5736cff3826fd"
-  dependencies:
-    minimatch "~0.2.5"
-
-glob@3.2.11, glob@~3.2.9:
-  version "3.2.11"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
-  dependencies:
-    inherits "2"
-    minimatch "0.3"
-
-glob@5.x, glob@^5.0.14:
-  version "5.0.15"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
-  dependencies:
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "2 || 3"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-"glob@>= 3.1.4", glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@~7.1.1:
-  version "7.1.2"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
-  dependencies:
-    fs.realpath "^1.0.0"
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^3.0.4"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-glob@~3.1.21:
-  version "3.1.21"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
-  dependencies:
-    graceful-fs "~1.2.0"
-    inherits "1"
-    minimatch "~0.2.11"
-
-glob@~4.3.0:
-  version "4.3.5"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-4.3.5.tgz#80fbb08ca540f238acce5d11d1e9bc41e75173d3"
-  dependencies:
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^2.0.1"
-    once "^1.3.0"
-
-globals@^8.11.0:
-  version "8.18.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-8.18.0.tgz#93d4a62bdcac38cfafafc47d6b034768cb0ffcb4"
-
-globals@^9.18.0:
-  version "9.18.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
-
-globby@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
-  dependencies:
-    array-union "^1.0.1"
-    arrify "^1.0.0"
-    glob "^7.0.3"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-
-globule@^1.0.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
-  dependencies:
-    glob "~7.1.1"
-    lodash "~4.17.4"
-    minimatch "~3.0.2"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
-  version "4.1.11"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
-graceful-fs@~1.2.0:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
-
-growl@1.9.2:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
-
-grunt-babel@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/grunt-babel/-/grunt-babel-6.0.0.tgz#378189b487de1168c4c4a9fc88dd6005b35df960"
-  dependencies:
-    babel-core "^6.0.12"
-
-grunt-clean@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/grunt-clean/-/grunt-clean-0.4.0.tgz#a7b4e188d7e94ca6c93bb88ec64096534931c40b"
-  dependencies:
-    grunt "~0.3.9"
-
-grunt-cli@^0.1.13:
-  version "0.1.13"
-  resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-0.1.13.tgz#e9ebc4047631f5012d922770c39378133cad10f4"
-  dependencies:
-    findup-sync "~0.1.0"
-    nopt "~1.0.10"
-    resolve "~0.3.1"
-
-grunt-contrib-clean@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz#564abf2d0378a983a15b9e3f30ee75b738c40638"
-  dependencies:
-    async "^1.5.2"
-    rimraf "^2.5.1"
-
-grunt-contrib-copy@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz#7060c6581e904b8ab0d00f076e0a8f6e3e7c3573"
-  dependencies:
-    chalk "^1.1.1"
-    file-sync-cmp "^0.1.0"
-
-grunt-contrib-uglify@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.2.tgz#ae67a46f9153edd4cb11813a55eb69c70d7db2fb"
-  dependencies:
-    chalk "^1.0.0"
-    lodash "^4.0.1"
-    maxmin "^1.1.0"
-    uglify-js "~2.6.2"
-    uri-path "^1.0.0"
-
-grunt-contrib-watch@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz#84a1a7a1d6abd26ed568413496c73133e990018f"
-  dependencies:
-    async "^1.5.0"
-    gaze "^1.0.0"
-    lodash "^3.10.1"
-    tiny-lr "^0.2.1"
-
-grunt-eslint@^17.3.1:
-  version "17.3.2"
-  resolved "https://registry.yarnpkg.com/grunt-eslint/-/grunt-eslint-17.3.2.tgz#36a8b3be6ccde88c8b58f909745d75db19e5d4b0"
-  dependencies:
-    chalk "^1.0.0"
-    eslint "^1.5.1"
-
-grunt-karma@^0.12.1:
-  version "0.12.2"
-  resolved "https://registry.yarnpkg.com/grunt-karma/-/grunt-karma-0.12.2.tgz#d52676ab94779e4b20052b5f3519eb32653dc566"
-  dependencies:
-    lodash "^3.10.1"
-
-grunt-legacy-log-utils@~0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz#c0706b9dd9064e116f36f23fe4e6b048672c0f7e"
-  dependencies:
-    colors "~0.6.2"
-    lodash "~2.4.1"
-    underscore.string "~2.3.3"
-
-grunt-legacy-log@~0.1.0:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz#ec29426e803021af59029f87d2f9cd7335a05531"
-  dependencies:
-    colors "~0.6.2"
-    grunt-legacy-log-utils "~0.1.1"
-    hooker "~0.2.3"
-    lodash "~2.4.1"
-    underscore.string "~2.3.3"
-
-grunt-legacy-util@~0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz#93324884dbf7e37a9ff7c026dff451d94a9e554b"
-  dependencies:
-    async "~0.1.22"
-    exit "~0.1.1"
-    getobject "~0.1.0"
-    hooker "~0.2.3"
-    lodash "~0.9.2"
-    underscore.string "~2.2.1"
-    which "~1.0.5"
-
-grunt-mocha-istanbul@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/grunt-mocha-istanbul/-/grunt-mocha-istanbul-3.0.1.tgz#a33525707b2fa82eb2f7fb3230513f7ca279bf60"
-
-grunt-mocha-test@^0.12.7:
-  version "0.12.7"
-  resolved "https://registry.yarnpkg.com/grunt-mocha-test/-/grunt-mocha-test-0.12.7.tgz#c61cdf32a6762954115fe712b983e3dd8e0c9554"
-  dependencies:
-    hooker "~0.2.3"
-    mkdirp "^0.5.0"
-
-grunt-webpack@^1.0.11:
-  version "1.0.18"
-  resolved "https://registry.yarnpkg.com/grunt-webpack/-/grunt-webpack-1.0.18.tgz#ff26c43ff35bae6cca707a93c4bcdd950a3ecbb7"
-  dependencies:
-    lodash "^4.7.0"
-
-grunt@^0.4.5:
-  version "0.4.5"
-  resolved "https://registry.yarnpkg.com/grunt/-/grunt-0.4.5.tgz#56937cd5194324adff6d207631832a9d6ba4e7f0"
-  dependencies:
-    async "~0.1.22"
-    coffee-script "~1.3.3"
-    colors "~0.6.2"
-    dateformat "1.0.2-1.2.3"
-    eventemitter2 "~0.4.13"
-    exit "~0.1.1"
-    findup-sync "~0.1.2"
-    getobject "~0.1.0"
-    glob "~3.1.21"
-    grunt-legacy-log "~0.1.0"
-    grunt-legacy-util "~0.2.0"
-    hooker "~0.2.3"
-    iconv-lite "~0.2.11"
-    js-yaml "~2.0.5"
-    lodash "~0.9.2"
-    minimatch "~0.2.12"
-    nopt "~1.0.10"
-    rimraf "~2.2.8"
-    underscore.string "~2.2.1"
-    which "~1.0.5"
-
-grunt@~0.3.9:
-  version "0.3.17"
-  resolved "https://registry.yarnpkg.com/grunt/-/grunt-0.3.17.tgz#f2e034d200befd5eeb38ba5c41d4ccd7235fd64d"
-  dependencies:
-    async "~0.1.18"
-    colors "~0.6.0"
-    connect "~2.4.4"
-    dateformat "1.0.2-1.2.3"
-    glob-whatev "~0.1.4"
-    gzip-js "~0.3.1"
-    hooker "~0.2.3"
-    jshint "~0.9.1"
-    nodeunit "~0.7.4"
-    nopt "~1.0.10"
-    prompt "~0.1.12"
-    semver "~1.0.13"
-    temporary "~0.0.4"
-    uglify-js "~1.3.3"
-    underscore "~1.2.4"
-    underscore.string "~2.1.1"
-
-gzip-js@~0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/gzip-js/-/gzip-js-0.3.2.tgz#23117efeeb28cf385248deff0dffad894836d96b"
-  dependencies:
-    crc32 ">= 0.2.2"
-    deflate-js ">= 0.2.2"
-
-gzip-size@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f"
-  dependencies:
-    browserify-zlib "^0.1.4"
-    concat-stream "^1.4.1"
-
-handlebars@^4.0.0, handlebars@^4.0.1, handlebars@^4.0.3:
-  version "4.0.11"
-  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
-  dependencies:
-    async "^1.4.0"
-    optimist "^0.6.1"
-    source-map "^0.4.4"
-  optionalDependencies:
-    uglify-js "^2.6"
-
-har-schema@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
-
-har-schema@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-
-har-validator@^1.4.0:
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-1.8.0.tgz#d83842b0eb4c435960aeb108a067a3aa94c0eeb2"
-  dependencies:
-    bluebird "^2.9.30"
-    chalk "^1.0.0"
-    commander "^2.8.1"
-    is-my-json-valid "^2.12.0"
-
-har-validator@~2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
-  dependencies:
-    chalk "^1.1.1"
-    commander "^2.9.0"
-    is-my-json-valid "^2.12.4"
-    pinkie-promise "^2.0.0"
-
-har-validator@~4.2.1:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
-  dependencies:
-    ajv "^4.9.1"
-    har-schema "^1.0.5"
-
-har-validator@~5.0.3:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
-  dependencies:
-    ajv "^5.1.0"
-    har-schema "^2.0.0"
-
-has-ansi@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
-  dependencies:
-    ansi-regex "^2.0.0"
-
-has-binary@0.1.7:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
-  dependencies:
-    isarray "0.0.1"
-
-has-cors@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
-
-has-flag@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-has-flag@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-
-has-unicode@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-
-hasha@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
-  dependencies:
-    is-stream "^1.0.1"
-    pinkie-promise "^2.0.0"
-
-hawk@3.1.3, hawk@~3.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
-  dependencies:
-    boom "2.x.x"
-    cryptiles "2.x.x"
-    hoek "2.x.x"
-    sntp "1.x.x"
-
-hawk@~2.3.0:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/hawk/-/hawk-2.3.1.tgz#1e731ce39447fa1d0f6d707f7bceebec0fd1ec1f"
-  dependencies:
-    boom "2.x.x"
-    cryptiles "2.x.x"
-    hoek "2.x.x"
-    sntp "1.x.x"
-
-hawk@~6.0.2:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
-  dependencies:
-    boom "4.x.x"
-    cryptiles "3.x.x"
-    hoek "4.x.x"
-    sntp "2.x.x"
-
-hoek@2.x.x:
-  version "2.16.3"
-  resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-
-hoek@4.x.x:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
-
-home-or-tmp@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
-  dependencies:
-    os-homedir "^1.0.0"
-    os-tmpdir "^1.0.1"
-
-hooker@~0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959"
-
-hosted-git-info@^2.1.4:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
-
-http-errors@1.6.2, http-errors@~1.6.2:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
-  dependencies:
-    depd "1.1.1"
-    inherits "2.0.3"
-    setprototypeof "1.0.3"
-    statuses ">= 1.3.1 < 2"
-
-http-errors@~1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942"
-  dependencies:
-    inherits "~2.0.1"
-    statuses "1"
-
-http-parser-js@>=0.4.0:
-  version "0.4.10"
-  resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
-
-http-proxy-middleware@~0.17.1:
-  version "0.17.4"
-  resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833"
-  dependencies:
-    http-proxy "^1.16.2"
-    is-glob "^3.1.0"
-    lodash "^4.17.2"
-    micromatch "^2.3.11"
-
-http-proxy@^1.13.0, http-proxy@^1.16.2:
-  version "1.16.2"
-  resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742"
-  dependencies:
-    eventemitter3 "1.x.x"
-    requires-port "1.x.x"
-
-http-signature@~0.10.0:
-  version "0.10.1"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66"
-  dependencies:
-    asn1 "0.1.11"
-    assert-plus "^0.1.5"
-    ctype "0.5.3"
-
-http-signature@~1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
-  dependencies:
-    assert-plus "^0.2.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
-
-http-signature@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
-  dependencies:
-    assert-plus "^1.0.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
-
-https-browserify@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
-
-https-proxy-agent@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6"
-  dependencies:
-    agent-base "2"
-    debug "2"
-    extend "3"
-
-iconv-lite@0.4.13:
-  version "0.4.13"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
-
-iconv-lite@0.4.19:
-  version "0.4.19"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-
-iconv-lite@~0.2.11:
-  version "0.2.11"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8"
-
-ieee754@^1.1.4:
-  version "1.1.8"
-  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
-
-imurmurhash@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-
-indent-string@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
-  dependencies:
-    repeating "^2.0.0"
-
-indexof@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
-
-inflight@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  dependencies:
-    once "^1.3.0"
-    wrappy "1"
-
-inherits@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
-
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-inherits@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-
-ini@~1.3.0:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
-
-inquirer@^0.11.0:
-  version "0.11.4"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.11.4.tgz#81e3374e8361beaff2d97016206d359d0b32fa4d"
-  dependencies:
-    ansi-escapes "^1.1.0"
-    ansi-regex "^2.0.0"
-    chalk "^1.0.0"
-    cli-cursor "^1.0.1"
-    cli-width "^1.0.1"
-    figures "^1.3.5"
-    lodash "^3.3.1"
-    readline2 "^1.0.1"
-    run-async "^0.1.0"
-    rx-lite "^3.1.2"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.0"
-    through "^2.3.6"
-
-interpret@^0.6.4:
-  version "0.6.6"
-  resolved "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz#fecd7a18e7ce5ca6abfb953e1f86213a49f1625b"
-
-invariant@^2.2.2:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.3.tgz#1a827dfde7dcbd7c323f0ca826be8fa7c5e9d688"
-  dependencies:
-    loose-envify "^1.0.0"
-
-invert-kv@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
-
-ipaddr.js@1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
-
-is-arrayish@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-
-is-binary-path@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
-  dependencies:
-    binary-extensions "^1.0.0"
-
-is-buffer@^1.1.5:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-
-is-builtin-module@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
-  dependencies:
-    builtin-modules "^1.0.0"
-
-is-dotfile@^1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
-
-is-equal-shallow@^0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
-  dependencies:
-    is-primitive "^2.0.0"
-
-is-extendable@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
-
-is-extglob@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
-
-is-extglob@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
-
-is-finite@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
-  dependencies:
-    number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
-  dependencies:
-    number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-
-is-glob@^2.0.0, is-glob@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
-  dependencies:
-    is-extglob "^1.0.0"
-
-is-glob@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
-  dependencies:
-    is-extglob "^2.1.0"
-
-is-my-ip-valid@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
-
-is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.0, is-my-json-valid@^2.12.4:
-  version "2.17.2"
-  resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c"
-  dependencies:
-    generate-function "^2.0.0"
-    generate-object-property "^1.1.0"
-    is-my-ip-valid "^1.0.0"
-    jsonpointer "^4.0.0"
-    xtend "^4.0.0"
-
-is-number@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806"
-
-is-number@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
-  dependencies:
-    kind-of "^3.0.2"
-
-is-number@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
-  dependencies:
-    kind-of "^3.0.2"
-
-is-path-cwd@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
-
-is-path-in-cwd@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
-  dependencies:
-    is-path-inside "^1.0.0"
-
-is-path-inside@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
-  dependencies:
-    path-is-inside "^1.0.1"
-
-is-posix-bracket@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
-
-is-primitive@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
-
-is-property@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
-is-resolvable@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
-
-is-stream@^1.0.1, is-stream@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-
-is-typedarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-
-is-utf8@^0.2.0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
-
-isarray@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
-
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isbinaryfile@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
-
-isexe@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-
-isobject@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
-  dependencies:
-    isarray "1.0.0"
-
-isstream@~0.1.1, isstream@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-
-istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz#4113c8ff6b7a40a1ef7350b01016331f63afde14"
-
-istanbul-lib-hook@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
-  dependencies:
-    append-transform "^0.4.0"
-
-istanbul-lib-instrument@^1.9.1:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz#84905bf47f7e0b401d6b840da7bad67086b4aab6"
-  dependencies:
-    babel-generator "^6.18.0"
-    babel-template "^6.16.0"
-    babel-traverse "^6.18.0"
-    babel-types "^6.18.0"
-    babylon "^6.18.0"
-    istanbul-lib-coverage "^1.1.2"
-    semver "^5.3.0"
-
-istanbul-lib-report@^1.1.2:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259"
-  dependencies:
-    istanbul-lib-coverage "^1.1.2"
-    mkdirp "^0.5.1"
-    path-parse "^1.0.5"
-    supports-color "^3.1.2"
-
-istanbul-lib-source-maps@^1.2.2:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
-  dependencies:
-    debug "^3.1.0"
-    istanbul-lib-coverage "^1.1.2"
-    mkdirp "^0.5.1"
-    rimraf "^2.6.1"
-    source-map "^0.5.3"
-
-istanbul-reports@^1.1.3:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.4.tgz#5ccba5e22b7b5a5d91d5e0a830f89be334bf97bd"
-  dependencies:
-    handlebars "^4.0.3"
-
-"istanbul@github:kpdecker/istanbul":
-  version "0.4.0"
-  resolved "https://codeload.github.com/kpdecker/istanbul/tar.gz/dd1228d2f0a6e8506cbb5dba398a8297b1dbaf22"
-  dependencies:
-    abbrev "1.0.x"
-    async "1.x"
-    convert-source-map "^1.1.1"
-    escodegen "1.7.x"
-    esprima "2.5.x"
-    fileset "0.2.x"
-    handlebars "^4.0.1"
-    js-yaml "3.x"
-    mkdirp "0.5.x"
-    nopt "3.x"
-    once "1.x"
-    resolve "1.1.x"
-    source-map "^0.4.4"
-    source-map-support "^0.3.2"
-    supports-color "^3.1.0"
-    which "^1.1.1"
-    wordwrap "^1.0.0"
-
-jade@0.26.3:
-  version "0.26.3"
-  resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c"
-  dependencies:
-    commander "0.6.1"
-    mkdirp "0.3.0"
-
-js-tokens@^3.0.0, js-tokens@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-
-js-yaml@3.4.5:
-  version "3.4.5"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.4.5.tgz#c3403797df12b91866574f2de23646fe8cafb44d"
-  dependencies:
-    argparse "^1.0.2"
-    esprima "^2.6.0"
-
-js-yaml@3.6.1:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
-  dependencies:
-    argparse "^1.0.7"
-    esprima "^2.6.0"
-
-js-yaml@3.x, js-yaml@^3.10.0, js-yaml@^3.2.7, js-yaml@^3.3.1:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
-  dependencies:
-    argparse "^1.0.7"
-    esprima "^4.0.0"
-
-js-yaml@~2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-2.0.5.tgz#a25ae6509999e97df278c6719da11bd0687743a8"
-  dependencies:
-    argparse "~ 0.1.11"
-    esprima "~ 1.0.2"
-
-jsbn@~0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-
-jsesc@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
-
-jsesc@~0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
-
-jshint@~0.9.1:
-  version "0.9.1"
-  resolved "https://registry.yarnpkg.com/jshint/-/jshint-0.9.1.tgz#ff32ec7f09f84001f7498eeafd63c9e4fbb2dc0e"
-  dependencies:
-    cli "0.4.3"
-    minimatch "0.0.x"
-
-json-schema-traverse@^0.3.0:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
-
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-
-json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
-  dependencies:
-    jsonify "~0.0.0"
-
-json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-
-json3@3.3.2, json3@^3.3.2:
-  version "3.3.2"
-  resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
-
-json5@^0.5.0, json5@^0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
-
-jsonfile@^2.1.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
-  optionalDependencies:
-    graceful-fs "^4.1.6"
-
-jsonify@~0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
-
-jsonpointer@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
-
-jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  dependencies:
-    assert-plus "1.0.0"
-    extsprintf "1.3.0"
-    json-schema "0.2.3"
-    verror "1.10.0"
-
-karma-mocha-reporter@^2.0.0:
-  version "2.2.5"
-  resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560"
-  dependencies:
-    chalk "^2.1.0"
-    log-symbols "^2.1.0"
-    strip-ansi "^4.0.0"
-
-karma-mocha@^0.2.0:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-0.2.2.tgz#388ed917da15dcb196d1b915c1934ef803193f8e"
-
-karma-phantomjs-launcher@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz#d23ca34801bda9863ad318e3bb4bd4062b13acd2"
-  dependencies:
-    lodash "^4.0.1"
-    phantomjs-prebuilt "^2.1.7"
-
-karma-sauce-launcher@^0.3.0:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/karma-sauce-launcher/-/karma-sauce-launcher-0.3.1.tgz#fa41f6afd1ad6cb7610885da83cbc9921a4d334c"
-  dependencies:
-    q "^1.4.1"
-    sauce-connect-launcher "^0.13.0"
-    saucelabs "^1.0.1"
-    wd "^0.3.4"
-
-karma-sourcemap-loader@^0.3.6:
-  version "0.3.7"
-  resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8"
-  dependencies:
-    graceful-fs "^4.1.2"
-
-karma-webpack@^1.7.0:
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-1.8.1.tgz#39d5fd2edeea3cc3ef5b405989b37d5b0e6a3b4e"
-  dependencies:
-    async "~0.9.0"
-    loader-utils "^0.2.5"
-    lodash "^3.8.0"
-    source-map "^0.1.41"
-    webpack-dev-middleware "^1.0.11"
-
-karma@^0.13.11:
-  version "0.13.22"
-  resolved "https://registry.yarnpkg.com/karma/-/karma-0.13.22.tgz#07750b1bd063d7e7e7b91bcd2e6354d8f2aa8744"
-  dependencies:
-    batch "^0.5.3"
-    bluebird "^2.9.27"
-    body-parser "^1.12.4"
-    chokidar "^1.4.1"
-    colors "^1.1.0"
-    connect "^3.3.5"
-    core-js "^2.1.0"
-    di "^0.0.1"
-    dom-serialize "^2.2.0"
-    expand-braces "^0.1.1"
-    glob "^7.0.0"
-    graceful-fs "^4.1.2"
-    http-proxy "^1.13.0"
-    isbinaryfile "^3.0.0"
-    lodash "^3.8.0"
-    log4js "^0.6.31"
-    mime "^1.3.4"
-    minimatch "^3.0.0"
-    optimist "^0.6.1"
-    rimraf "^2.3.3"
-    socket.io "^1.4.5"
-    source-map "^0.5.3"
-    useragent "^2.1.6"
-
-kew@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
-
-kind-of@^3.0.2:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
-  dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
-  dependencies:
-    is-buffer "^1.1.5"
-
-klaw@^1.0.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
-  optionalDependencies:
-    graceful-fs "^4.1.9"
-
-lazy-cache@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
-lazystream@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-0.1.0.tgz#1b25d63c772a4c20f0a5ed0a9d77f484b6e16920"
-  dependencies:
-    readable-stream "~1.0.2"
-
-lcid@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
-  dependencies:
-    invert-kv "^1.0.0"
-
-lcov-parse@0.0.10:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
-
-levn@~0.2.5:
-  version "0.2.5"
-  resolved "https://registry.yarnpkg.com/levn/-/levn-0.2.5.tgz#ba8d339d0ca4a610e3a3f145b9caf48807155054"
-  dependencies:
-    prelude-ls "~1.1.0"
-    type-check "~0.3.1"
-
-livereload-js@^2.2.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.3.0.tgz#c3ab22e8aaf5bf3505d80d098cbad67726548c9a"
-
-load-json-file@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
-  dependencies:
-    graceful-fs "^4.1.2"
-    parse-json "^2.2.0"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-    strip-bom "^2.0.0"
-
-loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.5:
-  version "0.2.17"
-  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
-  dependencies:
-    big.js "^3.1.3"
-    emojis-list "^2.0.0"
-    json5 "^0.5.0"
-    object-assign "^4.0.1"
-
-locate-path@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
-  dependencies:
-    p-locate "^2.0.0"
-    path-exists "^3.0.0"
-
-lodash._arraycopy@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1"
-
-lodash._arrayeach@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e"
-
-lodash._arraymap@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz#1a8fd0f4c0df4b61dea076d717cdc97f0a3c3e66"
-
-lodash._baseassign@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
-  dependencies:
-    lodash._basecopy "^3.0.0"
-    lodash.keys "^3.0.0"
-
-lodash._baseclone@^3.0.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7"
-  dependencies:
-    lodash._arraycopy "^3.0.0"
-    lodash._arrayeach "^3.0.0"
-    lodash._baseassign "^3.0.0"
-    lodash._basefor "^3.0.0"
-    lodash.isarray "^3.0.0"
-    lodash.keys "^3.0.0"
-
-lodash._basecopy@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
-
-lodash._basedifference@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz#f2c204296c2a78e02b389081b6edcac933cf629c"
-  dependencies:
-    lodash._baseindexof "^3.0.0"
-    lodash._cacheindexof "^3.0.0"
-    lodash._createcache "^3.0.0"
-
-lodash._baseflatten@^3.0.0:
-  version "3.1.4"
-  resolved "https://registry.yarnpkg.com/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz#0770ff80131af6e34f3b511796a7ba5214e65ff7"
-  dependencies:
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-
-lodash._basefor@^3.0.0:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
-
-lodash._baseindexof@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
-
-lodash._bindcallback@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
-
-lodash._cacheindexof@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
-
-lodash._createassigner@^3.0.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11"
-  dependencies:
-    lodash._bindcallback "^3.0.0"
-    lodash._isiterateecall "^3.0.0"
-    lodash.restparam "^3.0.0"
-
-lodash._createcache@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
-  dependencies:
-    lodash._getnative "^3.0.0"
-
-lodash._getnative@^3.0.0:
-  version "3.9.1"
-  resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-
-lodash._isiterateecall@^3.0.0:
-  version "3.0.9"
-  resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-
-lodash._pickbyarray@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz#1f898d9607eb560b0e167384b77c7c6d108aa4c5"
-
-lodash._pickbycallback@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz#ff61b9a017a7b3af7d30e6c53de28afa19b8750a"
-  dependencies:
-    lodash._basefor "^3.0.0"
-    lodash.keysin "^3.0.0"
-
-lodash.clonedeep@^3.0.1:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db"
-  dependencies:
-    lodash._baseclone "^3.0.0"
-    lodash._bindcallback "^3.0.0"
-
-lodash.isarguments@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-
-lodash.isarray@^3.0.0:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-
-lodash.isplainobject@^3.0.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5"
-  dependencies:
-    lodash._basefor "^3.0.0"
-    lodash.isarguments "^3.0.0"
-    lodash.keysin "^3.0.0"
-
-lodash.istypedarray@^3.0.0:
-  version "3.0.6"
-  resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62"
-
-lodash.keys@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
-  dependencies:
-    lodash._getnative "^3.0.0"
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-
-lodash.keysin@^3.0.0:
-  version "3.0.8"
-  resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f"
-  dependencies:
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-
-lodash.merge@^3.3.2:
-  version "3.3.2"
-  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994"
-  dependencies:
-    lodash._arraycopy "^3.0.0"
-    lodash._arrayeach "^3.0.0"
-    lodash._createassigner "^3.0.0"
-    lodash._getnative "^3.0.0"
-    lodash.isarguments "^3.0.0"
-    lodash.isarray "^3.0.0"
-    lodash.isplainobject "^3.0.0"
-    lodash.istypedarray "^3.0.0"
-    lodash.keys "^3.0.0"
-    lodash.keysin "^3.0.0"
-    lodash.toplainobject "^3.0.0"
-
-lodash.omit@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-3.1.0.tgz#897fe382e6413d9ac97c61f78ed1e057a00af9f3"
-  dependencies:
-    lodash._arraymap "^3.0.0"
-    lodash._basedifference "^3.0.0"
-    lodash._baseflatten "^3.0.0"
-    lodash._bindcallback "^3.0.0"
-    lodash._pickbyarray "^3.0.0"
-    lodash._pickbycallback "^3.0.0"
-    lodash.keysin "^3.0.0"
-    lodash.restparam "^3.0.0"
-
-lodash.restparam@^3.0.0:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
-
-lodash.toplainobject@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d"
-  dependencies:
-    lodash._basecopy "^3.0.0"
-    lodash.keysin "^3.0.0"
-
-lodash@3.10.1, lodash@^3.10.1, lodash@^3.3.1, lodash@^3.8.0:
-  version "3.10.1"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-
-lodash@^4.0.1, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.7.0, lodash@~4.17.4:
-  version "4.17.5"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
-
-lodash@~0.9.2:
-  version "0.9.2"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-0.9.2.tgz#8f3499c5245d346d682e5b0d3b40767e09f1a92c"
-
-lodash@~2.4.1:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e"
-
-lodash@~3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.2.0.tgz#4bf50a3243f9aeb0bac41a55d3d5990675a462fb"
-
-lodash@~3.9.3:
-  version "3.9.3"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.9.3.tgz#0159e86832feffc6d61d852b12a953b99496bd32"
-
-log-driver@1.2.5:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
-
-log-symbols@^2.1.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
-  dependencies:
-    chalk "^2.0.1"
-
-log4js@^0.6.31:
-  version "0.6.38"
-  resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd"
-  dependencies:
-    readable-stream "~1.0.2"
-    semver "~4.3.3"
-
-"loggly@0.3.x >=0.3.7":
-  version "0.3.11"
-  resolved "https://registry.yarnpkg.com/loggly/-/loggly-0.3.11.tgz#62c1ec3436772f0954598f26b957d2ad2986b611"
-  dependencies:
-    request "2.9.x"
-    timespan "2.x.x"
-
-longest@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
-loose-envify@^1.0.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
-  dependencies:
-    js-tokens "^3.0.0"
-
-loud-rejection@^1.0.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
-  dependencies:
-    currently-unhandled "^0.4.1"
-    signal-exit "^3.0.0"
-
-lru-cache@2:
-  version "2.7.3"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
-
-lru-cache@4.1.x, lru-cache@^4.0.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
-  dependencies:
-    pseudomap "^1.0.2"
-    yallist "^2.1.2"
-
-lru-cache@~1.0.2:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-1.0.6.tgz#aa50f97047422ac72543bda177a9c9d018d98452"
-
-map-obj@^1.0.0, map-obj@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
-
-maxmin@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61"
-  dependencies:
-    chalk "^1.0.0"
-    figures "^1.0.1"
-    gzip-size "^1.0.0"
-    pretty-bytes "^1.0.0"
-
-md5-hex@^1.2.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
-  dependencies:
-    md5-o-matic "^0.1.1"
-
-md5-o-matic@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
-
-media-typer@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
-
-mem@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
-  dependencies:
-    mimic-fn "^1.0.0"
-
-memory-fs@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
-
-memory-fs@~0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20"
-  dependencies:
-    errno "^0.1.3"
-    readable-stream "^2.0.1"
-
-memory-fs@~0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
-  dependencies:
-    errno "^0.1.3"
-    readable-stream "^2.0.1"
-
-meow@^3.1.0:
-  version "3.7.0"
-  resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
-  dependencies:
-    camelcase-keys "^2.0.0"
-    decamelize "^1.1.2"
-    loud-rejection "^1.0.0"
-    map-obj "^1.0.1"
-    minimist "^1.1.3"
-    normalize-package-data "^2.3.4"
-    object-assign "^4.0.1"
-    read-pkg-up "^1.0.1"
-    redent "^1.0.0"
-    trim-newlines "^1.0.0"
-
-merge-descriptors@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-
-merge-source-map@^1.0.2:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
-  dependencies:
-    source-map "^0.6.1"
-
-methods@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-
-micromatch@^2.1.5, micromatch@^2.3.11:
-  version "2.3.11"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
-  dependencies:
-    arr-diff "^2.0.0"
-    array-unique "^0.2.1"
-    braces "^1.8.2"
-    expand-brackets "^0.1.4"
-    extglob "^0.3.1"
-    filename-regex "^2.0.0"
-    is-extglob "^1.0.0"
-    is-glob "^2.0.1"
-    kind-of "^3.0.2"
-    normalize-path "^2.0.1"
-    object.omit "^2.0.0"
-    parse-glob "^3.0.4"
-    regex-cache "^0.4.2"
-
-"mime-db@>= 1.33.0 < 2", mime-db@~1.33.0:
-  version "1.33.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
-
-mime-db@~1.12.0:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7"
-
-mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7:
-  version "2.1.18"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
-  dependencies:
-    mime-db "~1.33.0"
-
-mime-types@~2.0.1, mime-types@~2.0.3:
-  version "2.0.14"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6"
-  dependencies:
-    mime-db "~1.12.0"
-
-mime@1.2.6:
-  version "1.2.6"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.6.tgz#b1f86c768c025fa87b48075f1709f28aeaf20365"
-
-mime@1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-
-mime@^1.3.4, mime@^1.5.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
-
-mimic-fn@^1.0.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
-
-minimatch@0.0.x:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.0.5.tgz#96bb490bbd3ba6836bbfac111adf75301b1584de"
-  dependencies:
-    lru-cache "~1.0.2"
-
-minimatch@0.3:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
-  dependencies:
-    lru-cache "2"
-    sigmund "~1.0.0"
-
-"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
-  dependencies:
-    brace-expansion "^1.1.7"
-
-minimatch@2.x, minimatch@^2.0.1:
-  version "2.0.10"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
-  dependencies:
-    brace-expansion "^1.0.0"
-
-minimatch@~0.2.11, minimatch@~0.2.12, minimatch@~0.2.5:
-  version "0.2.14"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
-  dependencies:
-    lru-cache "2"
-    sigmund "~1.0.0"
-
-minimist@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-minimist@~0.0.1:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-minipass@^2.2.0, minipass@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.1.tgz#5ada97538b1027b4cf7213432428578cb564011f"
-  dependencies:
-    yallist "^3.0.0"
-
-mkdirp@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
-
-mkdirp@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
-  dependencies:
-    minimist "0.0.8"
-
-mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
-  dependencies:
-    minimist "0.0.8"
-
-mocha@^2.3.3:
-  version "2.5.3"
-  resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58"
-  dependencies:
-    commander "2.3.0"
-    debug "2.2.0"
-    diff "1.4.0"
-    escape-string-regexp "1.0.2"
-    glob "3.2.11"
-    growl "1.9.2"
-    jade "0.26.3"
-    mkdirp "0.5.1"
-    supports-color "1.2.0"
-    to-iso-string "0.0.2"
-
-modify-babel-preset@2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/modify-babel-preset/-/modify-babel-preset-2.0.2.tgz#bfa509669fe49f4222c0ce171ba44ed0e81551e7"
-  dependencies:
-    require-relative "^0.8.7"
-
-ms@0.7.1:
-  version "0.7.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
-ms@0.7.2:
-  version "0.7.2"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
-
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-
-mute-stream@0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
-
-nan@^2.3.0:
-  version "2.9.2"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.9.2.tgz#f564d75f5f8f36a6d9456cca7a6c4fe488ab7866"
-
-negotiator@0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
-
-node-int64@~0.3.0:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.3.3.tgz#2d6e6b2ece5de8588b43d88d1bc41b26cd1fa84d"
-
-node-libs-browser@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-0.7.0.tgz#3e272c0819e308935e26674408d7af0e1491b83b"
-  dependencies:
-    assert "^1.1.1"
-    browserify-zlib "^0.1.4"
-    buffer "^4.9.0"
-    console-browserify "^1.1.0"
-    constants-browserify "^1.0.0"
-    crypto-browserify "3.3.0"
-    domain-browser "^1.1.1"
-    events "^1.0.0"
-    https-browserify "0.0.1"
-    os-browserify "^0.2.0"
-    path-browserify "0.0.0"
-    process "^0.11.0"
-    punycode "^1.2.4"
-    querystring-es3 "^0.2.0"
-    readable-stream "^2.0.5"
-    stream-browserify "^2.0.1"
-    stream-http "^2.3.1"
-    string_decoder "^0.10.25"
-    timers-browserify "^2.0.2"
-    tty-browserify "0.0.0"
-    url "^0.11.0"
-    util "^0.10.3"
-    vm-browserify "0.0.4"
-
-node-pre-gyp@^0.6.39:
-  version "0.6.39"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
-  dependencies:
-    detect-libc "^1.0.2"
-    hawk "3.1.3"
-    mkdirp "^0.5.1"
-    nopt "^4.0.1"
-    npmlog "^4.0.2"
-    rc "^1.1.7"
-    request "2.81.0"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^2.2.1"
-    tar-pack "^3.4.0"
-
-node-uuid@~1.4.0:
-  version "1.4.8"
-  resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
-
-nodeunit@~0.7.4:
-  version "0.7.4"
-  resolved "https://registry.yarnpkg.com/nodeunit/-/nodeunit-0.7.4.tgz#c908def7f299fbe65ff7ac888782955c46aae9f8"
-  dependencies:
-    tap ">=0.2.3"
-
-nopt@3.x:
-  version "3.0.6"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
-  dependencies:
-    abbrev "1"
-
-nopt@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
-  dependencies:
-    abbrev "1"
-    osenv "^0.1.4"
-
-nopt@~1.0.10:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
-  dependencies:
-    abbrev "1"
-
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
-  dependencies:
-    hosted-git-info "^2.1.4"
-    is-builtin-module "^1.0.0"
-    semver "2 || 3 || 4 || 5"
-    validate-npm-package-license "^3.0.1"
-
-normalize-path@^2.0.0, normalize-path@^2.0.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
-  dependencies:
-    remove-trailing-separator "^1.0.1"
-
-npm-run-path@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
-  dependencies:
-    path-key "^2.0.0"
-
-npmlog@^4.0.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
-  dependencies:
-    are-we-there-yet "~1.1.2"
-    console-control-strings "~1.1.0"
-    gauge "~2.7.3"
-    set-blocking "~2.0.0"
-
-number-is-nan@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-
-nyc@^11.3.0:
-  version "11.4.1"
-  resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.4.1.tgz#13fdf7e7ef22d027c61d174758f6978a68f4f5e5"
-  dependencies:
-    archy "^1.0.0"
-    arrify "^1.0.1"
-    caching-transform "^1.0.0"
-    convert-source-map "^1.3.0"
-    debug-log "^1.0.1"
-    default-require-extensions "^1.0.0"
-    find-cache-dir "^0.1.1"
-    find-up "^2.1.0"
-    foreground-child "^1.5.3"
-    glob "^7.0.6"
-    istanbul-lib-coverage "^1.1.1"
-    istanbul-lib-hook "^1.1.0"
-    istanbul-lib-instrument "^1.9.1"
-    istanbul-lib-report "^1.1.2"
-    istanbul-lib-source-maps "^1.2.2"
-    istanbul-reports "^1.1.3"
-    md5-hex "^1.2.0"
-    merge-source-map "^1.0.2"
-    micromatch "^2.3.11"
-    mkdirp "^0.5.0"
-    resolve-from "^2.0.0"
-    rimraf "^2.5.4"
-    signal-exit "^3.0.1"
-    spawn-wrap "^1.4.2"
-    test-exclude "^4.1.1"
-    yargs "^10.0.3"
-    yargs-parser "^8.0.0"
-
-oauth-sign@~0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.6.0.tgz#7dbeae44f6ca454e1f168451d630746735813ce3"
-
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-
-object-assign@4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
-
-object-assign@^4.0.1, object-assign@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
-object-component@0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
-
-object.omit@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
-  dependencies:
-    for-own "^0.1.4"
-    is-extendable "^0.1.1"
-
-on-finished@~2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
-  dependencies:
-    ee-first "1.1.1"
-
-on-headers@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
-
-once@1.x, once@^1.3.0, once@^1.3.3, once@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  dependencies:
-    wrappy "1"
-
-onetime@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
-
-open@0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
-
-opener@^1.4.1:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
-
-optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
-  dependencies:
-    minimist "~0.0.1"
-    wordwrap "~0.0.2"
-
-optionator@^0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.5.0.tgz#b75a8995a2d417df25b6e4e3862f50aa88651368"
-  dependencies:
-    deep-is "~0.1.2"
-    fast-levenshtein "~1.0.0"
-    levn "~0.2.5"
-    prelude-ls "~1.1.1"
-    type-check "~0.3.1"
-    wordwrap "~0.0.2"
-
-optionator@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.6.0.tgz#b63ecbbf0e315fad4bc9827b45dc7ba45284fcb6"
-  dependencies:
-    deep-is "~0.1.3"
-    fast-levenshtein "~1.0.6"
-    levn "~0.2.5"
-    prelude-ls "~1.1.1"
-    type-check "~0.3.1"
-    wordwrap "~0.0.2"
-
-options@>=0.0.5:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
-
-original@>=0.0.5:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b"
-  dependencies:
-    url-parse "1.0.x"
-
-os-browserify@^0.2.0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f"
-
-os-homedir@^1.0.0, os-homedir@^1.0.1, os-homedir@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-os-locale@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
-  dependencies:
-    execa "^0.7.0"
-    lcid "^1.0.0"
-    mem "^1.1.0"
-
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-
-osenv@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
-  dependencies:
-    os-homedir "^1.0.0"
-    os-tmpdir "^1.0.0"
-
-own-or-env@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/own-or-env/-/own-or-env-1.0.1.tgz#54ce601d3bf78236c5c65633aa1c8ec03f8007e4"
-  dependencies:
-    own-or "^1.0.0"
-
-own-or@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/own-or/-/own-or-1.0.0.tgz#4e877fbeda9a2ec8000fbc0bcae39645ee8bf8dc"
-
-p-finally@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
-
-p-limit@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
-  dependencies:
-    p-try "^1.0.0"
-
-p-locate@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
-  dependencies:
-    p-limit "^1.1.0"
-
-p-try@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
-
-"package@>= 1.0.0 < 1.2.0":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/package/-/package-1.0.1.tgz#d25a1f99e2506dcb27d6704b83dca8a312e4edcc"
-
-pako@~0.2.0:
-  version "0.2.9"
-  resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
-
-parse-glob@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
-  dependencies:
-    glob-base "^0.3.0"
-    is-dotfile "^1.0.0"
-    is-extglob "^1.0.0"
-    is-glob "^2.0.0"
-
-parse-json@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
-  dependencies:
-    error-ex "^1.2.0"
-
-parsejson@0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
-  dependencies:
-    better-assert "~1.0.0"
-
-parseqs@0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
-  dependencies:
-    better-assert "~1.0.0"
-
-parseuri@0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
-  dependencies:
-    better-assert "~1.0.0"
-
-parseurl@~1.3.0, parseurl@~1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
-
-path-browserify@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
-
-path-exists@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
-  dependencies:
-    pinkie-promise "^2.0.0"
-
-path-exists@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-is-inside@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-
-path-key@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
-
-path-parse@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-
-path-to-regexp@0.1.7:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-
-path-type@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
-  dependencies:
-    graceful-fs "^4.1.2"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-
-pause@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
-
-pbkdf2-compat@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz#b6e0c8fa99494d94e0511575802a59a5c142f288"
-
-pend@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-
-performance-now@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
-
-performance-now@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-
-phantomjs-prebuilt@^2.1.5, phantomjs-prebuilt@^2.1.7:
-  version "2.1.16"
-  resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
-  dependencies:
-    es6-promise "^4.0.3"
-    extract-zip "^1.6.5"
-    fs-extra "^1.0.0"
-    hasha "^2.2.0"
-    kew "^0.7.0"
-    progress "^1.1.8"
-    request "^2.81.0"
-    request-progress "^2.0.1"
-    which "^1.2.10"
-
-pify@^2.0.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-
-pinkie-promise@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
-  dependencies:
-    pinkie "^2.0.0"
-
-pinkie@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-
-pkg-dir@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
-  dependencies:
-    find-up "^1.0.0"
-
-pkginfo@0.2.x:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8"
-
-pkginfo@0.x.x:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff"
-
-prelude-ls@~1.1.0, prelude-ls@~1.1.1, prelude-ls@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-
-preserve@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-
-pretty-bytes@^1.0.0:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
-  dependencies:
-    get-stdin "^4.0.1"
-    meow "^3.1.0"
-
-private@^0.1.6, private@^0.1.7, private@~0.1.5:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
-
-process-nextick-args@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
-
-process@^0.11.0:
-  version "0.11.10"
-  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
-
-progress@^1.1.8:
-  version "1.1.8"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-
-prompt@~0.1.12:
-  version "0.1.12"
-  resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.1.12.tgz#d3114e4fb985ac66eaa35586dcb7b3fb3b27bfc6"
-  dependencies:
-    async "0.1.x"
-    colors "0.x.x"
-    pkginfo "0.x.x"
-    winston "0.5.x"
-
-proxy-addr@~2.0.2:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
-  dependencies:
-    forwarded "~0.1.2"
-    ipaddr.js "1.6.0"
-
-prr@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
-
-pseudomap@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
-
-punycode@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-
-punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
-q@^1.4.1:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
-
-q@~1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-
-qs@0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-0.5.1.tgz#9f6bf5d9ac6c76384e95d36d15b48980e5e4add0"
-
-qs@5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz#a9f31142af468cb72b25b30136ba2456834916be"
-
-qs@6.5.1, qs@~6.5.1:
-  version "6.5.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-qs@~2.4.0:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-2.4.2.tgz#f7ce788e5777df0b5010da7f7c4e73ba32470f5a"
-
-qs@~5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-5.1.0.tgz#4d932e5c7ea411cca76a312d39a606200fd50cd9"
-
-qs@~6.3.0:
-  version "6.3.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
-
-qs@~6.4.0:
-  version "6.4.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
-
-querystring-es3@^0.2.0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
-
-querystring@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-
-querystringify@0.0.x:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c"
-
-querystringify@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb"
-
-randomatic@^1.1.3:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
-  dependencies:
-    is-number "^3.0.0"
-    kind-of "^4.0.0"
-
-range-parser@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-0.0.4.tgz#c0427ffef51c10acba0782a46c9602e744ff620b"
-
-range-parser@^1.0.3, range-parser@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
-
-raw-body@2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
-  dependencies:
-    bytes "3.0.0"
-    http-errors "1.6.2"
-    iconv-lite "0.4.19"
-    unpipe "1.0.0"
-
-raw-body@~2.1.5:
-  version "2.1.7"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz#adfeace2e4fb3098058014d08c072dcc59758774"
-  dependencies:
-    bytes "2.4.0"
-    iconv-lite "0.4.13"
-    unpipe "1.0.0"
-
-rc@^1.1.7:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd"
-  dependencies:
-    deep-extend "~0.4.0"
-    ini "~1.3.0"
-    minimist "^1.2.0"
-    strip-json-comments "~2.0.1"
-
-read-pkg-up@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
-  dependencies:
-    find-up "^1.0.0"
-    read-pkg "^1.0.0"
-
-read-pkg@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
-  dependencies:
-    load-json-file "^1.0.0"
-    normalize-package-data "^2.3.2"
-    path-type "^1.0.0"
-
-readable-stream@^2, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3:
-  version "2.3.5"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.3"
-    isarray "~1.0.0"
-    process-nextick-args "~2.0.0"
-    safe-buffer "~5.1.1"
-    string_decoder "~1.0.3"
-    util-deprecate "~1.0.1"
-
-readable-stream@~1.0.2, readable-stream@~1.0.24, readable-stream@~1.0.26, readable-stream@~1.0.33:
-  version "1.0.34"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.1"
-    isarray "0.0.1"
-    string_decoder "~0.10.x"
-
-readdirp@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
-  dependencies:
-    graceful-fs "^4.1.2"
-    minimatch "^3.0.2"
-    readable-stream "^2.0.2"
-    set-immediate-shim "^1.0.1"
-
-readline2@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    mute-stream "0.0.5"
-
-redent@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
-  dependencies:
-    indent-string "^2.1.0"
-    strip-indent "^1.0.1"
-
-regenerate@^1.2.1:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
-
-regenerator-runtime@^0.11.0:
-  version "0.11.1"
-  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
-
-regenerator-transform@^0.10.0:
-  version "0.10.1"
-  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
-  dependencies:
-    babel-runtime "^6.18.0"
-    babel-types "^6.19.0"
-    private "^0.1.6"
-
-regex-cache@^0.4.2:
-  version "0.4.4"
-  resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
-  dependencies:
-    is-equal-shallow "^0.1.3"
-
-regexpu-core@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
-  dependencies:
-    regenerate "^1.2.1"
-    regjsgen "^0.2.0"
-    regjsparser "^0.1.4"
-
-regjsgen@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
-
-regjsparser@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
-  dependencies:
-    jsesc "~0.5.0"
-
-remove-trailing-separator@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
-
-repeat-element@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
-
-repeat-string@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae"
-
-repeat-string@^1.5.2:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-
-repeating@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
-  dependencies:
-    is-finite "^1.0.0"
-
-request-progress@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
-  dependencies:
-    throttleit "^1.0.0"
-
-request@2.79.0:
-  version "2.79.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
-  dependencies:
-    aws-sign2 "~0.6.0"
-    aws4 "^1.2.1"
-    caseless "~0.11.0"
-    combined-stream "~1.0.5"
-    extend "~3.0.0"
-    forever-agent "~0.6.1"
-    form-data "~2.1.1"
-    har-validator "~2.0.6"
-    hawk "~3.1.3"
-    http-signature "~1.1.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.7"
-    oauth-sign "~0.8.1"
-    qs "~6.3.0"
-    stringstream "~0.0.4"
-    tough-cookie "~2.3.0"
-    tunnel-agent "~0.4.1"
-    uuid "^3.0.0"
-
-request@2.81.0:
-  version "2.81.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
-  dependencies:
-    aws-sign2 "~0.6.0"
-    aws4 "^1.2.1"
-    caseless "~0.12.0"
-    combined-stream "~1.0.5"
-    extend "~3.0.0"
-    forever-agent "~0.6.1"
-    form-data "~2.1.1"
-    har-validator "~4.2.1"
-    hawk "~3.1.3"
-    http-signature "~1.1.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.7"
-    oauth-sign "~0.8.1"
-    performance-now "^0.2.0"
-    qs "~6.4.0"
-    safe-buffer "^5.0.1"
-    stringstream "~0.0.4"
-    tough-cookie "~2.3.0"
-    tunnel-agent "^0.6.0"
-    uuid "^3.0.0"
-
-request@2.9.x:
-  version "2.9.203"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.9.203.tgz#6c1711a5407fb94a114219563e44145bcbf4723a"
-
-request@^2.81.0:
-  version "2.83.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.6.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.5"
-    extend "~3.0.1"
-    forever-agent "~0.6.1"
-    form-data "~2.3.1"
-    har-validator "~5.0.3"
-    hawk "~6.0.2"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.17"
-    oauth-sign "~0.8.2"
-    performance-now "^2.1.0"
-    qs "~6.5.1"
-    safe-buffer "^5.1.1"
-    stringstream "~0.0.5"
-    tough-cookie "~2.3.3"
-    tunnel-agent "^0.6.0"
-    uuid "^3.1.0"
-
-request@~2.55.0:
-  version "2.55.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.55.0.tgz#d75c1cdf679d76bb100f9bffe1fe551b5c24e93d"
-  dependencies:
-    aws-sign2 "~0.5.0"
-    bl "~0.9.0"
-    caseless "~0.9.0"
-    combined-stream "~0.0.5"
-    forever-agent "~0.6.0"
-    form-data "~0.2.0"
-    har-validator "^1.4.0"
-    hawk "~2.3.0"
-    http-signature "~0.10.0"
-    isstream "~0.1.1"
-    json-stringify-safe "~5.0.0"
-    mime-types "~2.0.1"
-    node-uuid "~1.4.0"
-    oauth-sign "~0.6.0"
-    qs "~2.4.0"
-    stringstream "~0.0.4"
-    tough-cookie ">=0.12.0"
-    tunnel-agent "~0.4.0"
-
-require-directory@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-
-require-main-filename@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
-
-require-relative@^0.8.7:
-  version "0.8.7"
-  resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
-
-requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
-
-resolve-from@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
-
-resolve@1.1.x:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
-resolve@~0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4"
-
-restore-cursor@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
-  dependencies:
-    exit-hook "^1.0.0"
-    onetime "^1.0.0"
-
-right-align@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
-  dependencies:
-    align-text "^0.1.1"
-
-rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
-  dependencies:
-    glob "^7.0.5"
-
-rimraf@2.4.3:
-  version "2.4.3"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.3.tgz#e5b51c9437a4c582adb955e9f28cf8d945e272af"
-  dependencies:
-    glob "^5.0.14"
-
-rimraf@~2.2.8:
-  version "2.2.8"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
-
-ripemd160@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce"
-
-run-async@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
-  dependencies:
-    once "^1.3.0"
-
-rx-lite@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
-
-safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-
-sauce-connect-launcher@^0.13.0:
-  version "0.13.0"
-  resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-0.13.0.tgz#25d7df9da16a5ed1caa13df424cb57cb0b6d5a22"
-  dependencies:
-    adm-zip "~0.4.3"
-    async "1.4.0"
-    lodash "3.10.1"
-    rimraf "2.4.3"
-
-saucelabs@^1.0.1:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.4.0.tgz#b934a9af9da2874b3f40aae1fcde50a4466f5f38"
-  dependencies:
-    https-proxy-agent "^1.0.0"
-
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
-
-semver@~1.0.13:
-  version "1.0.14"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-1.0.14.tgz#cac5e2d55a6fbf958cb220ae844045071c78f676"
-
-semver@~4.3.3:
-  version "4.3.6"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-
-semver@~5.0.1:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a"
-
-send@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/send/-/send-0.0.4.tgz#2d4cf79b189fcd09610e1302510ac9b0e4dde800"
-  dependencies:
-    debug "*"
-    fresh "0.1.0"
-    mime "1.2.6"
-    range-parser "0.0.4"
-
-send@0.16.1:
-  version "0.16.1"
-  resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3"
-  dependencies:
-    debug "2.6.9"
-    depd "~1.1.1"
-    destroy "~1.0.4"
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    fresh "0.5.2"
-    http-errors "~1.6.2"
-    mime "1.4.1"
-    ms "2.0.0"
-    on-finished "~2.3.0"
-    range-parser "~1.2.0"
-    statuses "~1.3.1"
-
-serve-index@^1.7.2:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
-  dependencies:
-    accepts "~1.3.4"
-    batch "0.6.1"
-    debug "2.6.9"
-    escape-html "~1.0.3"
-    http-errors "~1.6.2"
-    mime-types "~2.1.17"
-    parseurl "~1.3.2"
-
-serve-static@1.13.1:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719"
-  dependencies:
-    encodeurl "~1.0.1"
-    escape-html "~1.0.3"
-    parseurl "~1.3.2"
-    send "0.16.1"
-
-set-blocking@^2.0.0, set-blocking@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-
-set-immediate-shim@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
-
-setimmediate@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-
-setprototypeof@1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-
-setprototypeof@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
-
-sha.js@2.2.6:
-  version "2.2.6"
-  resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba"
-
-shebang-command@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
-  dependencies:
-    shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-
-shelljs@^0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.5.3.tgz#c54982b996c76ef0c1e6b59fbdc5825f5b713113"
-
-sigmund@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
-
-signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-
-slash@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
-
-slide@^1.1.5:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
-
-sntp@1.x.x:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
-  dependencies:
-    hoek "2.x.x"
-
-sntp@2.x.x:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
-  dependencies:
-    hoek "4.x.x"
-
-socket.io-adapter@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
-  dependencies:
-    debug "2.3.3"
-    socket.io-parser "2.3.1"
-
-socket.io-client@1.7.4:
-  version "1.7.4"
-  resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281"
-  dependencies:
-    backo2 "1.0.2"
-    component-bind "1.0.0"
-    component-emitter "1.2.1"
-    debug "2.3.3"
-    engine.io-client "~1.8.4"
-    has-binary "0.1.7"
-    indexof "0.0.1"
-    object-component "0.0.3"
-    parseuri "0.0.5"
-    socket.io-parser "2.3.1"
-    to-array "0.1.4"
-
-socket.io-parser@2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
-  dependencies:
-    component-emitter "1.1.2"
-    debug "2.2.0"
-    isarray "0.0.1"
-    json3 "3.3.2"
-
-socket.io@^1.4.5:
-  version "1.7.4"
-  resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz#2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00"
-  dependencies:
-    debug "2.3.3"
-    engine.io "~1.8.4"
-    has-binary "0.1.7"
-    object-assign "4.1.0"
-    socket.io-adapter "0.5.0"
-    socket.io-client "1.7.4"
-    socket.io-parser "2.3.1"
-
-sockjs-client@^1.0.3:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12"
-  dependencies:
-    debug "^2.6.6"
-    eventsource "0.1.6"
-    faye-websocket "~0.11.0"
-    inherits "^2.0.1"
-    json3 "^3.3.2"
-    url-parse "^1.1.8"
-
-sockjs@^0.3.15:
-  version "0.3.19"
-  resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
-  dependencies:
-    faye-websocket "^0.10.0"
-    uuid "^3.0.1"
-
-source-list-map@~0.1.7:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
-
-source-map-support@^0.3.2:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f"
-  dependencies:
-    source-map "0.1.32"
-
-source-map-support@^0.4.15, source-map-support@^0.4.18:
-  version "0.4.18"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
-  dependencies:
-    source-map "^0.5.6"
-
-source-map@0.1.32:
-  version "0.1.32"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266"
-  dependencies:
-    amdefine ">=0.0.4"
-
-source-map@^0.1.41:
-  version "0.1.43"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
-  dependencies:
-    amdefine ">=0.0.4"
-
-source-map@^0.4.4, source-map@~0.4.1:
-  version "0.4.4"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
-  dependencies:
-    amdefine ">=0.0.4"
-
-source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
-  version "0.5.7"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-
-source-map@^0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
-
-source-map@~0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
-  dependencies:
-    amdefine ">=0.0.4"
-
-spawn-wrap@^1.4.2:
-  version "1.4.2"
-  resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c"
-  dependencies:
-    foreground-child "^1.5.6"
-    mkdirp "^0.5.0"
-    os-homedir "^1.0.1"
-    rimraf "^2.6.2"
-    signal-exit "^3.0.2"
-    which "^1.3.0"
-
-spdx-correct@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
-  dependencies:
-    spdx-expression-parse "^3.0.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
-
-spdx-expression-parse@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
-  dependencies:
-    spdx-exceptions "^2.1.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
-
-sprintf-js@~1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-
-sshpk@^1.7.0:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
-  dependencies:
-    asn1 "~0.2.3"
-    assert-plus "^1.0.0"
-    dashdash "^1.12.0"
-    getpass "^0.1.1"
-  optionalDependencies:
-    bcrypt-pbkdf "^1.0.0"
-    ecc-jsbn "~0.1.1"
-    jsbn "~0.1.0"
-    tweetnacl "~0.14.0"
-
-stack-trace@0.0.x:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
-
-stack-utils@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
-
-statuses@1, "statuses@>= 1.3.1 < 2":
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
-
-statuses@~1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
-stream-browserify@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
-  dependencies:
-    inherits "~2.0.1"
-    readable-stream "^2.0.2"
-
-stream-cache@~0.0.1:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f"
-
-stream-http@^2.3.1:
-  version "2.8.0"
-  resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10"
-  dependencies:
-    builtin-status-codes "^3.0.0"
-    inherits "^2.0.1"
-    readable-stream "^2.3.3"
-    to-arraybuffer "^1.0.0"
-    xtend "^4.0.0"
-
-string-width@^1.0.1, string-width@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    strip-ansi "^3.0.0"
-
-string-width@^2.0.0, string-width@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
-  dependencies:
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^4.0.0"
-
-string_decoder@^0.10.25, string_decoder@~0.10.x:
-  version "0.10.31"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string_decoder@~1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
-  dependencies:
-    safe-buffer "~5.1.0"
-
-stringstream@~0.0.4, stringstream@~0.0.5:
-  version "0.0.5"
-  resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
-  dependencies:
-    ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
-  dependencies:
-    ansi-regex "^3.0.0"
-
-strip-bom@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
-  dependencies:
-    is-utf8 "^0.2.0"
-
-strip-eof@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
-
-strip-indent@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
-  dependencies:
-    get-stdin "^4.0.1"
-
-strip-json-comments@~1.0.1:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
-
-strip-json-comments@~2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-
-supports-color@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e"
-
-supports-color@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2:
-  version "3.2.3"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
-  dependencies:
-    has-flag "^1.0.0"
-
-supports-color@^5.3.0:
-  version "5.3.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
-  dependencies:
-    has-flag "^3.0.0"
-
-tap-mocha-reporter@^3.0.6:
-  version "3.0.6"
-  resolved "https://registry.yarnpkg.com/tap-mocha-reporter/-/tap-mocha-reporter-3.0.6.tgz#12abe97ff409a5a6ecc3d70b6dba34d82184a770"
-  dependencies:
-    color-support "^1.1.0"
-    debug "^2.1.3"
-    diff "^1.3.2"
-    escape-string-regexp "^1.0.3"
-    glob "^7.0.5"
-    js-yaml "^3.3.1"
-    tap-parser "^5.1.0"
-    unicode-length "^1.0.0"
-  optionalDependencies:
-    readable-stream "^2.1.5"
-
-tap-parser@^5.1.0:
-  version "5.4.0"
-  resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-5.4.0.tgz#6907e89725d7b7fa6ae41ee2c464c3db43188aec"
-  dependencies:
-    events-to-array "^1.0.1"
-    js-yaml "^3.2.7"
-  optionalDependencies:
-    readable-stream "^2"
-
-tap-parser@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-7.0.0.tgz#54db35302fda2c2ccc21954ad3be22b2cba42721"
-  dependencies:
-    events-to-array "^1.0.1"
-    js-yaml "^3.2.7"
-    minipass "^2.2.0"
-
-tap@>=0.2.3:
-  version "11.1.1"
-  resolved "https://registry.yarnpkg.com/tap/-/tap-11.1.1.tgz#6dbd23c487127f621a95c793f7a247fa7e2c053a"
-  dependencies:
-    bind-obj-methods "^1.0.0"
-    bluebird "^3.5.1"
-    clean-yaml-object "^0.1.0"
-    color-support "^1.1.0"
-    coveralls "^2.13.3"
-    foreground-child "^1.3.3"
-    fs-exists-cached "^1.0.0"
-    function-loop "^1.0.1"
-    glob "^7.0.0"
-    isexe "^2.0.0"
-    js-yaml "^3.10.0"
-    minipass "^2.2.1"
-    mkdirp "^0.5.1"
-    nyc "^11.3.0"
-    opener "^1.4.1"
-    os-homedir "^1.0.2"
-    own-or "^1.0.0"
-    own-or-env "^1.0.0"
-    rimraf "^2.6.2"
-    signal-exit "^3.0.0"
-    source-map-support "^0.4.18"
-    stack-utils "^1.0.0"
-    tap-mocha-reporter "^3.0.6"
-    tap-parser "^7.0.0"
-    tmatch "^3.1.0"
-    trivial-deferred "^1.0.1"
-    tsame "^1.1.2"
-    write-file-atomic "^2.3.0"
-    yapool "^1.0.0"
-
-tapable@^0.1.8, tapable@~0.1.8:
-  version "0.1.10"
-  resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4"
-
-tar-pack@^3.4.0:
-  version "3.4.1"
-  resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
-  dependencies:
-    debug "^2.2.0"
-    fstream "^1.0.10"
-    fstream-ignore "^1.0.5"
-    once "^1.3.3"
-    readable-stream "^2.1.4"
-    rimraf "^2.5.1"
-    tar "^2.2.1"
-    uid-number "^0.0.6"
-
-tar-stream@~1.1.0:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.1.5.tgz#be9218c130c20029e107b0f967fb23de0579d13c"
-  dependencies:
-    bl "^0.9.0"
-    end-of-stream "^1.0.0"
-    readable-stream "~1.0.33"
-    xtend "^4.0.0"
-
-tar@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
-  dependencies:
-    block-stream "*"
-    fstream "^1.0.2"
-    inherits "2"
-
-temporary@~0.0.4:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/temporary/-/temporary-0.0.8.tgz#a18a981d28ba8ca36027fb3c30538c3ecb740ac0"
-  dependencies:
-    package ">= 1.0.0 < 1.2.0"
-
-test-exclude@^4.1.1:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.0.tgz#07e3613609a362c74516a717515e13322ab45b3c"
-  dependencies:
-    arrify "^1.0.1"
-    micromatch "^2.3.11"
-    object-assign "^4.1.0"
-    read-pkg-up "^1.0.1"
-    require-main-filename "^1.0.1"
-
-text-table@~0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-
-throttleit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
-
-through@^2.3.6:
-  version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-
-time-stamp@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"
-
-timers-browserify@^2.0.2:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae"
-  dependencies:
-    setimmediate "^1.0.4"
-
-timespan@2.x.x:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/timespan/-/timespan-2.3.0.tgz#4902ce040bd13d845c8f59b27e9d59bad6f39929"
-
-tiny-lr@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.2.1.tgz#b3fdba802e5d56a33c2f6f10794b32e477ac729d"
-  dependencies:
-    body-parser "~1.14.0"
-    debug "~2.2.0"
-    faye-websocket "~0.10.0"
-    livereload-js "^2.2.0"
-    parseurl "~1.3.0"
-    qs "~5.1.0"
-
-tmatch@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/tmatch/-/tmatch-3.1.0.tgz#701264fd7582d0144a80c85af3358cca269c71e3"
-
-tmp@0.0.x:
-  version "0.0.33"
-  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
-  dependencies:
-    os-tmpdir "~1.0.2"
-
-to-array@0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
-
-to-arraybuffer@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
-
-to-fast-properties@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
-
-to-iso-string@0.0.2:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1"
-
-tough-cookie@>=0.12.0, tough-cookie@~2.3.0, tough-cookie@~2.3.3:
-  version "2.3.4"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
-  dependencies:
-    punycode "^1.4.1"
-
-trim-newlines@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
-
-trim-right@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-
-trivial-deferred@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/trivial-deferred/-/trivial-deferred-1.0.1.tgz#376d4d29d951d6368a6f7a0ae85c2f4d5e0658f3"
-
-tsame@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/tsame/-/tsame-1.1.2.tgz#5ce0002acf685942789c63018797a2aa5e6b03c5"
-
-tty-browserify@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
-
-tunnel-agent@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
-  dependencies:
-    safe-buffer "^5.0.1"
-
-tunnel-agent@~0.4.0, tunnel-agent@~0.4.1:
-  version "0.4.3"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-
-type-check@~0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
-  dependencies:
-    prelude-ls "~1.1.2"
-
-type-detect@0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
-
-type-detect@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
-
-type-is@~1.6.10, type-is@~1.6.15:
-  version "1.6.16"
-  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
-  dependencies:
-    media-typer "0.3.0"
-    mime-types "~2.1.18"
-
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-uglify-js@^2.6:
-  version "2.8.29"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
-  dependencies:
-    source-map "~0.5.1"
-    yargs "~3.10.0"
-  optionalDependencies:
-    uglify-to-browserify "~1.0.0"
-
-uglify-js@~1.3.3:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-1.3.5.tgz#4b5bfff9186effbaa888e4c9e94bd9fc4c94929d"
-
-uglify-js@~2.6.2:
-  version "2.6.4"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf"
-  dependencies:
-    async "~0.2.6"
-    source-map "~0.5.1"
-    uglify-to-browserify "~1.0.0"
-    yargs "~3.10.0"
-
-uglify-js@~2.7.3:
-  version "2.7.5"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
-  dependencies:
-    async "~0.2.6"
-    source-map "~0.5.1"
-    uglify-to-browserify "~1.0.0"
-    yargs "~3.10.0"
-
-uglify-to-browserify@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-uid-number@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
-
-ultron@1.0.x:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
-
-underscore.string@~2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.1.1.tgz#458397799114b9b67f6030bb527b0afae689c061"
-
-underscore.string@~2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19"
-
-underscore.string@~2.3.3:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d"
-
-underscore.string@~2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
-
-underscore.string@~3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.0.3.tgz#4617b8c1a250cf6e5064fbbb363d0fa96cf14552"
-
-underscore@~1.2.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.2.4.tgz#e8da6241aa06f64df2473bb2590b8c17c84c3c7e"
-
-underscore@~1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
-
-unicode-length@^1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/unicode-length/-/unicode-length-1.0.3.tgz#5ada7a7fed51841a418a328cf149478ac8358abb"
-  dependencies:
-    punycode "^1.3.2"
-    strip-ansi "^3.0.1"
-
-unpipe@1.0.0, unpipe@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-
-uri-path@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32"
-
-url-parse@1.0.x:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b"
-  dependencies:
-    querystringify "0.0.x"
-    requires-port "1.0.x"
-
-url-parse@^1.1.8:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986"
-  dependencies:
-    querystringify "~1.0.0"
-    requires-port "~1.0.0"
-
-url@^0.11.0:
-  version "0.11.0"
-  resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
-  dependencies:
-    punycode "1.3.2"
-    querystring "0.2.0"
-
-user-home@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
-  dependencies:
-    os-homedir "^1.0.0"
-
-useragent@^2.1.6:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972"
-  dependencies:
-    lru-cache "4.1.x"
-    tmp "0.0.x"
-
-util-deprecate@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-util@0.10.3, util@^0.10.3:
-  version "0.10.3"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
-  dependencies:
-    inherits "2.0.1"
-
-utils-merge@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
-
-uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
-
-validate-npm-package-license@^3.0.1:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
-  dependencies:
-    spdx-correct "^3.0.0"
-    spdx-expression-parse "^3.0.0"
-
-vargs@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/vargs/-/vargs-0.1.0.tgz#6b6184da6520cc3204ce1b407cac26d92609ebff"
-
-vary@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-
-verror@1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  dependencies:
-    assert-plus "^1.0.0"
-    core-util-is "1.0.2"
-    extsprintf "^1.2.0"
-
-vm-browserify@0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
-  dependencies:
-    indexof "0.0.1"
-
-void-elements@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
-
-watchpack@^0.2.1:
-  version "0.2.9"
-  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b"
-  dependencies:
-    async "^0.9.0"
-    chokidar "^1.0.0"
-    graceful-fs "^4.1.2"
-
-wd@^0.3.4:
-  version "0.3.12"
-  resolved "https://registry.yarnpkg.com/wd/-/wd-0.3.12.tgz#3fb4f1d759f8c85dde5393d17334ffe03e9bb329"
-  dependencies:
-    archiver "~0.14.0"
-    async "~1.0.0"
-    lodash "~3.9.3"
-    q "~1.4.1"
-    request "~2.55.0"
-    underscore.string "~3.0.3"
-    vargs "~0.1.0"
-
-webpack-core@~0.6.9:
-  version "0.6.9"
-  resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2"
-  dependencies:
-    source-list-map "~0.1.7"
-    source-map "~0.4.1"
-
-webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.10.2:
-  version "1.12.2"
-  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e"
-  dependencies:
-    memory-fs "~0.4.1"
-    mime "^1.5.0"
-    path-is-absolute "^1.0.0"
-    range-parser "^1.0.3"
-    time-stamp "^2.0.0"
-
-webpack-dev-server@^1.12.0:
-  version "1.16.5"
-  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz#0cbd5f2d2ac8d4e593aacd5c9702e7bbd5e59892"
-  dependencies:
-    compression "^1.5.2"
-    connect-history-api-fallback "^1.3.0"
-    express "^4.13.3"
-    http-proxy-middleware "~0.17.1"
-    open "0.0.5"
-    optimist "~0.6.1"
-    serve-index "^1.7.2"
-    sockjs "^0.3.15"
-    sockjs-client "^1.0.3"
-    stream-cache "~0.0.1"
-    strip-ansi "^3.0.0"
-    supports-color "^3.1.1"
-    webpack-dev-middleware "^1.10.2"
-
-webpack@^1.12.2:
-  version "1.15.0"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-1.15.0.tgz#4ff31f53db03339e55164a9d468ee0324968fe98"
-  dependencies:
-    acorn "^3.0.0"
-    async "^1.3.0"
-    clone "^1.0.2"
-    enhanced-resolve "~0.9.0"
-    interpret "^0.6.4"
-    loader-utils "^0.2.11"
-    memory-fs "~0.3.0"
-    mkdirp "~0.5.0"
-    node-libs-browser "^0.7.0"
-    optimist "~0.6.0"
-    supports-color "^3.1.0"
-    tapable "~0.1.8"
-    uglify-js "~2.7.3"
-    watchpack "^0.2.1"
-    webpack-core "~0.6.9"
-
-websocket-driver@>=0.5.1:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
-  dependencies:
-    http-parser-js ">=0.4.0"
-    websocket-extensions ">=0.1.1"
-
-websocket-extensions@>=0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
-
-which-module@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-
-which@^1.1.1, which@^1.2.10, which@^1.2.9, which@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
-  dependencies:
-    isexe "^2.0.0"
-
-which@~1.0.5:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f"
-
-wide-align@^1.1.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
-  dependencies:
-    string-width "^1.0.2"
-
-window-size@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-winston@0.5.x:
-  version "0.5.11"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-0.5.11.tgz#9d84ead981a497a92ddf76616137abef661c414f"
-  dependencies:
-    async "0.1.x"
-    colors "0.x.x"
-    eyes "0.1.x"
-    loggly "0.3.x >=0.3.7"
-    pkginfo "0.2.x"
-    stack-trace "0.0.x"
-
-wordwrap@0.0.2:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-wordwrap@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
-wordwrap@~0.0.2:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wrap-ansi@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
-  dependencies:
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-
-wrappy@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-write-file-atomic@^1.1.4:
-  version "1.3.4"
-  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
-  dependencies:
-    graceful-fs "^4.1.11"
-    imurmurhash "^0.1.4"
-    slide "^1.1.5"
-
-write-file-atomic@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
-  dependencies:
-    graceful-fs "^4.1.11"
-    imurmurhash "^0.1.4"
-    signal-exit "^3.0.2"
-
-write@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
-  dependencies:
-    mkdirp "^0.5.1"
-
-ws@~1.1.5:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
-  dependencies:
-    options ">=0.0.5"
-    ultron "1.0.x"
-
-wtf-8@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
-
-xml-escape@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/xml-escape/-/xml-escape-1.0.0.tgz#00963d697b2adf0c185c4e04e73174ba9b288eb2"
-
-xmlhttprequest-ssl@1.5.3:
-  version "1.5.3"
-  resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
-
-xtend@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-
-y18n@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
-
-yallist@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
-
-yallist@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
-
-yapool@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/yapool/-/yapool-1.0.0.tgz#f693f29a315b50d9a9da2646a7a6645c96985b6a"
-
-yargs-parser@^8.0.0, yargs-parser@^8.1.0:
-  version "8.1.0"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
-  dependencies:
-    camelcase "^4.1.0"
-
-yargs@^10.0.3:
-  version "10.1.2"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5"
-  dependencies:
-    cliui "^4.0.0"
-    decamelize "^1.1.1"
-    find-up "^2.1.0"
-    get-caller-file "^1.0.1"
-    os-locale "^2.0.0"
-    require-directory "^2.1.1"
-    require-main-filename "^1.0.1"
-    set-blocking "^2.0.0"
-    string-width "^2.0.0"
-    which-module "^2.0.0"
-    y18n "^3.2.1"
-    yargs-parser "^8.1.0"
-
-yargs@~3.10.0:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
-  dependencies:
-    camelcase "^1.0.2"
-    cliui "^2.1.0"
-    decamelize "^1.0.0"
-    window-size "0.1.0"
-
-yauzl@2.4.1:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
-  dependencies:
-    fd-slicer "~1.0.1"
-
-yeast@0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
-
-zip-stream@~0.5.0:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.5.2.tgz#32dcbc506d0dab4d21372625bd7ebaac3c2fff56"
-  dependencies:
-    compress-commons "~0.2.0"
-    lodash "~3.2.0"
-    readable-stream "~1.0.26"
diff --git a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/index.js b/multiplatform-crypto-delegated/node_modules/escape-string-regexp/index.js
deleted file mode 100644
index 7834bf9..0000000
--- a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
-
-module.exports = function (str) {
-	if (typeof str !== 'string') {
-		throw new TypeError('Expected a string');
-	}
-
-	return str.replace(matchOperatorsRe, '\\$&');
-};
diff --git a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/license b/multiplatform-crypto-delegated/node_modules/escape-string-regexp/license
deleted file mode 100644
index 654d0bf..0000000
--- a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus  (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/package.json b/multiplatform-crypto-delegated/node_modules/escape-string-regexp/package.json
deleted file mode 100644
index c7ab632..0000000
--- a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/package.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
-  "_from": "escape-string-regexp@1.0.5",
-  "_id": "escape-string-regexp@1.0.5",
-  "_inBundle": false,
-  "_integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-  "_location": "/escape-string-regexp",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "escape-string-regexp@1.0.5",
-    "name": "escape-string-regexp",
-    "escapedName": "escape-string-regexp",
-    "rawSpec": "1.0.5",
-    "saveSpec": null,
-    "fetchSpec": "1.0.5"
-  },
-  "_requiredBy": [
-    "/mocha"
-  ],
-  "_resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-  "_shasum": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
-  "_spec": "escape-string-regexp@1.0.5",
-  "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/sindresorhus/escape-string-regexp/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "Escape RegExp special characters",
-  "devDependencies": {
-    "ava": "*",
-    "xo": "*"
-  },
-  "engines": {
-    "node": ">=0.8.0"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/sindresorhus/escape-string-regexp#readme",
-  "keywords": [
-    "escape",
-    "regex",
-    "regexp",
-    "re",
-    "regular",
-    "expression",
-    "string",
-    "str",
-    "special",
-    "characters"
-  ],
-  "license": "MIT",
-  "maintainers": [
-    {
-      "name": "Sindre Sorhus",
-      "email": "sindresorhus@gmail.com",
-      "url": "sindresorhus.com"
-    },
-    {
-      "name": "Joshua Boy Nicolai Appelman",
-      "email": "joshua@jbna.nl",
-      "url": "jbna.nl"
-    }
-  ],
-  "name": "escape-string-regexp",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/sindresorhus/escape-string-regexp.git"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "version": "1.0.5"
-}
diff --git a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/readme.md b/multiplatform-crypto-delegated/node_modules/escape-string-regexp/readme.md
deleted file mode 100644
index 87ac82d..0000000
--- a/multiplatform-crypto-delegated/node_modules/escape-string-regexp/readme.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# escape-string-regexp [![Build Status](https://travis-ci.org/sindresorhus/escape-string-regexp.svg?branch=master)](https://travis-ci.org/sindresorhus/escape-string-regexp)
-
-> Escape RegExp special characters
-
-
-## Install
-
-```
-$ npm install --save escape-string-regexp
-```
-
-
-## Usage
-
-```js
-const escapeStringRegexp = require('escape-string-regexp');
-
-const escapedString = escapeStringRegexp('how much $ for a unicorn?');
-//=> 'how much \$ for a unicorn\?'
-
-new RegExp(escapedString);
-```
-
-
-## License
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
diff --git a/multiplatform-crypto-delegated/node_modules/fs.realpath/LICENSE b/multiplatform-crypto-delegated/node_modules/fs.realpath/LICENSE
deleted file mode 100644
index 5bd884c..0000000
--- a/multiplatform-crypto-delegated/node_modules/fs.realpath/LICENSE
+++ /dev/null
@@ -1,43 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-----
-
-This library bundles a version of the `fs.realpath` and `fs.realpathSync`
-methods from Node.js v0.10 under the terms of the Node.js MIT license.
-
-Node's license follows, also included at the header of `old.js` which contains
-the licensed code:
-
-  Copyright Joyent, Inc. and other Node contributors.
-
-  Permission is hereby granted, free of charge, to any person obtaining a
-  copy of this software and associated documentation files (the "Software"),
-  to deal in the Software without restriction, including without limitation
-  the rights to use, copy, modify, merge, publish, distribute, sublicense,
-  and/or sell copies of the Software, and to permit persons to whom the
-  Software is furnished to do so, subject to the following conditions:
-
-  The above copyright notice and this permission notice shall be included in
-  all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-  DEALINGS IN THE SOFTWARE.
diff --git a/multiplatform-crypto-delegated/node_modules/fs.realpath/README.md b/multiplatform-crypto-delegated/node_modules/fs.realpath/README.md
deleted file mode 100644
index a42ceac..0000000
--- a/multiplatform-crypto-delegated/node_modules/fs.realpath/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# fs.realpath
-
-A backwards-compatible fs.realpath for Node v6 and above
-
-In Node v6, the JavaScript implementation of fs.realpath was replaced
-with a faster (but less resilient) native implementation.  That raises
-new and platform-specific errors and cannot handle long or excessively
-symlink-looping paths.
-
-This module handles those cases by detecting the new errors and
-falling back to the JavaScript implementation.  On versions of Node
-prior to v6, it has no effect.
-
-## USAGE
-
-```js
-var rp = require('fs.realpath')
-
-// async version
-rp.realpath(someLongAndLoopingPath, function (er, real) {
-  // the ELOOP was handled, but it was a bit slower
-})
-
-// sync version
-var real = rp.realpathSync(someLongAndLoopingPath)
-
-// monkeypatch at your own risk!
-// This replaces the fs.realpath/fs.realpathSync builtins
-rp.monkeypatch()
-
-// un-do the monkeypatching
-rp.unmonkeypatch()
-```
diff --git a/multiplatform-crypto-delegated/node_modules/fs.realpath/index.js b/multiplatform-crypto-delegated/node_modules/fs.realpath/index.js
deleted file mode 100644
index b09c7c7..0000000
--- a/multiplatform-crypto-delegated/node_modules/fs.realpath/index.js
+++ /dev/null
@@ -1,66 +0,0 @@
-module.exports = realpath
-realpath.realpath = realpath
-realpath.sync = realpathSync
-realpath.realpathSync = realpathSync
-realpath.monkeypatch = monkeypatch
-realpath.unmonkeypatch = unmonkeypatch
-
-var fs = require('fs')
-var origRealpath = fs.realpath
-var origRealpathSync = fs.realpathSync
-
-var version = process.version
-var ok = /^v[0-5]\./.test(version)
-var old = require('./old.js')
-
-function newError (er) {
-  return er && er.syscall === 'realpath' && (
-    er.code === 'ELOOP' ||
-    er.code === 'ENOMEM' ||
-    er.code === 'ENAMETOOLONG'
-  )
-}
-
-function realpath (p, cache, cb) {
-  if (ok) {
-    return origRealpath(p, cache, cb)
-  }
-
-  if (typeof cache === 'function') {
-    cb = cache
-    cache = null
-  }
-  origRealpath(p, cache, function (er, result) {
-    if (newError(er)) {
-      old.realpath(p, cache, cb)
-    } else {
-      cb(er, result)
-    }
-  })
-}
-
-function realpathSync (p, cache) {
-  if (ok) {
-    return origRealpathSync(p, cache)
-  }
-
-  try {
-    return origRealpathSync(p, cache)
-  } catch (er) {
-    if (newError(er)) {
-      return old.realpathSync(p, cache)
-    } else {
-      throw er
-    }
-  }
-}
-
-function monkeypatch () {
-  fs.realpath = realpath
-  fs.realpathSync = realpathSync
-}
-
-function unmonkeypatch () {
-  fs.realpath = origRealpath
-  fs.realpathSync = origRealpathSync
-}
diff --git a/multiplatform-crypto-delegated/node_modules/fs.realpath/old.js b/multiplatform-crypto-delegated/node_modules/fs.realpath/old.js
deleted file mode 100644
index b40305e..0000000
--- a/multiplatform-crypto-delegated/node_modules/fs.realpath/old.js
+++ /dev/null
@@ -1,303 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-var pathModule = require('path');
-var isWindows = process.platform === 'win32';
-var fs = require('fs');
-
-// JavaScript implementation of realpath, ported from node pre-v6
-
-var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
-
-function rethrow() {
-  // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
-  // is fairly slow to generate.
-  var callback;
-  if (DEBUG) {
-    var backtrace = new Error;
-    callback = debugCallback;
-  } else
-    callback = missingCallback;
-
-  return callback;
-
-  function debugCallback(err) {
-    if (err) {
-      backtrace.message = err.message;
-      err = backtrace;
-      missingCallback(err);
-    }
-  }
-
-  function missingCallback(err) {
-    if (err) {
-      if (process.throwDeprecation)
-        throw err;  // Forgot a callback but don't know where? Use NODE_DEBUG=fs
-      else if (!process.noDeprecation) {
-        var msg = 'fs: missing callback ' + (err.stack || err.message);
-        if (process.traceDeprecation)
-          console.trace(msg);
-        else
-          console.error(msg);
-      }
-    }
-  }
-}
-
-function maybeCallback(cb) {
-  return typeof cb === 'function' ? cb : rethrow();
-}
-
-var normalize = pathModule.normalize;
-
-// Regexp that finds the next partion of a (partial) path
-// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
-if (isWindows) {
-  var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
-} else {
-  var nextPartRe = /(.*?)(?:[\/]+|$)/g;
-}
-
-// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
-if (isWindows) {
-  var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
-} else {
-  var splitRootRe = /^[\/]*/;
-}
-
-exports.realpathSync = function realpathSync(p, cache) {
-  // make p is absolute
-  p = pathModule.resolve(p);
-
-  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
-    return cache[p];
-  }
-
-  var original = p,
-      seenLinks = {},
-      knownHard = {};
-
-  // current character position in p
-  var pos;
-  // the partial path so far, including a trailing slash if any
-  var current;
-  // the partial path without a trailing slash (except when pointing at a root)
-  var base;
-  // the partial path scanned in the previous round, with slash
-  var previous;
-
-  start();
-
-  function start() {
-    // Skip over roots
-    var m = splitRootRe.exec(p);
-    pos = m[0].length;
-    current = m[0];
-    base = m[0];
-    previous = '';
-
-    // On windows, check that the root exists. On unix there is no need.
-    if (isWindows && !knownHard[base]) {
-      fs.lstatSync(base);
-      knownHard[base] = true;
-    }
-  }
-
-  // walk down the path, swapping out linked pathparts for their real
-  // values
-  // NB: p.length changes.
-  while (pos < p.length) {
-    // find the next part
-    nextPartRe.lastIndex = pos;
-    var result = nextPartRe.exec(p);
-    previous = current;
-    current += result[0];
-    base = previous + result[1];
-    pos = nextPartRe.lastIndex;
-
-    // continue if not a symlink
-    if (knownHard[base] || (cache && cache[base] === base)) {
-      continue;
-    }
-
-    var resolvedLink;
-    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
-      // some known symbolic link.  no need to stat again.
-      resolvedLink = cache[base];
-    } else {
-      var stat = fs.lstatSync(base);
-      if (!stat.isSymbolicLink()) {
-        knownHard[base] = true;
-        if (cache) cache[base] = base;
-        continue;
-      }
-
-      // read the link if it wasn't read before
-      // dev/ino always return 0 on windows, so skip the check.
-      var linkTarget = null;
-      if (!isWindows) {
-        var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
-        if (seenLinks.hasOwnProperty(id)) {
-          linkTarget = seenLinks[id];
-        }
-      }
-      if (linkTarget === null) {
-        fs.statSync(base);
-        linkTarget = fs.readlinkSync(base);
-      }
-      resolvedLink = pathModule.resolve(previous, linkTarget);
-      // track this, if given a cache.
-      if (cache) cache[base] = resolvedLink;
-      if (!isWindows) seenLinks[id] = linkTarget;
-    }
-
-    // resolve the link, then start over
-    p = pathModule.resolve(resolvedLink, p.slice(pos));
-    start();
-  }
-
-  if (cache) cache[original] = p;
-
-  return p;
-};
-
-
-exports.realpath = function realpath(p, cache, cb) {
-  if (typeof cb !== 'function') {
-    cb = maybeCallback(cache);
-    cache = null;
-  }
-
-  // make p is absolute
-  p = pathModule.resolve(p);
-
-  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
-    return process.nextTick(cb.bind(null, null, cache[p]));
-  }
-
-  var original = p,
-      seenLinks = {},
-      knownHard = {};
-
-  // current character position in p
-  var pos;
-  // the partial path so far, including a trailing slash if any
-  var current;
-  // the partial path without a trailing slash (except when pointing at a root)
-  var base;
-  // the partial path scanned in the previous round, with slash
-  var previous;
-
-  start();
-
-  function start() {
-    // Skip over roots
-    var m = splitRootRe.exec(p);
-    pos = m[0].length;
-    current = m[0];
-    base = m[0];
-    previous = '';
-
-    // On windows, check that the root exists. On unix there is no need.
-    if (isWindows && !knownHard[base]) {
-      fs.lstat(base, function(err) {
-        if (err) return cb(err);
-        knownHard[base] = true;
-        LOOP();
-      });
-    } else {
-      process.nextTick(LOOP);
-    }
-  }
-
-  // walk down the path, swapping out linked pathparts for their real
-  // values
-  function LOOP() {
-    // stop if scanned past end of path
-    if (pos >= p.length) {
-      if (cache) cache[original] = p;
-      return cb(null, p);
-    }
-
-    // find the next part
-    nextPartRe.lastIndex = pos;
-    var result = nextPartRe.exec(p);
-    previous = current;
-    current += result[0];
-    base = previous + result[1];
-    pos = nextPartRe.lastIndex;
-
-    // continue if not a symlink
-    if (knownHard[base] || (cache && cache[base] === base)) {
-      return process.nextTick(LOOP);
-    }
-
-    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
-      // known symbolic link.  no need to stat again.
-      return gotResolvedLink(cache[base]);
-    }
-
-    return fs.lstat(base, gotStat);
-  }
-
-  function gotStat(err, stat) {
-    if (err) return cb(err);
-
-    // if not a symlink, skip to the next path part
-    if (!stat.isSymbolicLink()) {
-      knownHard[base] = true;
-      if (cache) cache[base] = base;
-      return process.nextTick(LOOP);
-    }
-
-    // stat & read the link if not read before
-    // call gotTarget as soon as the link target is known
-    // dev/ino always return 0 on windows, so skip the check.
-    if (!isWindows) {
-      var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
-      if (seenLinks.hasOwnProperty(id)) {
-        return gotTarget(null, seenLinks[id], base);
-      }
-    }
-    fs.stat(base, function(err) {
-      if (err) return cb(err);
-
-      fs.readlink(base, function(err, target) {
-        if (!isWindows) seenLinks[id] = target;
-        gotTarget(err, target);
-      });
-    });
-  }
-
-  function gotTarget(err, target, base) {
-    if (err) return cb(err);
-
-    var resolvedLink = pathModule.resolve(previous, target);
-    if (cache) cache[base] = resolvedLink;
-    gotResolvedLink(resolvedLink);
-  }
-
-  function gotResolvedLink(resolvedLink) {
-    // resolve the link, then start over
-    p = pathModule.resolve(resolvedLink, p.slice(pos));
-    start();
-  }
-};
diff --git a/multiplatform-crypto-delegated/node_modules/fs.realpath/package.json b/multiplatform-crypto-delegated/node_modules/fs.realpath/package.json
deleted file mode 100644
index 9d6c56d..0000000
--- a/multiplatform-crypto-delegated/node_modules/fs.realpath/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "_from": "fs.realpath@^1.0.0",
-  "_id": "fs.realpath@1.0.0",
-  "_inBundle": false,
-  "_integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-  "_location": "/fs.realpath",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "fs.realpath@^1.0.0",
-    "name": "fs.realpath",
-    "escapedName": "fs.realpath",
-    "rawSpec": "^1.0.0",
-    "saveSpec": null,
-    "fetchSpec": "^1.0.0"
-  },
-  "_requiredBy": [
-    "/glob"
-  ],
-  "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-  "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
-  "_spec": "fs.realpath@^1.0.0",
-  "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/glob",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "bugs": {
-    "url": "https://github.com/isaacs/fs.realpath/issues"
-  },
-  "bundleDependencies": false,
-  "dependencies": {},
-  "deprecated": false,
-  "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
-  "devDependencies": {},
-  "files": [
-    "old.js",
-    "index.js"
-  ],
-  "homepage": "https://github.com/isaacs/fs.realpath#readme",
-  "keywords": [
-    "realpath",
-    "fs",
-    "polyfill"
-  ],
-  "license": "ISC",
-  "main": "index.js",
-  "name": "fs.realpath",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/isaacs/fs.realpath.git"
-  },
-  "scripts": {
-    "test": "tap test/*.js --cov"
-  },
-  "version": "1.0.0"
-}
diff --git a/multiplatform-crypto-delegated/node_modules/glob/LICENSE b/multiplatform-crypto-delegated/node_modules/glob/LICENSE
deleted file mode 100644
index 19129e3..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter and Contributors
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/multiplatform-crypto-delegated/node_modules/glob/README.md b/multiplatform-crypto-delegated/node_modules/glob/README.md
deleted file mode 100644
index baa1d1b..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/README.md
+++ /dev/null
@@ -1,368 +0,0 @@
-# Glob
-
-Match files using the patterns the shell uses, like stars and stuff.
-
-[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master)
-
-This is a glob implementation in JavaScript.  It uses the `minimatch`
-library to do its matching.
-
-![](oh-my-glob.gif)
-
-## Usage
-
-Install with npm
-
-```
-npm i glob
-```
-
-```javascript
-var glob = require("glob")
-
-// options is optional
-glob("**/*.js", options, function (er, files) {
-  // files is an array of filenames.
-  // If the `nonull` option is set, and nothing
-  // was found, then files is ["**/*.js"]
-  // er is an error object or null.
-})
-```
-
-## Glob Primer
-
-"Globs" are the patterns you type when you do stuff like `ls *.js` on
-the command line, or put `build/*` in a `.gitignore` file.
-
-Before parsing the path part patterns, braced sections are expanded
-into a set.  Braced sections start with `{` and end with `}`, with any
-number of comma-delimited sections within.  Braced sections may contain
-slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`.
-
-The following characters have special magic meaning when used in a
-path portion:
-
-* `*` Matches 0 or more characters in a single path portion
-* `?` Matches 1 character
-* `[...]` Matches a range of characters, similar to a RegExp range.
-  If the first character of the range is `!` or `^` then it matches
-  any character not in the range.
-* `!(pattern|pattern|pattern)` Matches anything that does not match
-  any of the patterns provided.
-* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the
-  patterns provided.
-* `+(pattern|pattern|pattern)` Matches one or more occurrences of the
-  patterns provided.
-* `*(a|b|c)` Matches zero or more occurrences of the patterns provided
-* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
-  provided
-* `**` If a "globstar" is alone in a path portion, then it matches
-  zero or more directories and subdirectories searching for matches.
-  It does not crawl symlinked directories.
-
-### Dots
-
-If a file or directory path portion has a `.` as the first character,
-then it will not match any glob pattern unless that pattern's
-corresponding path part also has a `.` as its first character.
-
-For example, the pattern `a/.*/c` would match the file at `a/.b/c`.
-However the pattern `a/*/c` would not, because `*` does not start with
-a dot character.
-
-You can make glob treat dots as normal characters by setting
-`dot:true` in the options.
-
-### Basename Matching
-
-If you set `matchBase:true` in the options, and the pattern has no
-slashes in it, then it will seek for any file anywhere in the tree
-with a matching basename.  For example, `*.js` would match
-`test/simple/basic.js`.
-
-### Empty Sets
-
-If no matching files are found, then an empty array is returned.  This
-differs from the shell, where the pattern itself is returned.  For
-example:
-
-    $ echo a*s*d*f
-    a*s*d*f
-
-To get the bash-style behavior, set the `nonull:true` in the options.
-
-### See Also:
-
-* `man sh`
-* `man bash` (Search for "Pattern Matching")
-* `man 3 fnmatch`
-* `man 5 gitignore`
-* [minimatch documentation](https://github.com/isaacs/minimatch)
-
-## glob.hasMagic(pattern, [options])
-
-Returns `true` if there are any special characters in the pattern, and
-`false` otherwise.
-
-Note that the options affect the results.  If `noext:true` is set in
-the options object, then `+(a|b)` will not be considered a magic
-pattern.  If the pattern has a brace expansion, like `a/{b/c,x/y}`
-then that is considered magical, unless `nobrace:true` is set in the
-options.
-
-## glob(pattern, [options], cb)
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* `cb` `{Function}`
-  * `err` `{Error | null}`
-  * `matches` `{Array}` filenames found matching the pattern
-
-Perform an asynchronous glob search.
-
-## glob.sync(pattern, [options])
-
-* `pattern` `{String}` Pattern to be matched
-* `options` `{Object}`
-* return: `{Array}` filenames found matching the pattern
-
-Perform a synchronous glob search.
-
-## Class: glob.Glob
-
-Create a Glob object by instantiating the `glob.Glob` class.
-
-```javascript
-var Glob = require("glob").Glob
-var mg = new Glob(pattern, options, cb)
-```
-
-It's an EventEmitter, and starts walking the filesystem to find matches
-immediately.
-
-### new glob.Glob(pattern, [options], [cb])
-
-* `pattern` `{String}` pattern to search for
-* `options` `{Object}`
-* `cb` `{Function}` Called when an error occurs, or matches are found
-  * `err` `{Error | null}`
-  * `matches` `{Array}` filenames found matching the pattern
-
-Note that if the `sync` flag is set in the options, then matches will
-be immediately available on the `g.found` member.
-
-### Properties
-
-* `minimatch` The minimatch object that the glob uses.
-* `options` The options object passed in.
-* `aborted` Boolean which is set to true when calling `abort()`.  There
-  is no way at this time to continue a glob search after aborting, but
-  you can re-use the statCache to avoid having to duplicate syscalls.
-* `cache` Convenience object.  Each field has the following possible
-  values:
-  * `false` - Path does not exist
-  * `true` - Path exists
-  * `'FILE'` - Path exists, and is not a directory
-  * `'DIR'` - Path exists, and is a directory
-  * `[file, entries, ...]` - Path exists, is a directory, and the
-    array value is the results of `fs.readdir`
-* `statCache` Cache of `fs.stat` results, to prevent statting the same
-  path multiple times.
-* `symlinks` A record of which paths are symbolic links, which is
-  relevant in resolving `**` patterns.
-* `realpathCache` An optional object which is passed to `fs.realpath`
-  to minimize unnecessary syscalls.  It is stored on the instantiated
-  Glob object, and may be re-used.
-
-### Events
-
-* `end` When the matching is finished, this is emitted with all the
-  matches found.  If the `nonull` option is set, and no match was found,
-  then the `matches` list contains the original pattern.  The matches
-  are sorted, unless the `nosort` flag is set.
-* `match` Every time a match is found, this is emitted with the specific
-  thing that matched. It is not deduplicated or resolved to a realpath.
-* `error` Emitted when an unexpected error is encountered, or whenever
-  any fs error occurs if `options.strict` is set.
-* `abort` When `abort()` is called, this event is raised.
-
-### Methods
-
-* `pause` Temporarily stop the search
-* `resume` Resume the search
-* `abort` Stop the search forever
-
-### Options
-
-All the options that can be passed to Minimatch can also be passed to
-Glob to change pattern matching behavior.  Also, some have been added,
-or have glob-specific ramifications.
-
-All options are false by default, unless otherwise noted.
-
-All options are added to the Glob object, as well.
-
-If you are running many `glob` operations, you can pass a Glob object
-as the `options` argument to a subsequent operation to shortcut some
-`stat` and `readdir` calls.  At the very least, you may pass in shared
-`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that
-parallel glob operations will be sped up by sharing information about
-the filesystem.
-
-* `cwd` The current working directory in which to search.  Defaults
-  to `process.cwd()`.
-* `root` The place where patterns starting with `/` will be mounted
-  onto.  Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix
-  systems, and `C:\` or some such on Windows.)
-* `dot` Include `.dot` files in normal matches and `globstar` matches.
-  Note that an explicit dot in a portion of the pattern will always
-  match dot files.
-* `nomount` By default, a pattern starting with a forward-slash will be
-  "mounted" onto the root setting, so that a valid filesystem path is
-  returned.  Set this flag to disable that behavior.
-* `mark` Add a `/` character to directory matches.  Note that this
-  requires additional stat calls.
-* `nosort` Don't sort the results.
-* `stat` Set to true to stat *all* results.  This reduces performance
-  somewhat, and is completely unnecessary, unless `readdir` is presumed
-  to be an untrustworthy indicator of file existence.
-* `silent` When an unusual error is encountered when attempting to
-  read a directory, a warning will be printed to stderr.  Set the
-  `silent` option to true to suppress these warnings.
-* `strict` When an unusual error is encountered when attempting to
-  read a directory, the process will just continue on in search of
-  other matches.  Set the `strict` option to raise an error in these
-  cases.
-* `cache` See `cache` property above.  Pass in a previously generated
-  cache object to save some fs calls.
-* `statCache` A cache of results of filesystem information, to prevent
-  unnecessary stat calls.  While it should not normally be necessary
-  to set this, you may pass the statCache from one glob() call to the
-  options object of another, if you know that the filesystem will not
-  change between calls.  (See "Race Conditions" below.)
-* `symlinks` A cache of known symbolic links.  You may pass in a
-  previously generated `symlinks` object to save `lstat` calls when
-  resolving `**` matches.
-* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead.
-* `nounique` In some cases, brace-expanded patterns can result in the
-  same file showing up multiple times in the result set.  By default,
-  this implementation prevents duplicates in the result set.  Set this
-  flag to disable that behavior.
-* `nonull` Set to never return an empty set, instead returning a set
-  containing the pattern itself.  This is the default in glob(3).
-* `debug` Set to enable debug logging in minimatch and glob.
-* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
-* `noglobstar` Do not match `**` against multiple filenames.  (Ie,
-  treat it as a normal `*` instead.)
-* `noext` Do not match `+(a|b)` "extglob" patterns.
-* `nocase` Perform a case-insensitive match.  Note: on
-  case-insensitive filesystems, non-magic patterns will match by
-  default, since `stat` and `readdir` will not raise errors.
-* `matchBase` Perform a basename-only match if the pattern does not
-  contain any slash characters.  That is, `*.js` would be treated as
-  equivalent to `**/*.js`, matching all js files in all directories.
-* `nodir` Do not match directories, only files.  (Note: to match
-  *only* directories, simply put a `/` at the end of the pattern.)
-* `ignore` Add a pattern or an array of glob patterns to exclude matches.
-  Note: `ignore` patterns are *always* in `dot:true` mode, regardless
-  of any other settings.
-* `follow` Follow symlinked directories when expanding `**` patterns.
-  Note that this can result in a lot of duplicate references in the
-  presence of cyclic links.
-* `realpath` Set to true to call `fs.realpath` on all of the results.
-  In the case of a symlink that cannot be resolved, the full absolute
-  path to the matched entry is returned (though it will usually be a
-  broken symlink)
-* `absolute` Set to true to always receive absolute paths for matched
-  files.  Unlike `realpath`, this also affects the values returned in
-  the `match` event.
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between node-glob and other
-implementations, and are intentional.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set.  This is supported in the manner of bsdglob
-and bash 4.3, where `**` only has special significance if it is the only
-thing in a path part.  That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-Note that symlinked directories are not crawled as part of a `**`,
-though their contents may match against subsequent portions of the
-pattern.  This prevents infinite loops and duplicates and the like.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then glob returns the pattern as-provided, rather than
-interpreting the character escapes.  For example,
-`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`.  This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern.  Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity.  Since those two are valid, matching proceeds.
-
-### Comments and Negation
-
-Previously, this module let you mark a pattern as a "comment" if it
-started with a `#` character, or a "negated" pattern if it started
-with a `!` character.
-
-These options were deprecated in version 5, and removed in version 6.
-
-To specify things that should not match, use the `ignore` option.
-
-## Windows
-
-**Please only use forward-slashes in glob expressions.**
-
-Though windows uses either `/` or `\` as its path separator, only `/`
-characters are used by this glob implementation.  You must use
-forward-slashes **only** in glob expressions.  Back-slashes will always
-be interpreted as escape characters, not path separators.
-
-Results from absolute patterns such as `/foo/*` are mounted onto the
-root setting using `path.join`.  On windows, this will by default result
-in `/foo/*` matching `C:\foo\bar.txt`.
-
-## Race Conditions
-
-Glob searching, by its very nature, is susceptible to race conditions,
-since it relies on directory walking and such.
-
-As a result, it is possible that a file that exists when glob looks for
-it may have been deleted or modified by the time it returns the result.
-
-As part of its internal implementation, this program caches all stat
-and readdir calls that it makes, in order to cut down on system
-overhead.  However, this also makes it even more susceptible to races,
-especially if the cache or statCache objects are reused between glob
-calls.
-
-Users are thus advised not to use a glob result as a guarantee of
-filesystem state in the face of rapid changes.  For the vast majority
-of operations, this is never a problem.
-
-## Contributing
-
-Any change to behavior (including bugfixes) must come with a test.
-
-Patches that fail tests or reduce performance will be rejected.
-
-```
-# to run tests
-npm test
-
-# to re-generate test fixtures
-npm run test-regen
-
-# to benchmark against bash/zsh
-npm run bench
-
-# to profile javascript
-npm run prof
-```
diff --git a/multiplatform-crypto-delegated/node_modules/glob/changelog.md b/multiplatform-crypto-delegated/node_modules/glob/changelog.md
deleted file mode 100644
index 4163677..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/changelog.md
+++ /dev/null
@@ -1,67 +0,0 @@
-## 7.0
-
-- Raise error if `options.cwd` is specified, and not a directory
-
-## 6.0
-
-- Remove comment and negation pattern support
-- Ignore patterns are always in `dot:true` mode
-
-## 5.0
-
-- Deprecate comment and negation patterns
-- Fix regression in `mark` and `nodir` options from making all cache
-  keys absolute path.
-- Abort if `fs.readdir` returns an error that's unexpected
-- Don't emit `match` events for ignored items
-- Treat ENOTSUP like ENOTDIR in readdir
-
-## 4.5
-
-- Add `options.follow` to always follow directory symlinks in globstar
-- Add `options.realpath` to call `fs.realpath` on all results
-- Always cache based on absolute path
-
-## 4.4
-
-- Add `options.ignore`
-- Fix handling of broken symlinks
-
-## 4.3
-
-- Bump minimatch to 2.x
-- Pass all tests on Windows
-
-## 4.2
-
-- Add `glob.hasMagic` function
-- Add `options.nodir` flag
-
-## 4.1
-
-- Refactor sync and async implementations for performance
-- Throw if callback provided to sync glob function
-- Treat symbolic links in globstar results the same as Bash 4.3
-
-## 4.0
-
-- Use `^` for dependency versions (bumped major because this breaks
-  older npm versions)
-- Ensure callbacks are only ever called once
-- switch to ISC license
-
-## 3.x
-
-- Rewrite in JavaScript
-- Add support for setting root, cwd, and windows support
-- Cache many fs calls
-- Add globstar support
-- emit match events
-
-## 2.x
-
-- Use `glob.h` and `fnmatch.h` from NetBSD
-
-## 1.x
-
-- `glob.h` static binding.
diff --git a/multiplatform-crypto-delegated/node_modules/glob/common.js b/multiplatform-crypto-delegated/node_modules/glob/common.js
deleted file mode 100644
index 66651bb..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/common.js
+++ /dev/null
@@ -1,240 +0,0 @@
-exports.alphasort = alphasort
-exports.alphasorti = alphasorti
-exports.setopts = setopts
-exports.ownProp = ownProp
-exports.makeAbs = makeAbs
-exports.finish = finish
-exports.mark = mark
-exports.isIgnored = isIgnored
-exports.childrenIgnored = childrenIgnored
-
-function ownProp (obj, field) {
-  return Object.prototype.hasOwnProperty.call(obj, field)
-}
-
-var path = require("path")
-var minimatch = require("minimatch")
-var isAbsolute = require("path-is-absolute")
-var Minimatch = minimatch.Minimatch
-
-function alphasorti (a, b) {
-  return a.toLowerCase().localeCompare(b.toLowerCase())
-}
-
-function alphasort (a, b) {
-  return a.localeCompare(b)
-}
-
-function setupIgnores (self, options) {
-  self.ignore = options.ignore || []
-
-  if (!Array.isArray(self.ignore))
-    self.ignore = [self.ignore]
-
-  if (self.ignore.length) {
-    self.ignore = self.ignore.map(ignoreMap)
-  }
-}
-
-// ignore patterns are always in dot:true mode.
-function ignoreMap (pattern) {
-  var gmatcher = null
-  if (pattern.slice(-3) === '/**') {
-    var gpattern = pattern.replace(/(\/\*\*)+$/, '')
-    gmatcher = new Minimatch(gpattern, { dot: true })
-  }
-
-  return {
-    matcher: new Minimatch(pattern, { dot: true }),
-    gmatcher: gmatcher
-  }
-}
-
-function setopts (self, pattern, options) {
-  if (!options)
-    options = {}
-
-  // base-matching: just use globstar for that.
-  if (options.matchBase && -1 === pattern.indexOf("/")) {
-    if (options.noglobstar) {
-      throw new Error("base matching requires globstar")
-    }
-    pattern = "**/" + pattern
-  }
-
-  self.silent = !!options.silent
-  self.pattern = pattern
-  self.strict = options.strict !== false
-  self.realpath = !!options.realpath
-  self.realpathCache = options.realpathCache || Object.create(null)
-  self.follow = !!options.follow
-  self.dot = !!options.dot
-  self.mark = !!options.mark
-  self.nodir = !!options.nodir
-  if (self.nodir)
-    self.mark = true
-  self.sync = !!options.sync
-  self.nounique = !!options.nounique
-  self.nonull = !!options.nonull
-  self.nosort = !!options.nosort
-  self.nocase = !!options.nocase
-  self.stat = !!options.stat
-  self.noprocess = !!options.noprocess
-  self.absolute = !!options.absolute
-
-  self.maxLength = options.maxLength || Infinity
-  self.cache = options.cache || Object.create(null)
-  self.statCache = options.statCache || Object.create(null)
-  self.symlinks = options.symlinks || Object.create(null)
-
-  setupIgnores(self, options)
-
-  self.changedCwd = false
-  var cwd = process.cwd()
-  if (!ownProp(options, "cwd"))
-    self.cwd = cwd
-  else {
-    self.cwd = path.resolve(options.cwd)
-    self.changedCwd = self.cwd !== cwd
-  }
-
-  self.root = options.root || path.resolve(self.cwd, "/")
-  self.root = path.resolve(self.root)
-  if (process.platform === "win32")
-    self.root = self.root.replace(/\\/g, "/")
-
-  // TODO: is an absolute `cwd` supposed to be resolved against `root`?
-  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
-  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
-  if (process.platform === "win32")
-    self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
-  self.nomount = !!options.nomount
-
-  // disable comments and negation in Minimatch.
-  // Note that they are not supported in Glob itself anyway.
-  options.nonegate = true
-  options.nocomment = true
-
-  self.minimatch = new Minimatch(pattern, options)
-  self.options = self.minimatch.options
-}
-
-function finish (self) {
-  var nou = self.nounique
-  var all = nou ? [] : Object.create(null)
-
-  for (var i = 0, l = self.matches.length; i < l; i ++) {
-    var matches = self.matches[i]
-    if (!matches || Object.keys(matches).length === 0) {
-      if (self.nonull) {
-        // do like the shell, and spit out the literal glob
-        var literal = self.minimatch.globSet[i]
-        if (nou)
-          all.push(literal)
-        else
-          all[literal] = true
-      }
-    } else {
-      // had matches
-      var m = Object.keys(matches)
-      if (nou)
-        all.push.apply(all, m)
-      else
-        m.forEach(function (m) {
-          all[m] = true
-        })
-    }
-  }
-
-  if (!nou)
-    all = Object.keys(all)
-
-  if (!self.nosort)
-    all = all.sort(self.nocase ? alphasorti : alphasort)
-
-  // at *some* point we statted all of these
-  if (self.mark) {
-    for (var i = 0; i < all.length; i++) {
-      all[i] = self._mark(all[i])
-    }
-    if (self.nodir) {
-      all = all.filter(function (e) {
-        var notDir = !(/\/$/.test(e))
-        var c = self.cache[e] || self.cache[makeAbs(self, e)]
-        if (notDir && c)
-          notDir = c !== 'DIR' && !Array.isArray(c)
-        return notDir
-      })
-    }
-  }
-
-  if (self.ignore.length)
-    all = all.filter(function(m) {
-      return !isIgnored(self, m)
-    })
-
-  self.found = all
-}
-
-function mark (self, p) {
-  var abs = makeAbs(self, p)
-  var c = self.cache[abs]
-  var m = p
-  if (c) {
-    var isDir = c === 'DIR' || Array.isArray(c)
-    var slash = p.slice(-1) === '/'
-
-    if (isDir && !slash)
-      m += '/'
-    else if (!isDir && slash)
-      m = m.slice(0, -1)
-
-    if (m !== p) {
-      var mabs = makeAbs(self, m)
-      self.statCache[mabs] = self.statCache[abs]
-      self.cache[mabs] = self.cache[abs]
-    }
-  }
-
-  return m
-}
-
-// lotta situps...
-function makeAbs (self, f) {
-  var abs = f
-  if (f.charAt(0) === '/') {
-    abs = path.join(self.root, f)
-  } else if (isAbsolute(f) || f === '') {
-    abs = f
-  } else if (self.changedCwd) {
-    abs = path.resolve(self.cwd, f)
-  } else {
-    abs = path.resolve(f)
-  }
-
-  if (process.platform === 'win32')
-    abs = abs.replace(/\\/g, '/')
-
-  return abs
-}
-
-
-// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
-// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
-function isIgnored (self, path) {
-  if (!self.ignore.length)
-    return false
-
-  return self.ignore.some(function(item) {
-    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
-  })
-}
-
-function childrenIgnored (self, path) {
-  if (!self.ignore.length)
-    return false
-
-  return self.ignore.some(function(item) {
-    return !!(item.gmatcher && item.gmatcher.match(path))
-  })
-}
diff --git a/multiplatform-crypto-delegated/node_modules/glob/glob.js b/multiplatform-crypto-delegated/node_modules/glob/glob.js
deleted file mode 100644
index 58dec0f..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/glob.js
+++ /dev/null
@@ -1,790 +0,0 @@
-// Approach:
-//
-// 1. Get the minimatch set
-// 2. For each pattern in the set, PROCESS(pattern, false)
-// 3. Store matches per-set, then uniq them
-//
-// PROCESS(pattern, inGlobStar)
-// Get the first [n] items from pattern that are all strings
-// Join these together.  This is PREFIX.
-//   If there is no more remaining, then stat(PREFIX) and
-//   add to matches if it succeeds.  END.
-//
-// If inGlobStar and PREFIX is symlink and points to dir
-//   set ENTRIES = []
-// else readdir(PREFIX) as ENTRIES
-//   If fail, END
-//
-// with ENTRIES
-//   If pattern[n] is GLOBSTAR
-//     // handle the case where the globstar match is empty
-//     // by pruning it out, and testing the resulting pattern
-//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
-//     // handle other cases.
-//     for ENTRY in ENTRIES (not dotfiles)
-//       // attach globstar + tail onto the entry
-//       // Mark that this entry is a globstar match
-//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
-//
-//   else // not globstar
-//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
-//       Test ENTRY against pattern[n]
-//       If fails, continue
-//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
-//
-// Caveat:
-//   Cache all stats and readdirs results to minimize syscall.  Since all
-//   we ever care about is existence and directory-ness, we can just keep
-//   `true` for files, and [children,...] for directories, or `false` for
-//   things that don't exist.
-
-module.exports = glob
-
-var fs = require('fs')
-var rp = require('fs.realpath')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var inherits = require('inherits')
-var EE = require('events').EventEmitter
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var globSync = require('./sync.js')
-var common = require('./common.js')
-var alphasort = common.alphasort
-var alphasorti = common.alphasorti
-var setopts = common.setopts
-var ownProp = common.ownProp
-var inflight = require('inflight')
-var util = require('util')
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-var once = require('once')
-
-function glob (pattern, options, cb) {
-  if (typeof options === 'function') cb = options, options = {}
-  if (!options) options = {}
-
-  if (options.sync) {
-    if (cb)
-      throw new TypeError('callback provided to sync glob')
-    return globSync(pattern, options)
-  }
-
-  return new Glob(pattern, options, cb)
-}
-
-glob.sync = globSync
-var GlobSync = glob.GlobSync = globSync.GlobSync
-
-// old api surface
-glob.glob = glob
-
-function extend (origin, add) {
-  if (add === null || typeof add !== 'object') {
-    return origin
-  }
-
-  var keys = Object.keys(add)
-  var i = keys.length
-  while (i--) {
-    origin[keys[i]] = add[keys[i]]
-  }
-  return origin
-}
-
-glob.hasMagic = function (pattern, options_) {
-  var options = extend({}, options_)
-  options.noprocess = true
-
-  var g = new Glob(pattern, options)
-  var set = g.minimatch.set
-
-  if (!pattern)
-    return false
-
-  if (set.length > 1)
-    return true
-
-  for (var j = 0; j < set[0].length; j++) {
-    if (typeof set[0][j] !== 'string')
-      return true
-  }
-
-  return false
-}
-
-glob.Glob = Glob
-inherits(Glob, EE)
-function Glob (pattern, options, cb) {
-  if (typeof options === 'function') {
-    cb = options
-    options = null
-  }
-
-  if (options && options.sync) {
-    if (cb)
-      throw new TypeError('callback provided to sync glob')
-    return new GlobSync(pattern, options)
-  }
-
-  if (!(this instanceof Glob))
-    return new Glob(pattern, options, cb)
-
-  setopts(this, pattern, options)
-  this._didRealPath = false
-
-  // process each pattern in the minimatch set
-  var n = this.minimatch.set.length
-
-  // The matches are stored as {: true,...} so that
-  // duplicates are automagically pruned.
-  // Later, we do an Object.keys() on these.
-  // Keep them as a list so we can fill in when nonull is set.
-  this.matches = new Array(n)
-
-  if (typeof cb === 'function') {
-    cb = once(cb)
-    this.on('error', cb)
-    this.on('end', function (matches) {
-      cb(null, matches)
-    })
-  }
-
-  var self = this
-  this._processing = 0
-
-  this._emitQueue = []
-  this._processQueue = []
-  this.paused = false
-
-  if (this.noprocess)
-    return this
-
-  if (n === 0)
-    return done()
-
-  var sync = true
-  for (var i = 0; i < n; i ++) {
-    this._process(this.minimatch.set[i], i, false, done)
-  }
-  sync = false
-
-  function done () {
-    --self._processing
-    if (self._processing <= 0) {
-      if (sync) {
-        process.nextTick(function () {
-          self._finish()
-        })
-      } else {
-        self._finish()
-      }
-    }
-  }
-}
-
-Glob.prototype._finish = function () {
-  assert(this instanceof Glob)
-  if (this.aborted)
-    return
-
-  if (this.realpath && !this._didRealpath)
-    return this._realpath()
-
-  common.finish(this)
-  this.emit('end', this.found)
-}
-
-Glob.prototype._realpath = function () {
-  if (this._didRealpath)
-    return
-
-  this._didRealpath = true
-
-  var n = this.matches.length
-  if (n === 0)
-    return this._finish()
-
-  var self = this
-  for (var i = 0; i < this.matches.length; i++)
-    this._realpathSet(i, next)
-
-  function next () {
-    if (--n === 0)
-      self._finish()
-  }
-}
-
-Glob.prototype._realpathSet = function (index, cb) {
-  var matchset = this.matches[index]
-  if (!matchset)
-    return cb()
-
-  var found = Object.keys(matchset)
-  var self = this
-  var n = found.length
-
-  if (n === 0)
-    return cb()
-
-  var set = this.matches[index] = Object.create(null)
-  found.forEach(function (p, i) {
-    // If there's a problem with the stat, then it means that
-    // one or more of the links in the realpath couldn't be
-    // resolved.  just return the abs value in that case.
-    p = self._makeAbs(p)
-    rp.realpath(p, self.realpathCache, function (er, real) {
-      if (!er)
-        set[real] = true
-      else if (er.syscall === 'stat')
-        set[p] = true
-      else
-        self.emit('error', er) // srsly wtf right here
-
-      if (--n === 0) {
-        self.matches[index] = set
-        cb()
-      }
-    })
-  })
-}
-
-Glob.prototype._mark = function (p) {
-  return common.mark(this, p)
-}
-
-Glob.prototype._makeAbs = function (f) {
-  return common.makeAbs(this, f)
-}
-
-Glob.prototype.abort = function () {
-  this.aborted = true
-  this.emit('abort')
-}
-
-Glob.prototype.pause = function () {
-  if (!this.paused) {
-    this.paused = true
-    this.emit('pause')
-  }
-}
-
-Glob.prototype.resume = function () {
-  if (this.paused) {
-    this.emit('resume')
-    this.paused = false
-    if (this._emitQueue.length) {
-      var eq = this._emitQueue.slice(0)
-      this._emitQueue.length = 0
-      for (var i = 0; i < eq.length; i ++) {
-        var e = eq[i]
-        this._emitMatch(e[0], e[1])
-      }
-    }
-    if (this._processQueue.length) {
-      var pq = this._processQueue.slice(0)
-      this._processQueue.length = 0
-      for (var i = 0; i < pq.length; i ++) {
-        var p = pq[i]
-        this._processing--
-        this._process(p[0], p[1], p[2], p[3])
-      }
-    }
-  }
-}
-
-Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
-  assert(this instanceof Glob)
-  assert(typeof cb === 'function')
-
-  if (this.aborted)
-    return
-
-  this._processing++
-  if (this.paused) {
-    this._processQueue.push([pattern, index, inGlobStar, cb])
-    return
-  }
-
-  //console.error('PROCESS %d', this._processing, pattern)
-
-  // Get the first [n] parts of pattern that are all strings.
-  var n = 0
-  while (typeof pattern[n] === 'string') {
-    n ++
-  }
-  // now n is the index of the first one that is *not* a string.
-
-  // see if there's anything else
-  var prefix
-  switch (n) {
-    // if not, then this is rather simple
-    case pattern.length:
-      this._processSimple(pattern.join('/'), index, cb)
-      return
-
-    case 0:
-      // pattern *starts* with some non-trivial item.
-      // going to readdir(cwd), but not include the prefix in matches.
-      prefix = null
-      break
-
-    default:
-      // pattern has some string bits in the front.
-      // whatever it starts with, whether that's 'absolute' like /foo/bar,
-      // or 'relative' like '../baz'
-      prefix = pattern.slice(0, n).join('/')
-      break
-  }
-
-  var remain = pattern.slice(n)
-
-  // get the list of entries.
-  var read
-  if (prefix === null)
-    read = '.'
-  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
-    if (!prefix || !isAbsolute(prefix))
-      prefix = '/' + prefix
-    read = prefix
-  } else
-    read = prefix
-
-  var abs = this._makeAbs(read)
-
-  //if ignored, skip _processing
-  if (childrenIgnored(this, read))
-    return cb()
-
-  var isGlobStar = remain[0] === minimatch.GLOBSTAR
-  if (isGlobStar)
-    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
-  else
-    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
-}
-
-Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
-  var self = this
-  this._readdir(abs, inGlobStar, function (er, entries) {
-    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
-  })
-}
-
-Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-
-  // if the abs isn't a dir, then nothing can match!
-  if (!entries)
-    return cb()
-
-  // It will only match dot entries if it starts with a dot, or if
-  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
-  var pn = remain[0]
-  var negate = !!this.minimatch.negate
-  var rawGlob = pn._glob
-  var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
-  var matchedEntries = []
-  for (var i = 0; i < entries.length; i++) {
-    var e = entries[i]
-    if (e.charAt(0) !== '.' || dotOk) {
-      var m
-      if (negate && !prefix) {
-        m = !e.match(pn)
-      } else {
-        m = e.match(pn)
-      }
-      if (m)
-        matchedEntries.push(e)
-    }
-  }
-
-  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
-
-  var len = matchedEntries.length
-  // If there are no matched entries, then nothing matches.
-  if (len === 0)
-    return cb()
-
-  // if this is the last remaining pattern bit, then no need for
-  // an additional stat *unless* the user has specified mark or
-  // stat explicitly.  We know they exist, since readdir returned
-  // them.
-
-  if (remain.length === 1 && !this.mark && !this.stat) {
-    if (!this.matches[index])
-      this.matches[index] = Object.create(null)
-
-    for (var i = 0; i < len; i ++) {
-      var e = matchedEntries[i]
-      if (prefix) {
-        if (prefix !== '/')
-          e = prefix + '/' + e
-        else
-          e = prefix + e
-      }
-
-      if (e.charAt(0) === '/' && !this.nomount) {
-        e = path.join(this.root, e)
-      }
-      this._emitMatch(index, e)
-    }
-    // This was the last one, and no stats were needed
-    return cb()
-  }
-
-  // now test all matched entries as stand-ins for that part
-  // of the pattern.
-  remain.shift()
-  for (var i = 0; i < len; i ++) {
-    var e = matchedEntries[i]
-    var newPattern
-    if (prefix) {
-      if (prefix !== '/')
-        e = prefix + '/' + e
-      else
-        e = prefix + e
-    }
-    this._process([e].concat(remain), index, inGlobStar, cb)
-  }
-  cb()
-}
-
-Glob.prototype._emitMatch = function (index, e) {
-  if (this.aborted)
-    return
-
-  if (isIgnored(this, e))
-    return
-
-  if (this.paused) {
-    this._emitQueue.push([index, e])
-    return
-  }
-
-  var abs = isAbsolute(e) ? e : this._makeAbs(e)
-
-  if (this.mark)
-    e = this._mark(e)
-
-  if (this.absolute)
-    e = abs
-
-  if (this.matches[index][e])
-    return
-
-  if (this.nodir) {
-    var c = this.cache[abs]
-    if (c === 'DIR' || Array.isArray(c))
-      return
-  }
-
-  this.matches[index][e] = true
-
-  var st = this.statCache[abs]
-  if (st)
-    this.emit('stat', e, st)
-
-  this.emit('match', e)
-}
-
-Glob.prototype._readdirInGlobStar = function (abs, cb) {
-  if (this.aborted)
-    return
-
-  // follow all symlinked directories forever
-  // just proceed as if this is a non-globstar situation
-  if (this.follow)
-    return this._readdir(abs, false, cb)
-
-  var lstatkey = 'lstat\0' + abs
-  var self = this
-  var lstatcb = inflight(lstatkey, lstatcb_)
-
-  if (lstatcb)
-    fs.lstat(abs, lstatcb)
-
-  function lstatcb_ (er, lstat) {
-    if (er && er.code === 'ENOENT')
-      return cb()
-
-    var isSym = lstat && lstat.isSymbolicLink()
-    self.symlinks[abs] = isSym
-
-    // If it's not a symlink or a dir, then it's definitely a regular file.
-    // don't bother doing a readdir in that case.
-    if (!isSym && lstat && !lstat.isDirectory()) {
-      self.cache[abs] = 'FILE'
-      cb()
-    } else
-      self._readdir(abs, false, cb)
-  }
-}
-
-Glob.prototype._readdir = function (abs, inGlobStar, cb) {
-  if (this.aborted)
-    return
-
-  cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
-  if (!cb)
-    return
-
-  //console.error('RD %j %j', +inGlobStar, abs)
-  if (inGlobStar && !ownProp(this.symlinks, abs))
-    return this._readdirInGlobStar(abs, cb)
-
-  if (ownProp(this.cache, abs)) {
-    var c = this.cache[abs]
-    if (!c || c === 'FILE')
-      return cb()
-
-    if (Array.isArray(c))
-      return cb(null, c)
-  }
-
-  var self = this
-  fs.readdir(abs, readdirCb(this, abs, cb))
-}
-
-function readdirCb (self, abs, cb) {
-  return function (er, entries) {
-    if (er)
-      self._readdirError(abs, er, cb)
-    else
-      self._readdirEntries(abs, entries, cb)
-  }
-}
-
-Glob.prototype._readdirEntries = function (abs, entries, cb) {
-  if (this.aborted)
-    return
-
-  // if we haven't asked to stat everything, then just
-  // assume that everything in there exists, so we can avoid
-  // having to stat it a second time.
-  if (!this.mark && !this.stat) {
-    for (var i = 0; i < entries.length; i ++) {
-      var e = entries[i]
-      if (abs === '/')
-        e = abs + e
-      else
-        e = abs + '/' + e
-      this.cache[e] = true
-    }
-  }
-
-  this.cache[abs] = entries
-  return cb(null, entries)
-}
-
-Glob.prototype._readdirError = function (f, er, cb) {
-  if (this.aborted)
-    return
-
-  // handle errors, and cache the information
-  switch (er.code) {
-    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
-    case 'ENOTDIR': // totally normal. means it *does* exist.
-      var abs = this._makeAbs(f)
-      this.cache[abs] = 'FILE'
-      if (abs === this.cwdAbs) {
-        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
-        error.path = this.cwd
-        error.code = er.code
-        this.emit('error', error)
-        this.abort()
-      }
-      break
-
-    case 'ENOENT': // not terribly unusual
-    case 'ELOOP':
-    case 'ENAMETOOLONG':
-    case 'UNKNOWN':
-      this.cache[this._makeAbs(f)] = false
-      break
-
-    default: // some unusual error.  Treat as failure.
-      this.cache[this._makeAbs(f)] = false
-      if (this.strict) {
-        this.emit('error', er)
-        // If the error is handled, then we abort
-        // if not, we threw out of here
-        this.abort()
-      }
-      if (!this.silent)
-        console.error('glob error', er)
-      break
-  }
-
-  return cb()
-}
-
-Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
-  var self = this
-  this._readdir(abs, inGlobStar, function (er, entries) {
-    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
-  })
-}
-
-
-Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
-  //console.error('pgs2', prefix, remain[0], entries)
-
-  // no entries means not a dir, so it can never have matches
-  // foo.txt/** doesn't match foo.txt
-  if (!entries)
-    return cb()
-
-  // test without the globstar, and with every child both below
-  // and replacing the globstar.
-  var remainWithoutGlobStar = remain.slice(1)
-  var gspref = prefix ? [ prefix ] : []
-  var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
-  // the noGlobStar pattern exits the inGlobStar state
-  this._process(noGlobStar, index, false, cb)
-
-  var isSym = this.symlinks[abs]
-  var len = entries.length
-
-  // If it's a symlink, and we're in a globstar, then stop
-  if (isSym && inGlobStar)
-    return cb()
-
-  for (var i = 0; i < len; i++) {
-    var e = entries[i]
-    if (e.charAt(0) === '.' && !this.dot)
-      continue
-
-    // these two cases enter the inGlobStar state
-    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
-    this._process(instead, index, true, cb)
-
-    var below = gspref.concat(entries[i], remain)
-    this._process(below, index, true, cb)
-  }
-
-  cb()
-}
-
-Glob.prototype._processSimple = function (prefix, index, cb) {
-  // XXX review this.  Shouldn't it be doing the mounting etc
-  // before doing stat?  kinda weird?
-  var self = this
-  this._stat(prefix, function (er, exists) {
-    self._processSimple2(prefix, index, er, exists, cb)
-  })
-}
-Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
-
-  //console.error('ps2', prefix, exists)
-
-  if (!this.matches[index])
-    this.matches[index] = Object.create(null)
-
-  // If it doesn't exist, then just mark the lack of results
-  if (!exists)
-    return cb()
-
-  if (prefix && isAbsolute(prefix) && !this.nomount) {
-    var trail = /[\/\\]$/.test(prefix)
-    if (prefix.charAt(0) === '/') {
-      prefix = path.join(this.root, prefix)
-    } else {
-      prefix = path.resolve(this.root, prefix)
-      if (trail)
-        prefix += '/'
-    }
-  }
-
-  if (process.platform === 'win32')
-    prefix = prefix.replace(/\\/g, '/')
-
-  // Mark this as a match
-  this._emitMatch(index, prefix)
-  cb()
-}
-
-// Returns either 'DIR', 'FILE', or false
-Glob.prototype._stat = function (f, cb) {
-  var abs = this._makeAbs(f)
-  var needDir = f.slice(-1) === '/'
-
-  if (f.length > this.maxLength)
-    return cb()
-
-  if (!this.stat && ownProp(this.cache, abs)) {
-    var c = this.cache[abs]
-
-    if (Array.isArray(c))
-      c = 'DIR'
-
-    // It exists, but maybe not how we need it
-    if (!needDir || c === 'DIR')
-      return cb(null, c)
-
-    if (needDir && c === 'FILE')
-      return cb()
-
-    // otherwise we have to stat, because maybe c=true
-    // if we know it exists, but not what it is.
-  }
-
-  var exists
-  var stat = this.statCache[abs]
-  if (stat !== undefined) {
-    if (stat === false)
-      return cb(null, stat)
-    else {
-      var type = stat.isDirectory() ? 'DIR' : 'FILE'
-      if (needDir && type === 'FILE')
-        return cb()
-      else
-        return cb(null, type, stat)
-    }
-  }
-
-  var self = this
-  var statcb = inflight('stat\0' + abs, lstatcb_)
-  if (statcb)
-    fs.lstat(abs, statcb)
-
-  function lstatcb_ (er, lstat) {
-    if (lstat && lstat.isSymbolicLink()) {
-      // If it's a symlink, then treat it as the target, unless
-      // the target does not exist, then treat it as a file.
-      return fs.stat(abs, function (er, stat) {
-        if (er)
-          self._stat2(f, abs, null, lstat, cb)
-        else
-          self._stat2(f, abs, er, stat, cb)
-      })
-    } else {
-      self._stat2(f, abs, er, lstat, cb)
-    }
-  }
-}
-
-Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
-  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
-    this.statCache[abs] = false
-    return cb()
-  }
-
-  var needDir = f.slice(-1) === '/'
-  this.statCache[abs] = stat
-
-  if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
-    return cb(null, false, stat)
-
-  var c = true
-  if (stat)
-    c = stat.isDirectory() ? 'DIR' : 'FILE'
-  this.cache[abs] = this.cache[abs] || c
-
-  if (needDir && c === 'FILE')
-    return cb()
-
-  return cb(null, c, stat)
-}
diff --git a/multiplatform-crypto-delegated/node_modules/glob/package.json b/multiplatform-crypto-delegated/node_modules/glob/package.json
deleted file mode 100644
index 41438b2..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
-  "_from": "glob@7.1.2",
-  "_id": "glob@7.1.2",
-  "_inBundle": false,
-  "_integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
-  "_location": "/glob",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "glob@7.1.2",
-    "name": "glob",
-    "escapedName": "glob",
-    "rawSpec": "7.1.2",
-    "saveSpec": null,
-    "fetchSpec": "7.1.2"
-  },
-  "_requiredBy": [
-    "/mocha"
-  ],
-  "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
-  "_shasum": "c19c9df9a028702d678612384a6552404c636d15",
-  "_spec": "glob@7.1.2",
-  "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "bugs": {
-    "url": "https://github.com/isaacs/node-glob/issues"
-  },
-  "bundleDependencies": false,
-  "dependencies": {
-    "fs.realpath": "^1.0.0",
-    "inflight": "^1.0.4",
-    "inherits": "2",
-    "minimatch": "^3.0.4",
-    "once": "^1.3.0",
-    "path-is-absolute": "^1.0.0"
-  },
-  "deprecated": false,
-  "description": "a little globber",
-  "devDependencies": {
-    "mkdirp": "0",
-    "rimraf": "^2.2.8",
-    "tap": "^7.1.2",
-    "tick": "0.0.6"
-  },
-  "engines": {
-    "node": "*"
-  },
-  "files": [
-    "glob.js",
-    "sync.js",
-    "common.js"
-  ],
-  "homepage": "https://github.com/isaacs/node-glob#readme",
-  "license": "ISC",
-  "main": "glob.js",
-  "name": "glob",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/node-glob.git"
-  },
-  "scripts": {
-    "bench": "bash benchmark.sh",
-    "benchclean": "node benchclean.js",
-    "prepublish": "npm run benchclean",
-    "prof": "bash prof.sh && cat profile.txt",
-    "profclean": "rm -f v8.log profile.txt",
-    "test": "tap test/*.js --cov",
-    "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
-  },
-  "version": "7.1.2"
-}
diff --git a/multiplatform-crypto-delegated/node_modules/glob/sync.js b/multiplatform-crypto-delegated/node_modules/glob/sync.js
deleted file mode 100644
index c952134..0000000
--- a/multiplatform-crypto-delegated/node_modules/glob/sync.js
+++ /dev/null
@@ -1,486 +0,0 @@
-module.exports = globSync
-globSync.GlobSync = GlobSync
-
-var fs = require('fs')
-var rp = require('fs.realpath')
-var minimatch = require('minimatch')
-var Minimatch = minimatch.Minimatch
-var Glob = require('./glob.js').Glob
-var util = require('util')
-var path = require('path')
-var assert = require('assert')
-var isAbsolute = require('path-is-absolute')
-var common = require('./common.js')
-var alphasort = common.alphasort
-var alphasorti = common.alphasorti
-var setopts = common.setopts
-var ownProp = common.ownProp
-var childrenIgnored = common.childrenIgnored
-var isIgnored = common.isIgnored
-
-function globSync (pattern, options) {
-  if (typeof options === 'function' || arguments.length === 3)
-    throw new TypeError('callback provided to sync glob\n'+
-                        'See: https://github.com/isaacs/node-glob/issues/167')
-
-  return new GlobSync(pattern, options).found
-}
-
-function GlobSync (pattern, options) {
-  if (!pattern)
-    throw new Error('must provide pattern')
-
-  if (typeof options === 'function' || arguments.length === 3)
-    throw new TypeError('callback provided to sync glob\n'+
-                        'See: https://github.com/isaacs/node-glob/issues/167')
-
-  if (!(this instanceof GlobSync))
-    return new GlobSync(pattern, options)
-
-  setopts(this, pattern, options)
-
-  if (this.noprocess)
-    return this
-
-  var n = this.minimatch.set.length
-  this.matches = new Array(n)
-  for (var i = 0; i < n; i ++) {
-    this._process(this.minimatch.set[i], i, false)
-  }
-  this._finish()
-}
-
-GlobSync.prototype._finish = function () {
-  assert(this instanceof GlobSync)
-  if (this.realpath) {
-    var self = this
-    this.matches.forEach(function (matchset, index) {
-      var set = self.matches[index] = Object.create(null)
-      for (var p in matchset) {
-        try {
-          p = self._makeAbs(p)
-          var real = rp.realpathSync(p, self.realpathCache)
-          set[real] = true
-        } catch (er) {
-          if (er.syscall === 'stat')
-            set[self._makeAbs(p)] = true
-          else
-            throw er
-        }
-      }
-    })
-  }
-  common.finish(this)
-}
-
-
-GlobSync.prototype._process = function (pattern, index, inGlobStar) {
-  assert(this instanceof GlobSync)
-
-  // Get the first [n] parts of pattern that are all strings.
-  var n = 0
-  while (typeof pattern[n] === 'string') {
-    n ++
-  }
-  // now n is the index of the first one that is *not* a string.
-
-  // See if there's anything else
-  var prefix
-  switch (n) {
-    // if not, then this is rather simple
-    case pattern.length:
-      this._processSimple(pattern.join('/'), index)
-      return
-
-    case 0:
-      // pattern *starts* with some non-trivial item.
-      // going to readdir(cwd), but not include the prefix in matches.
-      prefix = null
-      break
-
-    default:
-      // pattern has some string bits in the front.
-      // whatever it starts with, whether that's 'absolute' like /foo/bar,
-      // or 'relative' like '../baz'
-      prefix = pattern.slice(0, n).join('/')
-      break
-  }
-
-  var remain = pattern.slice(n)
-
-  // get the list of entries.
-  var read
-  if (prefix === null)
-    read = '.'
-  else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
-    if (!prefix || !isAbsolute(prefix))
-      prefix = '/' + prefix
-    read = prefix
-  } else
-    read = prefix
-
-  var abs = this._makeAbs(read)
-
-  //if ignored, skip processing
-  if (childrenIgnored(this, read))
-    return
-
-  var isGlobStar = remain[0] === minimatch.GLOBSTAR
-  if (isGlobStar)
-    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
-  else
-    this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
-}
-
-
-GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
-  var entries = this._readdir(abs, inGlobStar)
-
-  // if the abs isn't a dir, then nothing can match!
-  if (!entries)
-    return
-
-  // It will only match dot entries if it starts with a dot, or if
-  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.
-  var pn = remain[0]
-  var negate = !!this.minimatch.negate
-  var rawGlob = pn._glob
-  var dotOk = this.dot || rawGlob.charAt(0) === '.'
-
-  var matchedEntries = []
-  for (var i = 0; i < entries.length; i++) {
-    var e = entries[i]
-    if (e.charAt(0) !== '.' || dotOk) {
-      var m
-      if (negate && !prefix) {
-        m = !e.match(pn)
-      } else {
-        m = e.match(pn)
-      }
-      if (m)
-        matchedEntries.push(e)
-    }
-  }
-
-  var len = matchedEntries.length
-  // If there are no matched entries, then nothing matches.
-  if (len === 0)
-    return
-
-  // if this is the last remaining pattern bit, then no need for
-  // an additional stat *unless* the user has specified mark or
-  // stat explicitly.  We know they exist, since readdir returned
-  // them.
-
-  if (remain.length === 1 && !this.mark && !this.stat) {
-    if (!this.matches[index])
-      this.matches[index] = Object.create(null)
-
-    for (var i = 0; i < len; i ++) {
-      var e = matchedEntries[i]
-      if (prefix) {
-        if (prefix.slice(-1) !== '/')
-          e = prefix + '/' + e
-        else
-          e = prefix + e
-      }
-
-      if (e.charAt(0) === '/' && !this.nomount) {
-        e = path.join(this.root, e)
-      }
-      this._emitMatch(index, e)
-    }
-    // This was the last one, and no stats were needed
-    return
-  }
-
-  // now test all matched entries as stand-ins for that part
-  // of the pattern.
-  remain.shift()
-  for (var i = 0; i < len; i ++) {
-    var e = matchedEntries[i]
-    var newPattern
-    if (prefix)
-      newPattern = [prefix, e]
-    else
-      newPattern = [e]
-    this._process(newPattern.concat(remain), index, inGlobStar)
-  }
-}
-
-
-GlobSync.prototype._emitMatch = function (index, e) {
-  if (isIgnored(this, e))
-    return
-
-  var abs = this._makeAbs(e)
-
-  if (this.mark)
-    e = this._mark(e)
-
-  if (this.absolute) {
-    e = abs
-  }
-
-  if (this.matches[index][e])
-    return
-
-  if (this.nodir) {
-    var c = this.cache[abs]
-    if (c === 'DIR' || Array.isArray(c))
-      return
-  }
-
-  this.matches[index][e] = true
-
-  if (this.stat)
-    this._stat(e)
-}
-
-
-GlobSync.prototype._readdirInGlobStar = function (abs) {
-  // follow all symlinked directories forever
-  // just proceed as if this is a non-globstar situation
-  if (this.follow)
-    return this._readdir(abs, false)
-
-  var entries
-  var lstat
-  var stat
-  try {
-    lstat = fs.lstatSync(abs)
-  } catch (er) {
-    if (er.code === 'ENOENT') {
-      // lstat failed, doesn't exist
-      return null
-    }
-  }
-
-  var isSym = lstat && lstat.isSymbolicLink()
-  this.symlinks[abs] = isSym
-
-  // If it's not a symlink or a dir, then it's definitely a regular file.
-  // don't bother doing a readdir in that case.
-  if (!isSym && lstat && !lstat.isDirectory())
-    this.cache[abs] = 'FILE'
-  else
-    entries = this._readdir(abs, false)
-
-  return entries
-}
-
-GlobSync.prototype._readdir = function (abs, inGlobStar) {
-  var entries
-
-  if (inGlobStar && !ownProp(this.symlinks, abs))
-    return this._readdirInGlobStar(abs)
-
-  if (ownProp(this.cache, abs)) {
-    var c = this.cache[abs]
-    if (!c || c === 'FILE')
-      return null
-
-    if (Array.isArray(c))
-      return c
-  }
-
-  try {
-    return this._readdirEntries(abs, fs.readdirSync(abs))
-  } catch (er) {
-    this._readdirError(abs, er)
-    return null
-  }
-}
-
-GlobSync.prototype._readdirEntries = function (abs, entries) {
-  // if we haven't asked to stat everything, then just
-  // assume that everything in there exists, so we can avoid
-  // having to stat it a second time.
-  if (!this.mark && !this.stat) {
-    for (var i = 0; i < entries.length; i ++) {
-      var e = entries[i]
-      if (abs === '/')
-        e = abs + e
-      else
-        e = abs + '/' + e
-      this.cache[e] = true
-    }
-  }
-
-  this.cache[abs] = entries
-
-  // mark and cache dir-ness
-  return entries
-}
-
-GlobSync.prototype._readdirError = function (f, er) {
-  // handle errors, and cache the information
-  switch (er.code) {
-    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
-    case 'ENOTDIR': // totally normal. means it *does* exist.
-      var abs = this._makeAbs(f)
-      this.cache[abs] = 'FILE'
-      if (abs === this.cwdAbs) {
-        var error = new Error(er.code + ' invalid cwd ' + this.cwd)
-        error.path = this.cwd
-        error.code = er.code
-        throw error
-      }
-      break
-
-    case 'ENOENT': // not terribly unusual
-    case 'ELOOP':
-    case 'ENAMETOOLONG':
-    case 'UNKNOWN':
-      this.cache[this._makeAbs(f)] = false
-      break
-
-    default: // some unusual error.  Treat as failure.
-      this.cache[this._makeAbs(f)] = false
-      if (this.strict)
-        throw er
-      if (!this.silent)
-        console.error('glob error', er)
-      break
-  }
-}
-
-GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
-
-  var entries = this._readdir(abs, inGlobStar)
-
-  // no entries means not a dir, so it can never have matches
-  // foo.txt/** doesn't match foo.txt
-  if (!entries)
-    return
-
-  // test without the globstar, and with every child both below
-  // and replacing the globstar.
-  var remainWithoutGlobStar = remain.slice(1)
-  var gspref = prefix ? [ prefix ] : []
-  var noGlobStar = gspref.concat(remainWithoutGlobStar)
-
-  // the noGlobStar pattern exits the inGlobStar state
-  this._process(noGlobStar, index, false)
-
-  var len = entries.length
-  var isSym = this.symlinks[abs]
-
-  // If it's a symlink, and we're in a globstar, then stop
-  if (isSym && inGlobStar)
-    return
-
-  for (var i = 0; i < len; i++) {
-    var e = entries[i]
-    if (e.charAt(0) === '.' && !this.dot)
-      continue
-
-    // these two cases enter the inGlobStar state
-    var instead = gspref.concat(entries[i], remainWithoutGlobStar)
-    this._process(instead, index, true)
-
-    var below = gspref.concat(entries[i], remain)
-    this._process(below, index, true)
-  }
-}
-
-GlobSync.prototype._processSimple = function (prefix, index) {
-  // XXX review this.  Shouldn't it be doing the mounting etc
-  // before doing stat?  kinda weird?
-  var exists = this._stat(prefix)
-
-  if (!this.matches[index])
-    this.matches[index] = Object.create(null)
-
-  // If it doesn't exist, then just mark the lack of results
-  if (!exists)
-    return
-
-  if (prefix && isAbsolute(prefix) && !this.nomount) {
-    var trail = /[\/\\]$/.test(prefix)
-    if (prefix.charAt(0) === '/') {
-      prefix = path.join(this.root, prefix)
-    } else {
-      prefix = path.resolve(this.root, prefix)
-      if (trail)
-        prefix += '/'
-    }
-  }
-
-  if (process.platform === 'win32')
-    prefix = prefix.replace(/\\/g, '/')
-
-  // Mark this as a match
-  this._emitMatch(index, prefix)
-}
-
-// Returns either 'DIR', 'FILE', or false
-GlobSync.prototype._stat = function (f) {
-  var abs = this._makeAbs(f)
-  var needDir = f.slice(-1) === '/'
-
-  if (f.length > this.maxLength)
-    return false
-
-  if (!this.stat && ownProp(this.cache, abs)) {
-    var c = this.cache[abs]
-
-    if (Array.isArray(c))
-      c = 'DIR'
-
-    // It exists, but maybe not how we need it
-    if (!needDir || c === 'DIR')
-      return c
-
-    if (needDir && c === 'FILE')
-      return false
-
-    // otherwise we have to stat, because maybe c=true
-    // if we know it exists, but not what it is.
-  }
-
-  var exists
-  var stat = this.statCache[abs]
-  if (!stat) {
-    var lstat
-    try {
-      lstat = fs.lstatSync(abs)
-    } catch (er) {
-      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
-        this.statCache[abs] = false
-        return false
-      }
-    }
-
-    if (lstat && lstat.isSymbolicLink()) {
-      try {
-        stat = fs.statSync(abs)
-      } catch (er) {
-        stat = lstat
-      }
-    } else {
-      stat = lstat
-    }
-  }
-
-  this.statCache[abs] = stat
-
-  var c = true
-  if (stat)
-    c = stat.isDirectory() ? 'DIR' : 'FILE'
-
-  this.cache[abs] = this.cache[abs] || c
-
-  if (needDir && c === 'FILE')
-    return false
-
-  return c
-}
-
-GlobSync.prototype._mark = function (p) {
-  return common.mark(this, p)
-}
-
-GlobSync.prototype._makeAbs = function (f) {
-  return common.makeAbs(this, f)
-}
diff --git a/multiplatform-crypto-delegated/node_modules/growl/.eslintrc.json b/multiplatform-crypto-delegated/node_modules/growl/.eslintrc.json
deleted file mode 100644
index f067e89..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/.eslintrc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-    "extends": ["airbnb-base", "eslint:recommended", "plugin:node/recommended"],
-    "plugins": [
-        "import",
-        "node"
-    ],
-    "rules": {
-      "no-console": ["error", { "allow": ["warn", "error"] }]
-    },
-    "env": {
-        "node": true,
-        "es6": true
-    }
-}
diff --git a/multiplatform-crypto-delegated/node_modules/growl/.tags b/multiplatform-crypto-delegated/node_modules/growl/.tags
deleted file mode 100644
index ce68994..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/.tags
+++ /dev/null
@@ -1,195 +0,0 @@
-name	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "name": "growl",$/;"	function	line:2
-version	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "version": "1.10.1",$/;"	function	line:3
-description	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "description": "Growl unobtrusive notifications",$/;"	function	line:4
-author	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "author": "TJ Holowaychuk ",$/;"	function	line:5
-maintainers	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "maintainers": [$/;"	function	line:6
-repository	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "repository": {$/;"	function	line:10
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "type": "git",$/;"	function	line:11
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "url": "git:\/\/github.com\/tj\/node-growl.git"$/;"	function	line:12
-main	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "main": ".\/lib\/growl.js",$/;"	function	line:14
-license	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "license": "MIT",$/;"	function	line:15
-devDependencies	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "devDependencies": {$/;"	function	line:16
-eslint	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "eslint": "^4.2.0",$/;"	function	line:17
-eslint-config-airbnb-base	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "eslint-config-airbnb-base": "^11.2.0",$/;"	function	line:18
-eslint-plugin-import	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "eslint-plugin-import": "^2.7.0"$/;"	function	line:19
-scripts	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "scripts": {$/;"	function	line:21
-test	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "test": "node test.js",$/;"	function	line:22
-lint	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "lint": "eslint --ext js lib "$/;"	function	line:23
-engines	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^  "engines": {$/;"	function	line:25
-node	/Users/timosand/Dropbox/Documents/Projects/node-growl/package.json	/^    "node": ">=4.x"$/;"	function	line:26
-extends	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^    "extends": ["airbnb-base", "eslint:recommended", "plugin:node\/recommended"],$/;"	function	line:2
-plugins	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^    "plugins": [$/;"	function	line:3
-rules	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^    "rules": {$/;"	function	line:7
-no-console	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^      "no-console": ["error", { "allow": ["warn", "error"] }]$/;"	function	line:8
-env	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^    "env": {$/;"	function	line:10
-node	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^        "node": true,$/;"	function	line:11
-es6	/Users/timosand/Dropbox/Documents/Projects/node-growl/.eslintrc.json	/^        "es6": true$/;"	function	line:12
-language	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^language: node_js$/;"	function	line:1
-dist	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^dist: trusty$/;"	function	line:2
-os	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^os:$/;"	function	line:3
-node_js	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^node_js:$/;"	function	line:6
-before_install	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^before_install:$/;"	function	line:12
-jobs	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^jobs:$/;"	function	line:14
-include	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^  include:$/;"	function	line:15
-script	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^      script: npm run lint$/;"	function	line:17
-script	/Users/timosand/Dropbox/Documents/Projects/node-growl/.travis.yml	/^      script: npm test$/;"	function	line:19
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^let cmd;$/;"	variable	line:15
-which	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function which(name) {$/;"	function	line:17
-loc	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let loc;$/;"	variable	line:19
-len	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  for (let i = 0, len = paths.length; i < len; i += 1) {$/;"	variable	line:21
-loc	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    loc = path.join(paths[i], name);$/;"	variable	line:22
-setupCmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function setupCmd() {$/;"	function	line:28
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:32
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:32
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-NotificationCenter',$/;"	string	line:33
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-NotificationCenter',$/;"	variable	line:33
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'terminal-notifier',$/;"	string	line:34
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'terminal-notifier',$/;"	variable	line:34
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-message',$/;"	string	line:35
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-message',$/;"	variable	line:35
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	string	line:36
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	variable	line:36
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	string	line:37
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	variable	line:37
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-appIcon',$/;"	string	line:38
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-appIcon',$/;"	variable	line:38
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sound: '-sound',$/;"	string	line:39
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sound: '-sound',$/;"	variable	line:39
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '-open',$/;"	string	line:40
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '-open',$/;"	variable	line:40
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	object	line:41
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	variable	line:41
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-execute',$/;"	string	line:42
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-execute',$/;"	variable	line:42
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [],$/;"	array	line:43
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [],$/;"	variable	line:43
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:47
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:47
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-Growl',$/;"	string	line:48
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-Growl',$/;"	variable	line:48
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growlnotify',$/;"	string	line:49
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growlnotify',$/;"	variable	line:49
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	string	line:50
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	variable	line:50
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '--sticky',$/;"	string	line:51
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '--sticky',$/;"	variable	line:51
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '--url',$/;"	string	line:52
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '--url',$/;"	variable	line:52
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	object	line:53
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	variable	line:53
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '--priority',$/;"	string	line:54
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '--priority',$/;"	variable	line:54
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	array	line:55
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	variable	line:55
-0	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^              0,$/;"	variable	line:58
-1	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^              1,$/;"	variable	line:59
-2	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^              2,$/;"	variable	line:60
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:70
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:73
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:73
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux-Growl',$/;"	string	line:74
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux-Growl',$/;"	variable	line:74
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growl',$/;"	string	line:75
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growl',$/;"	variable	line:75
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	string	line:76
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	variable	line:76
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	string	line:77
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	variable	line:77
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	string	line:78
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	variable	line:78
-host	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          host: {$/;"	object	line:79
-host	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          host: {$/;"	variable	line:79
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-H',$/;"	string	line:80
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-H',$/;"	variable	line:80
-hostname	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            hostname: '192.168.33.1',$/;"	string	line:81
-hostname	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            hostname: '192.168.33.1',$/;"	variable	line:81
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:85
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:85
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux',$/;"	string	line:86
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux',$/;"	variable	line:86
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'notify-send',$/;"	string	line:87
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'notify-send',$/;"	variable	line:87
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '',$/;"	string	line:88
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '',$/;"	variable	line:88
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '-t 0',$/;"	string	line:89
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '-t 0',$/;"	variable	line:89
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-i',$/;"	string	line:90
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-i',$/;"	variable	line:90
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	object	line:91
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	variable	line:91
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-u',$/;"	string	line:92
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-u',$/;"	variable	line:92
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	array	line:93
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	variable	line:93
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:101
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      cmd = {$/;"	object	line:103
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      cmd = {$/;"	variable	line:103
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        type: 'Windows',$/;"	string	line:104
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        type: 'Windows',$/;"	variable	line:104
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        pkg: 'growlnotify',$/;"	string	line:105
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        pkg: 'growlnotify',$/;"	variable	line:105
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        msg: '',$/;"	string	line:106
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        msg: '',$/;"	variable	line:106
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        sticky: '\/s:true',$/;"	string	line:107
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        sticky: '\/s:true',$/;"	variable	line:107
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        title: '\/t:',$/;"	string	line:108
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        title: '\/t:',$/;"	variable	line:108
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        icon: '\/i:',$/;"	string	line:109
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        icon: '\/i:',$/;"	variable	line:109
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        url: '\/cu:',$/;"	string	line:110
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        url: '\/cu:',$/;"	variable	line:110
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        priority: {$/;"	object	line:111
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        priority: {$/;"	variable	line:111
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          cmd: '\/p:',$/;"	string	line:112
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          cmd: '\/p:',$/;"	variable	line:112
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          range: [$/;"	array	line:113
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          range: [$/;"	variable	line:113
-0	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            0,$/;"	variable	line:116
-1	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            1,$/;"	variable	line:117
-2	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            2,$/;"	variable	line:118
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:122
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:124
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^ *   growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })$/;"	string	line:151
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^ *   growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })$/;"	variable	line:151
-opts	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function growl(msg, opts, callback) {$/;"	variable	line:162
-growl	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function growl(msg, opts, callback) {$/;"	function	line:162
-image	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let image;$/;"	variable	line:163
-noop	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  const fn = callback || function noop() {};$/;"	function	line:165
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    cmd = {$/;"	object	line:170
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    cmd = {$/;"	variable	line:170
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      type: 'Custom',$/;"	string	line:171
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      type: 'Custom',$/;"	variable	line:171
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      pkg: options.exec,$/;"	variable	line:172
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      range: [],$/;"	array	line:173
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      range: [],$/;"	variable	line:173
-return	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    return;$/;"	variable	line:180
-image	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    image = options.image;$/;"	variable	line:186
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        let flag;$/;"	variable	line:189
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = ext === 'icns' && 'iconpath';$/;"	variable	line:191
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || (\/^[A-Z]\/.test(image) && 'appIcon');$/;"	variable	line:192
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || (\/^png|gif|jpe?g$\/.test(ext) && 'image');$/;"	variable	line:193
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || (ext && (image = ext) && 'icon');$/;"	variable	line:194
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || 'icon';$/;"	variable	line:195
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:197
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:201
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:206
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:209
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:211
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:246
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:264
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:273
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:282
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:287
-command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      let command = customCmd.replace(\/(^|[^%])%s\/g, `$1${message}`);$/;"	variable	line:293
-command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        command = splitCmd.shift();$/;"	variable	line:296
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:303
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:306
-stdout	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stdout = '';$/;"	string	line:311
-stdout	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stdout = '';$/;"	variable	line:311
-stderr	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stderr = '';$/;"	string	line:312
-stderr	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stderr = '';$/;"	variable	line:312
-error	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let error;$/;"	variable	line:313
-error	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    error = err;$/;"	variable	line:317
-error	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    error = error || code === 0 ? null : code;$/;"	variable	line:329
-stdout	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      fn(error, stdout, stderr);$/;"	variable	line:331
-exports	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^module.exports = growl;$/;"	variable	line:341
diff --git a/multiplatform-crypto-delegated/node_modules/growl/.tags1 b/multiplatform-crypto-delegated/node_modules/growl/.tags1
deleted file mode 100644
index b68beb3..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/.tags1
+++ /dev/null
@@ -1,166 +0,0 @@
-!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
-!_TAG_FILE_SORTED	0	/0=unsorted, 1=sorted, 2=foldcase/
-!_TAG_PROGRAM_AUTHOR	Darren Hiebert	/dhiebert@users.sourceforge.net/
-!_TAG_PROGRAM_NAME	Exuberant Ctags	//
-!_TAG_PROGRAM_URL	http://ctags.sourceforge.net	/official site/
-!_TAG_PROGRAM_VERSION	5.8	//
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^let cmd;$/;"	variable	line:15
-which	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function which(name) {$/;"	function	line:17
-loc	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let loc;$/;"	variable	line:19
-len	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  for (let i = 0, len = paths.length; i < len; i += 1) {$/;"	variable	line:21
-loc	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    loc = path.join(paths[i], name);$/;"	variable	line:22
-setupCmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function setupCmd() {$/;"	function	line:28
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:32
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:32
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-NotificationCenter',$/;"	string	line:33
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-NotificationCenter',$/;"	variable	line:33
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'terminal-notifier',$/;"	string	line:34
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'terminal-notifier',$/;"	variable	line:34
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-message',$/;"	string	line:35
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-message',$/;"	variable	line:35
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	string	line:36
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	variable	line:36
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	string	line:37
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	variable	line:37
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-appIcon',$/;"	string	line:38
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-appIcon',$/;"	variable	line:38
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sound: '-sound',$/;"	string	line:39
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sound: '-sound',$/;"	variable	line:39
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '-open',$/;"	string	line:40
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '-open',$/;"	variable	line:40
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	object	line:41
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	variable	line:41
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-execute',$/;"	string	line:42
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-execute',$/;"	variable	line:42
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [],$/;"	array	line:43
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [],$/;"	variable	line:43
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:47
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:47
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-Growl',$/;"	string	line:48
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Darwin-Growl',$/;"	variable	line:48
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growlnotify',$/;"	string	line:49
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growlnotify',$/;"	variable	line:49
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	string	line:50
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	variable	line:50
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '--sticky',$/;"	string	line:51
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '--sticky',$/;"	variable	line:51
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '--url',$/;"	string	line:52
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          url: '--url',$/;"	variable	line:52
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	object	line:53
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	variable	line:53
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '--priority',$/;"	string	line:54
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '--priority',$/;"	variable	line:54
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	array	line:55
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	variable	line:55
-0	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^              0,$/;"	variable	line:58
-1	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^              1,$/;"	variable	line:59
-2	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^              2,$/;"	variable	line:60
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:70
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:73
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:73
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux-Growl',$/;"	string	line:74
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux-Growl',$/;"	variable	line:74
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growl',$/;"	string	line:75
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'growl',$/;"	variable	line:75
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	string	line:76
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '-m',$/;"	variable	line:76
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	string	line:77
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          title: '-title',$/;"	variable	line:77
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	string	line:78
-subtitle	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          subtitle: '-subtitle',$/;"	variable	line:78
-host	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          host: {$/;"	object	line:79
-host	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          host: {$/;"	variable	line:79
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-H',$/;"	string	line:80
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-H',$/;"	variable	line:80
-hostname	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            hostname: '192.168.33.1',$/;"	string	line:81
-hostname	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            hostname: '192.168.33.1',$/;"	variable	line:81
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	object	line:85
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        cmd = {$/;"	variable	line:85
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux',$/;"	string	line:86
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          type: 'Linux',$/;"	variable	line:86
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'notify-send',$/;"	string	line:87
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          pkg: 'notify-send',$/;"	variable	line:87
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '',$/;"	string	line:88
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          msg: '',$/;"	variable	line:88
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '-t 0',$/;"	string	line:89
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          sticky: '-t 0',$/;"	variable	line:89
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-i',$/;"	string	line:90
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          icon: '-i',$/;"	variable	line:90
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	object	line:91
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          priority: {$/;"	variable	line:91
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-u',$/;"	string	line:92
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            cmd: '-u',$/;"	variable	line:92
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	array	line:93
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            range: [$/;"	variable	line:93
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:101
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      cmd = {$/;"	object	line:103
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      cmd = {$/;"	variable	line:103
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        type: 'Windows',$/;"	string	line:104
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        type: 'Windows',$/;"	variable	line:104
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        pkg: 'growlnotify',$/;"	string	line:105
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        pkg: 'growlnotify',$/;"	variable	line:105
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        msg: '',$/;"	string	line:106
-msg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        msg: '',$/;"	variable	line:106
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        sticky: '\/s:true',$/;"	string	line:107
-sticky	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        sticky: '\/s:true',$/;"	variable	line:107
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        title: '\/t:',$/;"	string	line:108
-title	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        title: '\/t:',$/;"	variable	line:108
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        icon: '\/i:',$/;"	string	line:109
-icon	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        icon: '\/i:',$/;"	variable	line:109
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        url: '\/cu:',$/;"	string	line:110
-url	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        url: '\/cu:',$/;"	variable	line:110
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        priority: {$/;"	object	line:111
-priority	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        priority: {$/;"	variable	line:111
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          cmd: '\/p:',$/;"	string	line:112
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          cmd: '\/p:',$/;"	variable	line:112
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          range: [$/;"	array	line:113
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^          range: [$/;"	variable	line:113
-0	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            0,$/;"	variable	line:116
-1	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            1,$/;"	variable	line:117
-2	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^            2,$/;"	variable	line:118
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:122
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:124
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^ *   growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })$/;"	string	line:151
-sound	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^ *   growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })$/;"	variable	line:151
-opts	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function growl(msg, opts, callback) {$/;"	variable	line:162
-growl	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^function growl(msg, opts, callback) {$/;"	function	line:162
-image	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let image;$/;"	variable	line:163
-noop	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  const fn = callback || function noop() {};$/;"	function	line:165
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    cmd = {$/;"	object	line:170
-cmd	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    cmd = {$/;"	variable	line:170
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      type: 'Custom',$/;"	string	line:171
-type	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      type: 'Custom',$/;"	variable	line:171
-pkg	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      pkg: options.exec,$/;"	variable	line:172
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      range: [],$/;"	array	line:173
-range	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      range: [],$/;"	variable	line:173
-return	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    return;$/;"	variable	line:180
-image	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    image = options.image;$/;"	variable	line:186
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        let flag;$/;"	variable	line:189
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = ext === 'icns' && 'iconpath';$/;"	variable	line:191
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || (\/^[A-Z]\/.test(image) && 'appIcon');$/;"	variable	line:192
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || (\/^png|gif|jpe?g$\/.test(ext) && 'image');$/;"	variable	line:193
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || (ext && (image = ext) && 'icon');$/;"	variable	line:194
-flag	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        flag = flag || 'icon';$/;"	variable	line:195
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:197
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:201
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:206
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:209
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        break;$/;"	variable	line:211
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:246
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:264
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:273
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:282
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:287
-command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      let command = customCmd.replace(\/(^|[^%])%s\/g, `$1${message}`);$/;"	variable	line:293
-command	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^        command = splitCmd.shift();$/;"	variable	line:296
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:303
-break	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      break;$/;"	variable	line:306
-stdout	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stdout = '';$/;"	string	line:311
-stdout	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stdout = '';$/;"	variable	line:311
-stderr	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stderr = '';$/;"	string	line:312
-stderr	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let stderr = '';$/;"	variable	line:312
-error	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^  let error;$/;"	variable	line:313
-error	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    error = err;$/;"	variable	line:317
-error	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^    error = error || code === 0 ? null : code;$/;"	variable	line:329
-stdout	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^      fn(error, stdout, stderr);$/;"	variable	line:331
-exports	/Users/timosand/Dropbox/Documents/Projects/node-growl/lib/growl.js	/^module.exports = growl;$/;"	variable	line:341
diff --git a/multiplatform-crypto-delegated/node_modules/growl/.travis.yml b/multiplatform-crypto-delegated/node_modules/growl/.travis.yml
deleted file mode 100644
index 072adfc..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/.travis.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-language: node_js
-dist: trusty
-os:
-  - linux
-  - osx
-node_js:
-- '4'
-- '5'
-- '6'
-- '7'
-- 'node'
-before_install:
-  - npm i -g npm@latest
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi
-  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y libnotify-bin; fi
-jobs:
-  include:
-    - stage: lint
-      script: npm run lint
-    - stage: test
-      script: npm test
diff --git a/multiplatform-crypto-delegated/node_modules/growl/History.md b/multiplatform-crypto-delegated/node_modules/growl/History.md
deleted file mode 100644
index dfbc2e4..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/History.md
+++ /dev/null
@@ -1,77 +0,0 @@
-1.10.5 / 2018-04-04
-==================
-
-* Fix callbacks not receiving errors (#72) [chadrickman]
-
-1.10.4 / 2018-01-29
-==================
-
-* Fix notifications on linux when using notify-send (#70) [hmshwt]
-
-1.9.3 / 2016-09-05
-==================
-
-  * fixed command injection vulnerability
-
-1.7.0 / 2012-12-30 
-==================
-
-  * support transient notifications in Gnome
-
-1.6.1 / 2012-09-25 
-==================
-
-  * restore compatibility with node < 0.8 [fgnass]
-
-1.6.0 / 2012-09-06 
-==================
-
-  * add notification center support [drudge]
-
-1.5.1 / 2012-04-08 
-==================
-
-  * Merge pull request #16 from KyleAMathews/patch-1
-  * Fixes #15
-
-1.5.0 / 2012-02-08 
-==================
-
-  * Added windows support [perfusorius]
-
-1.4.1 / 2011-12-28 
-==================
-
-  * Fixed: dont exit(). Closes #9
-
-1.4.0 / 2011-12-17 
-==================
-
-  * Changed API: `growl.notify()` -> `growl()`
-
-1.3.0 / 2011-12-17 
-==================
-
-  * Added support for Ubuntu/Debian/Linux users [niftylettuce]
-  * Fixed: send notifications even if title not specified [alessioalex]
-
-1.2.0 / 2011-10-06 
-==================
-
-  * Add support for priority.
-
-1.1.0 / 2011-03-15 
-==================
-
-  * Added optional callbacks
-  * Added parsing of version
-
-1.0.1 / 2010-03-26
-==================
-
-  * Fixed; sys.exec -> child_process.exec to support latest node
-
-1.0.0 / 2010-03-19
-==================
-  
-  * Initial release
diff --git a/multiplatform-crypto-delegated/node_modules/growl/Readme.md b/multiplatform-crypto-delegated/node_modules/growl/Readme.md
deleted file mode 100644
index 54128b4..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/Readme.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# Growl for nodejs
-[![Build Status](https://travis-ci.org/tj/node-growl.svg?branch=master)](https://travis-ci.org/tj/node-growl)
-
-Growl support for Nodejs. This is essentially a port of my [Ruby Growl Library](http://github.com/visionmedia/growl). Ubuntu/Linux support added thanks to [@niftylettuce](http://github.com/niftylettuce).
-
-## Installation
-
-### Install
-
-### Mac OS X (Darwin):
-
-  Install [growlnotify(1)](http://growl.info/extras.php#growlnotify). On OS X 10.8, Notification Center is supported using [terminal-notifier](https://github.com/alloy/terminal-notifier). To install:
-
-    $ sudo gem install terminal-notifier
-
-  Install [npm](http://npmjs.org/) and run:
-
-    $ npm install growl
-
-### Ubuntu (Linux):
-
-  Install `notify-send` through the [libnotify-bin](http://packages.ubuntu.com/libnotify-bin) package:
-
-    $ sudo apt-get install libnotify-bin
-
-  Install [npm](http://npmjs.org/) and run:
-
-    $ npm install growl
-
-### Windows:
-
-  Download and install [Growl for Windows](http://www.growlforwindows.com/gfw/default.aspx)
-
-  Download [growlnotify](http://www.growlforwindows.com/gfw/help/growlnotify.aspx) - **IMPORTANT :** Unpack growlnotify to a folder that is present in your path!
-
-  Install [npm](http://npmjs.org/) and run:
-
-    $ npm install growl
-
-## Examples
-
-Callback functions are optional
-
-```javascript
-var growl = require('growl')
-growl('You have mail!')
-growl('5 new messages', { sticky: true })
-growl('5 new emails', { title: 'Email Client', image: 'Safari', sticky: true })
-growl('Message with title', { title: 'Title'})
-growl('Set priority', { priority: 2 })
-growl('Show Safari icon', { image: 'Safari' })
-growl('Show icon', { image: 'path/to/icon.icns' })
-growl('Show image', { image: 'path/to/my.image.png' })
-growl('Show png filesystem icon', { image: 'png' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' }, function(err){
-  // ... notified
-})
-```
-
-## Options
-
-  - title
-    - notification title
-  - name
-    - application name
-  - priority
-    - priority for the notification (default is 0)
-  - sticky
-    - weither or not the notification should remainin until closed
-  - image
-    - Auto-detects the context:
-      - path to an icon sets --iconpath
-      - path to an image sets --image
-      - capitalized word sets --appIcon
-      - filename uses extname as --icon
-      - otherwise treated as --icon
-  - exec
-    - manually specify a shell command instead
-      - appends message to end of shell command
-      - or, replaces `%s` with message
-      - optionally prepends title (example: `title: message`)
-      - examples: `{exec: 'tmux display-message'}`, `{exec: 'echo "%s" > messages.log}`
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2009 TJ Holowaychuk 
-Copyright (c) 2016 Joshua Boy Nicolai Appelman 
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/multiplatform-crypto-delegated/node_modules/growl/lib/growl.js b/multiplatform-crypto-delegated/node_modules/growl/lib/growl.js
deleted file mode 100644
index eb4efa8..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/lib/growl.js
+++ /dev/null
@@ -1,340 +0,0 @@
-'use strict';
-
-// Growl - Copyright TJ Holowaychuk  (MIT Licensed)
-
-/**
- * Module dependencies.
- */
-
-const spawn = require('child_process').spawn;
-const fs = require('fs');
-const path = require('path');
-const os = require('os');
-
-const exists = fs.existsSync || path.existsSync;
-let cmd;
-
-function which(name) {
-  const paths = process.env.PATH.split(':');
-  let loc;
-
-  for (let i = 0, len = paths.length; i < len; i += 1) {
-    loc = path.join(paths[i], name);
-    if (exists(loc)) return loc;
-  }
-  return false;
-}
-
-function setupCmd() {
-  switch (os.type()) {
-    case 'Darwin':
-      if (which('terminal-notifier')) {
-        cmd = {
-          type: 'Darwin-NotificationCenter',
-          pkg: 'terminal-notifier',
-          msg: '-message',
-          title: '-title',
-          subtitle: '-subtitle',
-          icon: '-appIcon',
-          sound: '-sound',
-          url: '-open',
-          priority: {
-            cmd: '-execute',
-            range: [],
-          },
-        };
-      } else {
-        cmd = {
-          type: 'Darwin-Growl',
-          pkg: 'growlnotify',
-          msg: '-m',
-          sticky: '--sticky',
-          url: '--url',
-          priority: {
-            cmd: '--priority',
-            range: [
-              -2,
-              -1,
-              0,
-              1,
-              2,
-              'Very Low',
-              'Moderate',
-              'Normal',
-              'High',
-              'Emergency',
-            ],
-          },
-        };
-      }
-      break;
-    case 'Linux':
-      if (which('growl')) {
-        cmd = {
-          type: 'Linux-Growl',
-          pkg: 'growl',
-          msg: '-m',
-          title: '-title',
-          subtitle: '-subtitle',
-          host: {
-            cmd: '-H',
-            hostname: '192.168.33.1',
-          },
-        };
-      } else {
-        cmd = {
-          type: 'Linux',
-          pkg: 'notify-send',
-          msg: '',
-          sticky: '-t',
-          icon: '-i',
-          priority: {
-            cmd: '-u',
-            range: [
-              'low',
-              'normal',
-              'critical',
-            ],
-          },
-        };
-      }
-      break;
-    case 'Windows_NT':
-      cmd = {
-        type: 'Windows',
-        pkg: 'growlnotify',
-        msg: '',
-        sticky: '/s:true',
-        title: '/t:',
-        icon: '/i:',
-        url: '/cu:',
-        priority: {
-          cmd: '/p:',
-          range: [
-            -2,
-            -1,
-            0,
-            1,
-            2,
-          ],
-        },
-      };
-      break;
-    default:
-      break;
-  }
-}
-
-
-/**
- * Send growl notification _msg_ with _options_.
- *
- * Options:
- *
- *  - title   Notification title
- *  - sticky  Make the notification stick (defaults to false)
- *  - priority  Specify an int or named key (default is 0)
- *  - name    Application name (defaults to growlnotify)
- *  - sound   Sound efect ( in OSx defined in preferences -> sound -> effects)
- *            works only in OSX > 10.8x
- *  - image
- *    - path to an icon sets --iconpath
- *    - path to an image sets --image
- *    - capitalized word sets --appIcon
- *    - filename uses extname as --icon
- *    - otherwise treated as --icon
- *
- * Examples:
- *
- *   growl('New email')
- *   growl('5 new emails', { title: 'Thunderbird' })
- *   growl('5 new emails', { title: 'Thunderbird', sound: 'Purr' })
- *   growl('Email sent', function(){
- *     // ... notification sent
- *   })
- *
- * @param {string} msg
- * @param {object} opts
- * @param {function} callback
- * @api public
- */
-
-function growl(msg, opts, callback) {
-  let image;
-  const options = opts || {};
-  const fn = callback || function noop() {};
-
-  setupCmd();
-
-  if (options.exec) {
-    cmd = {
-      type: 'Custom',
-      pkg: options.exec,
-      range: [],
-    };
-  }
-
-  // noop
-  if (!cmd) {
-    fn(new Error('growl not supported on this platform'));
-    return;
-  }
-  const args = [cmd.pkg];
-
-  // image
-  if (image || options.image) {
-    image = options.image;
-    switch (cmd.type) {
-      case 'Darwin-Growl': {
-        let flag;
-        const ext = path.extname(image).substr(1);
-        flag = ext === 'icns' && 'iconpath';
-        flag = flag || (/^[A-Z]/.test(image) && 'appIcon');
-        flag = flag || (/^png|gif|jpe?g$/.test(ext) && 'image');
-        flag = flag || (ext && (image = ext) && 'icon');
-        flag = flag || 'icon';
-        args.push(`--${flag}`, image);
-        break;
-      }
-      case 'Darwin-NotificationCenter':
-        args.push(cmd.icon, image);
-        break;
-      case 'Linux':
-        args.push(cmd.icon, image);
-        // libnotify defaults to sticky, set a hint for transient notifications
-        if (!options.sticky) args.push('--hint=int:transient:1');
-        break;
-      case 'Windows':
-        args.push(cmd.icon + image);
-        break;
-      default:
-        break;
-    }
-  }
-
-  // sticky
-  if (options.sticky) args.push(cmd.sticky);
-  if (options.sticky && cmd.type === 'Linux') args.push('0');
-
-  // priority
-  if (options.priority) {
-    const priority = `${options.priority}`;
-    const checkindexOf = cmd.priority.range.indexOf(priority);
-    if (checkindexOf > -1) {
-      args.push(cmd.priority, options.priority);
-    }
-  }
-
-  // sound
-  if (options.sound && cmd.type === 'Darwin-NotificationCenter') {
-    args.push(cmd.sound, options.sound);
-  }
-
-  // name
-  if (options.name && cmd.type === 'Darwin-Growl') {
-    args.push('--name', options.name);
-  }
-
-  switch (cmd.type) {
-    case 'Darwin-Growl':
-      args.push(cmd.msg);
-      args.push(msg.replace(/\\n/g, '\n'));
-      if (options.title) args.push(options.title);
-      if (options.url) {
-        args.push(cmd.url);
-        args.push(options.url);
-      }
-      break;
-    case 'Darwin-NotificationCenter': {
-      args.push(cmd.msg);
-      const stringifiedMsg = msg;
-      const escapedMsg = stringifiedMsg.replace(/\\n/g, '\n');
-      args.push(escapedMsg);
-      if (options.title) {
-        args.push(cmd.title);
-        args.push(options.title);
-      }
-      if (options.subtitle) {
-        args.push(cmd.subtitle);
-        args.push(options.subtitle);
-      }
-      if (options.url) {
-        args.push(cmd.url);
-        args.push(options.url);
-      }
-      break;
-    }
-    case 'Linux-Growl':
-      args.push(cmd.msg);
-      args.push(msg.replace(/\\n/g, '\n'));
-      if (options.title) args.push(options.title);
-      if (cmd.host) {
-        args.push(cmd.host.cmd, cmd.host.hostname);
-      }
-      break;
-    case 'Linux':
-      if (options.title) args.push(options.title);
-      args.push(msg.replace(/\\n/g, '\n'));
-      break;
-    case 'Windows':
-      args.push(msg.replace(/\\n/g, '\n'));
-      if (options.title) args.push(cmd.title + options.title);
-      if (options.url) args.push(cmd.url + options.url);
-      break;
-    case 'Custom': {
-      const customCmd = args[0];
-      const message = options.title
-        ? `${options.title}: ${msg}`
-        : msg;
-      let command = customCmd.replace(/(^|[^%])%s/g, `$1${message}`);
-      const splitCmd = command.split(' ');
-      if (splitCmd.length > 1) {
-        command = splitCmd.shift();
-        Array.prototype.push.apply(args, splitCmd);
-      }
-      if (customCmd.indexOf('%s') < 0) {
-        args.push(message);
-      }
-      args[0] = command;
-      break;
-    }
-    default:
-      break;
-  }
-  const cmdToExec = args.shift();
-
-  const child = spawn(cmdToExec, args);
-  let stdout = '';
-  let stderr = '';
-  let error;
-
-  const now = new Date();
-  const timestamp = `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}.${now.getMilliseconds()}`
-
-  stderr += `[${timestamp}][node-growl] : Executed command '${cmdToExec}' with arguments '${args}'\n[stderr] : `;
-
-  child.on('error', (err) => {
-    console.error('An error occured.', err);
-    error = err;
-  });
-
-  child.stdout.on('data', (data) => {
-    stdout += data;
-  });
-
-  child.stderr.on('data', (data) => {
-    stderr += data;
-  });
-
-  child.on('close', () => {
-    if (typeof fn === 'function') {
-      fn(error, stdout, stderr);
-    }
-  });
-}
-
-/**
- * Expose `growl`.
- */
-
-module.exports = growl;
diff --git a/multiplatform-crypto-delegated/node_modules/growl/package.json b/multiplatform-crypto-delegated/node_modules/growl/package.json
deleted file mode 100644
index d1b3fbb..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
-  "_from": "growl@1.10.5",
-  "_id": "growl@1.10.5",
-  "_inBundle": false,
-  "_integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
-  "_location": "/growl",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "growl@1.10.5",
-    "name": "growl",
-    "escapedName": "growl",
-    "rawSpec": "1.10.5",
-    "saveSpec": null,
-    "fetchSpec": "1.10.5"
-  },
-  "_requiredBy": [
-    "/mocha"
-  ],
-  "_resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
-  "_shasum": "f2735dc2283674fa67478b10181059355c369e5e",
-  "_spec": "growl@1.10.5",
-  "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha",
-  "author": {
-    "name": "TJ Holowaychuk",
-    "email": "tj@vision-media.ca"
-  },
-  "bugs": {
-    "url": "https://github.com/tj/node-growl/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "Growl unobtrusive notifications",
-  "devDependencies": {
-    "eslint": "^4.8.0",
-    "eslint-config-airbnb-base": "^12.0.1",
-    "eslint-plugin-import": "^2.7.0",
-    "eslint-plugin-node": "^5.2.0"
-  },
-  "engines": {
-    "node": ">=4.x"
-  },
-  "homepage": "https://github.com/tj/node-growl#readme",
-  "license": "MIT",
-  "main": "./lib/growl.js",
-  "maintainers": [
-    {
-      "name": "Joshua Boy Nicolai Appelman",
-      "email": "joshua@jbnicolai.nl"
-    },
-    {
-      "name": "Timo Sand",
-      "email": "timo.sand@iki.fi"
-    }
-  ],
-  "name": "growl",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/tj/node-growl.git"
-  },
-  "scripts": {
-    "lint": "eslint --ext js lib ",
-    "test": "node test.js"
-  },
-  "version": "1.10.5"
-}
diff --git a/multiplatform-crypto-delegated/node_modules/growl/test.js b/multiplatform-crypto-delegated/node_modules/growl/test.js
deleted file mode 100644
index 3b1d229..0000000
--- a/multiplatform-crypto-delegated/node_modules/growl/test.js
+++ /dev/null
@@ -1,31 +0,0 @@
-
-var growl = require('./lib/growl')
-
-growl('Support sound notifications', {title: 'Make a sound', sound: 'purr'});
-growl('You have mail!')
-growl('5 new messages', { sticky: true })
-growl('5 new emails', { title: 'Email Client', image: 'Safari', sticky: true })
-growl('Message with title', { title: 'Title'})
-growl('Set priority', { priority: 2 })
-growl('Show Safari icon', { image: 'Safari' })
-growl('Show icon', { image: 'path/to/icon.icns' })
-growl('Show image', { image: 'path/to/my.image.png' })
-growl('Show png filesystem icon', { image: 'png' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' })
-growl('Show pdf filesystem icon', { image: 'article.pdf' }, function(){
-  console.log('callback');
-})
-growl('Show pdf filesystem icon', { title: 'Use show()', image: 'article.pdf' })
-growl('here \' are \n some \\ characters that " need escaping', {}, function(error, stdout, stderr) {
-  if (error) throw new Error('escaping failed:\n' + stdout + stderr);
-})
-growl('Allow custom notifiers', { exec: 'echo XXX %s' }, function(error, stdout, stderr) {
-  console.log(stdout);
-})
-growl('Allow custom notifiers', { title: 'test', exec: 'echo YYY' }, function(error, stdout, stderr) {
-  console.log(stdout);
-})
-growl('Allow custom notifiers', { title: 'test', exec: 'echo ZZZ %s' }, function(error, stdout, stderr) {
-  console.log(stdout);
-})
-growl('Open a URL', { url: 'https://npmjs.org/package/growl' });
diff --git a/multiplatform-crypto-delegated/node_modules/has-flag/index.js b/multiplatform-crypto-delegated/node_modules/has-flag/index.js
deleted file mode 100644
index 5139728..0000000
--- a/multiplatform-crypto-delegated/node_modules/has-flag/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-module.exports = (flag, argv) => {
-	argv = argv || process.argv;
-	const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
-	const pos = argv.indexOf(prefix + flag);
-	const terminatorPos = argv.indexOf('--');
-	return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
-};
diff --git a/multiplatform-crypto-delegated/node_modules/has-flag/license b/multiplatform-crypto-delegated/node_modules/has-flag/license
deleted file mode 100644
index e7af2f7..0000000
--- a/multiplatform-crypto-delegated/node_modules/has-flag/license
+++ /dev/null
@@ -1,9 +0,0 @@
-MIT License
-
-Copyright (c) Sindre Sorhus  (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/multiplatform-crypto-delegated/node_modules/has-flag/package.json b/multiplatform-crypto-delegated/node_modules/has-flag/package.json
deleted file mode 100644
index 1483de1..0000000
--- a/multiplatform-crypto-delegated/node_modules/has-flag/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
-  "_from": "has-flag@^3.0.0",
-  "_id": "has-flag@3.0.0",
-  "_inBundle": false,
-  "_integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-  "_location": "/has-flag",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "range",
-    "registry": true,
-    "raw": "has-flag@^3.0.0",
-    "name": "has-flag",
-    "escapedName": "has-flag",
-    "rawSpec": "^3.0.0",
-    "saveSpec": null,
-    "fetchSpec": "^3.0.0"
-  },
-  "_requiredBy": [
-    "/supports-color"
-  ],
-  "_resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-  "_shasum": "b5d454dc2199ae225699f3467e5a07f3b955bafd",
-  "_spec": "has-flag@^3.0.0",
-  "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/supports-color",
-  "author": {
-    "name": "Sindre Sorhus",
-    "email": "sindresorhus@gmail.com",
-    "url": "sindresorhus.com"
-  },
-  "bugs": {
-    "url": "https://github.com/sindresorhus/has-flag/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "Check if argv has a specific flag",
-  "devDependencies": {
-    "ava": "*",
-    "xo": "*"
-  },
-  "engines": {
-    "node": ">=4"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/sindresorhus/has-flag#readme",
-  "keywords": [
-    "has",
-    "check",
-    "detect",
-    "contains",
-    "find",
-    "flag",
-    "cli",
-    "command-line",
-    "argv",
-    "process",
-    "arg",
-    "args",
-    "argument",
-    "arguments",
-    "getopt",
-    "minimist",
-    "optimist"
-  ],
-  "license": "MIT",
-  "name": "has-flag",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/sindresorhus/has-flag.git"
-  },
-  "scripts": {
-    "test": "xo && ava"
-  },
-  "version": "3.0.0"
-}
diff --git a/multiplatform-crypto-delegated/node_modules/has-flag/readme.md b/multiplatform-crypto-delegated/node_modules/has-flag/readme.md
deleted file mode 100644
index 677893c..0000000
--- a/multiplatform-crypto-delegated/node_modules/has-flag/readme.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag)
-
-> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag
-
-Correctly stops looking after an `--` argument terminator.
-
-
-## Install
-
-```
-$ npm install has-flag
-```
-
-
-## Usage
-
-```js
-// foo.js
-const hasFlag = require('has-flag');
-
-hasFlag('unicorn');
-//=> true
-
-hasFlag('--unicorn');
-//=> true
-
-hasFlag('f');
-//=> true
-
-hasFlag('-f');
-//=> true
-
-hasFlag('foo=bar');
-//=> true
-
-hasFlag('foo');
-//=> false
-
-hasFlag('rainbow');
-//=> false
-```
-
-```
-$ node foo.js -f --unicorn --foo=bar -- --rainbow
-```
-
-
-## API
-
-### hasFlag(flag, [argv])
-
-Returns a boolean for whether the flag exists.
-
-#### flag
-
-Type: `string`
-
-CLI flag to look for. The `--` prefix is optional.
-
-#### argv
-
-Type: `string[]`
-Default: `process.argv` - -CLI arguments. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/multiplatform-crypto-delegated/node_modules/he/LICENSE-MIT.txt b/multiplatform-crypto-delegated/node_modules/he/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7..0000000 --- a/multiplatform-crypto-delegated/node_modules/he/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/he/README.md b/multiplatform-crypto-delegated/node_modules/he/README.md deleted file mode 100644 index b2223a9..0000000 --- a/multiplatform-crypto-delegated/node_modules/he/README.md +++ /dev/null @@ -1,379 +0,0 @@ -# he [![Build status](https://travis-ci.org/mathiasbynens/he.svg?branch=master)](https://travis-ci.org/mathiasbynens/he) [![Code coverage status](https://codecov.io/github/mathiasbynens/he/coverage.svg?branch=master)](https://codecov.io/github/mathiasbynens/he?branch=master) [![Dependency status](https://gemnasium.com/mathiasbynens/he.svg)](https://gemnasium.com/mathiasbynens/he) - -_he_ (for “HTML entities”) is a robust HTML entity encoder/decoder written in JavaScript. It supports [all standardized named character references as per HTML](https://html.spec.whatwg.org/multipage/syntax.html#named-character-references), handles [ambiguous ampersands](https://mathiasbynens.be/notes/ambiguous-ampersands) and other edge cases [just like a browser would](https://html.spec.whatwg.org/multipage/syntax.html#tokenizing-character-references), has an extensive test suite, and — contrary to many other JavaScript solutions — _he_ handles astral Unicode symbols just fine. [An online demo is available.](https://mothereff.in/html-entities) - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install he -``` - -Via [Bower](http://bower.io/): - -```bash -bower install he -``` - -Via [Component](https://github.com/component/component): - -```bash -component install mathiasbynens/he -``` - -In a browser: - -```html - -``` - -In [Node.js](https://nodejs.org/), [io.js](https://iojs.org/), [Narwhal](http://narwhaljs.org/), and [RingoJS](http://ringojs.org/): - -```js -var he = require('he'); -``` - -In [Rhino](http://www.mozilla.org/rhino/): - -```js -load('he.js'); -``` - -Using an AMD loader like [RequireJS](http://requirejs.org/): - -```js -require( - { - 'paths': { - 'he': 'path/to/he' - } - }, - ['he'], - function(he) { - console.log(he); - } -); -``` - -## API - -### `he.version` - -A string representing the semantic version number. - -### `he.encode(text, options)` - -This function takes a string of text and encodes (by default) any symbols that aren’t printable ASCII symbols and `&`, `<`, `>`, `"`, `'`, and `` ` ``, replacing them with character references. - -```js -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -As long as the input string contains [allowed code points](https://html.spec.whatwg.org/multipage/parsing.html#preprocessing-the-input-stream) only, the return value of this function is always valid HTML. Any [(invalid) code points that cannot be represented using a character reference](https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides) in the input are not encoded: - -```js -he.encode('foo \0 bar'); -// → 'foo \0 bar' -``` - -However, enabling [the `strict` option](https://github.com/mathiasbynens/he#strict) causes invalid code points to throw an exception. With `strict` enabled, `he.encode` either throws (if the input contains invalid code points) or returns a string of valid HTML. - -The `options` object is optional. It recognizes the following properties: - -#### `useNamedReferences` - -The default value for the `useNamedReferences` option is `false`. This means that `encode()` will not use any named character references (e.g. `©`) in the output — hexadecimal escapes (e.g. `©`) will be used instead. Set it to `true` to enable the use of named references. - -**Note that if compatibility with older browsers is a concern, this option should remain disabled.** - -```js -// Using the global default setting (defaults to `false`): -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly disallow named references: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'useNamedReferences': false -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly allow named references: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'useNamedReferences': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -#### `decimal` - -The default value for the `decimal` option is `false`. If the option is enabled, `encode` will generally use decimal escapes (e.g. `©`) rather than hexadecimal escapes (e.g. `©`). Beside of this replacement, the basic behavior remains the same when combined with other options. For example: if both options `useNamedReferences` and `decimal` are enabled, named references (e.g. `©`) are used over decimal escapes. HTML entities without a named reference are encoded using decimal escapes. - -```js -// Using the global default setting (defaults to `false`): -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly disable decimal escapes: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'decimal': false -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly enable decimal escapes: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'decimal': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly allow named references and decimal escapes: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'useNamedReferences': true, - 'decimal': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -#### `encodeEverything` - -The default value for the `encodeEverything` option is `false`. This means that `encode()` will not use any character references for printable ASCII symbols that don’t need escaping. Set it to `true` to encode every symbol in the input string. When set to `true`, this option takes precedence over `allowUnsafeSymbols` (i.e. setting the latter to `true` in such a case has no effect). - -```js -// Using the global default setting (defaults to `false`): -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' - -// Passing an `options` object to `encode`, to explicitly encode all symbols: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'encodeEverything': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' - -// This setting can be combined with the `useNamedReferences` option: -he.encode('foo © bar ≠ baz 𝌆 qux', { - 'encodeEverything': true, - 'useNamedReferences': true -}); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -#### `strict` - -The default value for the `strict` option is `false`. This means that `encode()` will encode any HTML text content you feed it, even if it contains any symbols that cause [parse errors](https://html.spec.whatwg.org/multipage/parsing.html#preprocessing-the-input-stream). To throw an error when such invalid HTML is encountered, set the `strict` option to `true`. This option makes it possible to use _he_ as part of HTML parsers and HTML validators. - -```js -// Using the global default setting (defaults to `false`, i.e. error-tolerant mode): -he.encode('\x01'); -// → '' - -// Passing an `options` object to `encode`, to explicitly enable error-tolerant mode: -he.encode('\x01', { - 'strict': false -}); -// → '' - -// Passing an `options` object to `encode`, to explicitly enable strict mode: -he.encode('\x01', { - 'strict': true -}); -// → Parse error -``` - -#### `allowUnsafeSymbols` - -The default value for the `allowUnsafeSymbols` option is `false`. This means that characters that are unsafe for use in HTML content (`&`, `<`, `>`, `"`, `'`, and `` ` ``) will be encoded. When set to `true`, only non-ASCII characters will be encoded. If the `encodeEverything` option is set to `true`, this option will be ignored. - -```js -he.encode('foo © and & ampersand', { - 'allowUnsafeSymbols': true -}); -// → 'foo © and & ampersand' -``` - -#### Overriding default `encode` options globally - -The global default setting can be overridden by modifying the `he.encode.options` object. This saves you from passing in an `options` object for every call to `encode` if you want to use the non-default setting. - -```js -// Read the global default setting: -he.encode.options.useNamedReferences; -// → `false` by default - -// Override the global default setting: -he.encode.options.useNamedReferences = true; - -// Using the global default setting, which is now `true`: -he.encode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -### `he.decode(html, options)` - -This function takes a string of HTML and decodes any named and numerical character references in it using [the algorithm described in section 12.2.4.69 of the HTML spec](https://html.spec.whatwg.org/multipage/syntax.html#tokenizing-character-references). - -```js -he.decode('foo © bar ≠ baz 𝌆 qux'); -// → 'foo © bar ≠ baz 𝌆 qux' -``` - -The `options` object is optional. It recognizes the following properties: - -#### `isAttributeValue` - -The default value for the `isAttributeValue` option is `false`. This means that `decode()` will decode the string as if it were used in [a text context in an HTML document](https://html.spec.whatwg.org/multipage/syntax.html#data-state). HTML has different rules for [parsing character references in attribute values](https://html.spec.whatwg.org/multipage/syntax.html#character-reference-in-attribute-value-state) — set this option to `true` to treat the input string as if it were used as an attribute value. - -```js -// Using the global default setting (defaults to `false`, i.e. HTML text context): -he.decode('foo&bar'); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly assume an HTML text context: -he.decode('foo&bar', { - 'isAttributeValue': false -}); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly assume an HTML attribute value context: -he.decode('foo&bar', { - 'isAttributeValue': true -}); -// → 'foo&bar' -``` - -#### `strict` - -The default value for the `strict` option is `false`. This means that `decode()` will decode any HTML text content you feed it, even if it contains any entities that cause [parse errors](https://html.spec.whatwg.org/multipage/syntax.html#tokenizing-character-references). To throw an error when such invalid HTML is encountered, set the `strict` option to `true`. This option makes it possible to use _he_ as part of HTML parsers and HTML validators. - -```js -// Using the global default setting (defaults to `false`, i.e. error-tolerant mode): -he.decode('foo&bar'); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly enable error-tolerant mode: -he.decode('foo&bar', { - 'strict': false -}); -// → 'foo&bar' - -// Passing an `options` object to `decode`, to explicitly enable strict mode: -he.decode('foo&bar', { - 'strict': true -}); -// → Parse error -``` - -#### Overriding default `decode` options globally - -The global default settings for the `decode` function can be overridden by modifying the `he.decode.options` object. This saves you from passing in an `options` object for every call to `decode` if you want to use a non-default setting. - -```js -// Read the global default setting: -he.decode.options.isAttributeValue; -// → `false` by default - -// Override the global default setting: -he.decode.options.isAttributeValue = true; - -// Using the global default setting, which is now `true`: -he.decode('foo&bar'); -// → 'foo&bar' -``` - -### `he.escape(text)` - -This function takes a string of text and escapes it for use in text contexts in XML or HTML documents. Only the following characters are escaped: `&`, `<`, `>`, `"`, `'`, and `` ` ``. - -```js -he.escape(''); -// → '<img src='x' onerror="prompt(1)">' -``` - -### `he.unescape(html, options)` - -`he.unescape` is an alias for `he.decode`. It takes a string of HTML and decodes any named and numerical character references in it. - -### Using the `he` binary - -To use the `he` binary in your shell, simply install _he_ globally using npm: - -```bash -npm install -g he -``` - -After that you will be able to encode/decode HTML entities from the command line: - -```bash -$ he --encode 'föo ♥ bår 𝌆 baz' -föo ♥ bår 𝌆 baz - -$ he --encode --use-named-refs 'föo ♥ bår 𝌆 baz' -föo ♥ bår 𝌆 baz - -$ he --decode 'föo ♥ bår 𝌆 baz' -föo ♥ bår 𝌆 baz -``` - -Read a local text file, encode it for use in an HTML text context, and save the result to a new file: - -```bash -$ he --encode < foo.txt > foo-escaped.html -``` - -Or do the same with an online text file: - -```bash -$ curl -sL "http://git.io/HnfEaw" | he --encode > escaped.html -``` - -Or, the opposite — read a local file containing a snippet of HTML in a text context, decode it back to plain text, and save the result to a new file: - -```bash -$ he --decode < foo-escaped.html > foo.txt -``` - -Or do the same with an online HTML snippet: - -```bash -$ curl -sL "http://git.io/HnfEaw" | he --decode > decoded.txt -``` - -See `he --help` for the full list of options. - -## Support - -_he_ has been tested in at least: - -* Chrome 27-50 -* Firefox 3-45 -* Safari 4-9 -* Opera 10-12, 15–37 -* IE 6–11 -* Edge -* Narwhal 0.3.2 -* Node.js v0.10, v0.12, v4, v5 -* PhantomJS 1.9.0 -* Rhino 1.7RC4 -* RingoJS 0.8-0.11 - -## Unit tests & code coverage - -After cloning this repository, run `npm install` to install the dependencies needed for he development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. - -Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, and web browsers as well, use `grunt test`. - -To generate the code coverage report, use `grunt cover`. - -## Acknowledgements - -Thanks to [Simon Pieters](https://simon.html5.org/) ([@zcorpan](https://twitter.com/zcorpan)) for the many suggestions. - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## License - -_he_ is available under the [MIT](https://mths.be/mit) license. diff --git a/multiplatform-crypto-delegated/node_modules/he/bin/he b/multiplatform-crypto-delegated/node_modules/he/bin/he deleted file mode 100755 index cfdfd6c..0000000 --- a/multiplatform-crypto-delegated/node_modules/he/bin/he +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/env node -(function() { - - var fs = require('fs'); - var he = require('../he.js'); - var strings = process.argv.splice(2); - var stdin = process.stdin; - var data; - var timeout; - var action; - var options = {}; - var log = console.log; - - var main = function() { - var option = strings[0]; - var count = 0; - - if (/^(?:-h|--help|undefined)$/.test(option)) { - log( - 'he v%s - https://mths.be/he', - he.version - ); - log([ - '\nUsage:\n', - '\the [--escape] string', - '\the [--encode] [--use-named-refs] [--everything] [--allow-unsafe] [--decimal] string', - '\the [--decode] [--attribute] [--strict] string', - '\the [-v | --version]', - '\the [-h | --help]', - '\nExamples:\n', - '\the --escape \\', - '\techo \'© 𝌆\' | he --decode' - ].join('\n')); - return process.exit(option ? 0 : 1); - } - - if (/^(?:-v|--version)$/.test(option)) { - log('v%s', he.version); - return process.exit(0); - } - - strings.forEach(function(string) { - // Process options - if (string == '--escape') { - action = 'escape'; - return; - } - if (string == '--encode') { - action = 'encode'; - return; - } - if (string == '--use-named-refs') { - action = 'encode'; - options.useNamedReferences = true; - return; - } - if (string == '--everything') { - action = 'encode'; - options.encodeEverything = true; - return; - } - if (string == '--allow-unsafe') { - action = 'encode'; - options.allowUnsafeSymbols = true; - return; - } - if (string == '--decimal') { - action = 'encode'; - options.decimal = true; - return; - } - if (string == '--decode') { - action = 'decode'; - return; - } - if (string == '--attribute') { - action = 'decode'; - options.isAttributeValue = true; - return; - } - if (string == '--strict') { - action = 'decode'; - options.strict = true; - return; - } - // Process string(s) - var result; - if (!action) { - log('Error: he requires at least one option and a string argument.'); - log('Try `he --help` for more information.'); - return process.exit(1); - } - try { - result = he[action](string, options); - log(result); - count++; - } catch(error) { - log(error.message + '\n'); - log('Error: failed to %s.', action); - log('If you think this is a bug in he, please report it:'); - log('https://github.com/mathiasbynens/he/issues/new'); - log( - '\nStack trace using he@%s:\n', - he.version - ); - log(error.stack); - return process.exit(1); - } - }); - if (!count) { - log('Error: he requires a string argument.'); - log('Try `he --help` for more information.'); - return process.exit(1); - } - // Return with exit status 0 outside of the `forEach` loop, in case - // multiple strings were passed in. - return process.exit(0); - }; - - if (stdin.isTTY) { - // handle shell arguments - main(); - } else { - // Either the script is called from within a non-TTY context, or `stdin` - // content is being piped in. - if (!process.stdout.isTTY) { - // The script was called from a non-TTY context. This is a rather uncommon - // use case we don’t actively support. However, we don’t want the script - // to wait forever in such cases, so… - timeout = setTimeout(function() { - // …if no piped data arrived after a whole minute, handle shell - // arguments instead. - main(); - }, 60000); - } - data = ''; - stdin.on('data', function(chunk) { - clearTimeout(timeout); - data += chunk; - }); - stdin.on('end', function() { - strings.push(data.trim()); - main(); - }); - stdin.resume(); - } - -}()); diff --git a/multiplatform-crypto-delegated/node_modules/he/he.js b/multiplatform-crypto-delegated/node_modules/he/he.js deleted file mode 100644 index f80078b..0000000 --- a/multiplatform-crypto-delegated/node_modules/he/he.js +++ /dev/null @@ -1,342 +0,0 @@ -/*! https://mths.be/he v1.1.1 by @mathias | MIT license */ -;(function(root) { - - // Detect free variables `exports`. - var freeExports = typeof exports == 'object' && exports; - - // Detect free variable `module`. - var freeModule = typeof module == 'object' && module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root`. - var freeGlobal = typeof global == 'object' && global; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - // All astral symbols. - var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - // All ASCII symbols (not just printable ASCII) except those listed in the - // first column of the overrides table. - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides - var regexAsciiWhitelist = /[\x01-\x7F]/g; - // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or - // code points listed in the first column of the overrides table on - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. - var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; - - var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; - var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; - - var regexEscape = /["&'<>`]/g; - var escapeMap = { - '"': '"', - '&': '&', - '\'': ''', - '<': '<', - // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the - // following is not strictly necessary unless it’s part of a tag or an - // unquoted attribute value. We’re only escaping it to support those - // situations, and for XML support. - '>': '>', - // In Internet Explorer ≤ 8, the backtick character can be used - // to break out of (un)quoted attribute values or HTML comments. - // See http://html5sec.org/#102, http://html5sec.org/#108, and - // http://html5sec.org/#133. - '`': '`' - }; - - var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; - var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g; - var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; - var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; - var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; - var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; - - /*--------------------------------------------------------------------------*/ - - var stringFromCharCode = String.fromCharCode; - - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var has = function(object, propertyName) { - return hasOwnProperty.call(object, propertyName); - }; - - var contains = function(array, value) { - var index = -1; - var length = array.length; - while (++index < length) { - if (array[index] == value) { - return true; - } - } - return false; - }; - - var merge = function(options, defaults) { - if (!options) { - return defaults; - } - var result = {}; - var key; - for (key in defaults) { - // A `hasOwnProperty` check is not needed here, since only recognized - // option names are used anyway. Any others are ignored. - result[key] = has(options, key) ? options[key] : defaults[key]; - } - return result; - }; - - // Modified version of `ucs2encode`; see https://mths.be/punycode. - var codePointToSymbol = function(codePoint, strict) { - var output = ''; - if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { - // See issue #4: - // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is - // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD - // REPLACEMENT CHARACTER.” - if (strict) { - parseError('character reference outside the permissible Unicode range'); - } - return '\uFFFD'; - } - if (has(decodeMapNumeric, codePoint)) { - if (strict) { - parseError('disallowed character reference'); - } - return decodeMapNumeric[codePoint]; - } - if (strict && contains(invalidReferenceCodePoints, codePoint)) { - parseError('disallowed character reference'); - } - if (codePoint > 0xFFFF) { - codePoint -= 0x10000; - output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - output += stringFromCharCode(codePoint); - return output; - }; - - var hexEscape = function(codePoint) { - return '&#x' + codePoint.toString(16).toUpperCase() + ';'; - }; - - var decEscape = function(codePoint) { - return '&#' + codePoint + ';'; - }; - - var parseError = function(message) { - throw Error('Parse error: ' + message); - }; - - /*--------------------------------------------------------------------------*/ - - var encode = function(string, options) { - options = merge(options, encode.options); - var strict = options.strict; - if (strict && regexInvalidRawCodePoint.test(string)) { - parseError('forbidden code point'); - } - var encodeEverything = options.encodeEverything; - var useNamedReferences = options.useNamedReferences; - var allowUnsafeSymbols = options.allowUnsafeSymbols; - var escapeCodePoint = options.decimal ? decEscape : hexEscape; - - var escapeBmpSymbol = function(symbol) { - return escapeCodePoint(symbol.charCodeAt(0)); - }; - - if (encodeEverything) { - // Encode ASCII symbols. - string = string.replace(regexAsciiWhitelist, function(symbol) { - // Use named references if requested & possible. - if (useNamedReferences && has(encodeMap, symbol)) { - return '&' + encodeMap[symbol] + ';'; - } - return escapeBmpSymbol(symbol); - }); - // Shorten a few escapes that represent two symbols, of which at least one - // is within the ASCII range. - if (useNamedReferences) { - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒') - .replace(/fj/g, 'fj'); - } - // Encode non-ASCII symbols. - if (useNamedReferences) { - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } - // Note: any remaining non-ASCII symbols are handled outside of the `if`. - } else if (useNamedReferences) { - // Apply named character references. - // Encode `<>"'&` using named character references. - if (!allowUnsafeSymbols) { - string = string.replace(regexEscape, function(string) { - return '&' + encodeMap[string] + ';'; // no need to check `has()` here - }); - } - // Shorten escapes that represent two symbols, of which at least one is - // `<>"'&`. - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒'); - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } else if (!allowUnsafeSymbols) { - // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled - // using named character references. - string = string.replace(regexEscape, escapeBmpSymbol); - } - return string - // Encode astral symbols. - .replace(regexAstralSymbols, function($0) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - var high = $0.charCodeAt(0); - var low = $0.charCodeAt(1); - var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; - return escapeCodePoint(codePoint); - }) - // Encode any remaining BMP symbols that are not printable ASCII symbols - // using a hexadecimal escape. - .replace(regexBmpWhitelist, escapeBmpSymbol); - }; - // Expose default options (so they can be overridden globally). - encode.options = { - 'allowUnsafeSymbols': false, - 'encodeEverything': false, - 'strict': false, - 'useNamedReferences': false, - 'decimal' : false - }; - - var decode = function(html, options) { - options = merge(options, decode.options); - var strict = options.strict; - if (strict && regexInvalidEntity.test(html)) { - parseError('malformed character reference'); - } - return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { - var codePoint; - var semicolon; - var decDigits; - var hexDigits; - var reference; - var next; - if ($1) { - // Decode decimal escapes, e.g. `𝌆`. - decDigits = $1; - semicolon = $2; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(decDigits, 10); - return codePointToSymbol(codePoint, strict); - } - if ($3) { - // Decode hexadecimal escapes, e.g. `𝌆`. - hexDigits = $3; - semicolon = $4; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(hexDigits, 16); - return codePointToSymbol(codePoint, strict); - } - if ($5) { - // Decode named character references with trailing `;`, e.g. `©`. - reference = $5; - if (has(decodeMap, reference)) { - return decodeMap[reference]; - } else { - // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - return $0; - } - } - // If we’re still here, it’s a legacy reference for sure. No need for an - // extra `if` check. - // Decode named character references without trailing `;`, e.g. `&` - // This is only a parse error if it gets converted to `&`, or if it is - // followed by `=` in an attribute context. - reference = $6; - next = $7; - if (next && options.isAttributeValue) { - if (strict && next == '=') { - parseError('`&` did not start a character reference'); - } - return $0; - } else { - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - // Note: there is no need to check `has(decodeMapLegacy, reference)`. - return decodeMapLegacy[reference] + (next || ''); - } - }); - }; - // Expose default options (so they can be overridden globally). - decode.options = { - 'isAttributeValue': false, - 'strict': false - }; - - var escape = function(string) { - return string.replace(regexEscape, function($0) { - // Note: there is no need to check `has(escapeMap, $0)` here. - return escapeMap[$0]; - }); - }; - - /*--------------------------------------------------------------------------*/ - - var he = { - 'version': '1.1.1', - 'encode': encode, - 'decode': decode, - 'escape': escape, - 'unescape': decode - }; - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define(function() { - return he; - }); - } else if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = he; - } else { // in Narwhal or RingoJS v0.7.0- - for (var key in he) { - has(he, key) && (freeExports[key] = he[key]); - } - } - } else { // in Rhino or a web browser - root.he = he; - } - -}(this)); diff --git a/multiplatform-crypto-delegated/node_modules/he/man/he.1 b/multiplatform-crypto-delegated/node_modules/he/man/he.1 deleted file mode 100644 index 7696628..0000000 --- a/multiplatform-crypto-delegated/node_modules/he/man/he.1 +++ /dev/null @@ -1,78 +0,0 @@ -.Dd April 5, 2016 -.Dt he 1 -.Sh NAME -.Nm he -.Nd encode/decode HTML entities just like a browser would -.Sh SYNOPSIS -.Nm -.Op Fl -escape Ar string -.br -.Op Fl -encode Ar string -.br -.Op Fl -encode Fl -use-named-refs Fl -everything Fl -allow-unsafe Ar string -.br -.Op Fl -decode Ar string -.br -.Op Fl -decode Fl -attribute Ar string -.br -.Op Fl -decode Fl -strict Ar string -.br -.Op Fl v | -version -.br -.Op Fl h | -help -.Sh DESCRIPTION -.Nm -encodes/decodes HTML entities in strings just like a browser would. -.Sh OPTIONS -.Bl -ohang -offset -.It Sy "--escape" -Take a string of text and escape it for use in text contexts in XML or HTML documents. Only the following characters are escaped: `&`, `<`, `>`, `"`, and `'`. -.It Sy "--encode" -Take a string of text and encode any symbols that aren't printable ASCII symbols and that can be replaced with character references. For example, it would turn `©` into `©`, but it wouldn't turn `+` into `+` since there is no point in doing so. Additionally, it replaces any remaining non-ASCII symbols with a hexadecimal escape sequence (e.g. `𝌆`). The return value of this function is always valid HTML. -.It Sy "--encode --use-named-refs" -Enable the use of named character references (like `©`) in the output. If compatibility with older browsers is a concern, don't use this option. -.It Sy "--encode --everything" -Encode every symbol in the input string, even safe printable ASCII symbols. -.It Sy "--encode --allow-unsafe" -Encode non-ASCII characters only. This leaves unsafe HTML/XML symbols like `&`, `<`, `>`, `"`, and `'` intact. -.It Sy "--encode --decimal" -Use decimal digits rather than hexadecimal digits for encoded character references, e.g. output `©` instead of `©`. -.It Sy "--decode" -Takes a string of HTML and decode any named and numerical character references in it using the algorithm described in the HTML spec. -.It Sy "--decode --attribute" -Parse the input as if it was an HTML attribute value rather than a string in an HTML text content. -.It Sy "--decode --strict" -Throw an error if an invalid character reference is encountered. -.It Sy "-v, --version" -Print he's version. -.It Sy "-h, --help" -Show the help screen. -.El -.Sh EXIT STATUS -The -.Nm he -utility exits with one of the following values: -.Pp -.Bl -tag -width flag -compact -.It Li 0 -.Nm -did what it was instructed to do successfully; either it encoded/decoded the input and printed the result, or it printed the version or usage message. -.It Li 1 -.Nm -encountered an error. -.El -.Sh EXAMPLES -.Bl -ohang -offset -.It Sy "he --escape ''" -Print an escaped version of the given string that is safe for use in HTML text contexts, escaping only `&`, `<`, `>`, `"`, and `'`. -.It Sy "he --decode '©𝌆'" -Print the decoded version of the given HTML string. -.It Sy "echo\ '©𝌆'\ |\ he --decode" -Print the decoded version of the HTML string that gets piped in. -.El -.Sh BUGS -he's bug tracker is located at . -.Sh AUTHOR -Mathias Bynens -.Sh WWW - diff --git a/multiplatform-crypto-delegated/node_modules/he/package.json b/multiplatform-crypto-delegated/node_modules/he/package.json deleted file mode 100644 index dbb96fd..0000000 --- a/multiplatform-crypto-delegated/node_modules/he/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_from": "he@1.1.1", - "_id": "he@1.1.1", - "_inBundle": false, - "_integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "_location": "/he", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "he@1.1.1", - "name": "he", - "escapedName": "he", - "rawSpec": "1.1.1", - "saveSpec": null, - "fetchSpec": "1.1.1" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "_shasum": "93410fd21b009735151f8868c2f271f3427e23fd", - "_spec": "he@1.1.1", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "bin": { - "he": "bin/he" - }, - "bugs": { - "url": "https://github.com/mathiasbynens/he/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "A robust HTML entities encoder/decoder with full Unicode support.", - "devDependencies": { - "codecov.io": "^0.1.6", - "grunt": "^0.4.5", - "grunt-shell": "^1.1.1", - "grunt-template": "^0.2.3", - "istanbul": "^0.4.2", - "jsesc": "^1.0.0", - "lodash": "^4.8.2", - "qunit-extras": "^1.4.5", - "qunitjs": "~1.11.0", - "regenerate": "^1.2.1", - "requirejs": "^2.1.22", - "sort-object": "^3.0.2" - }, - "directories": { - "bin": "bin", - "man": "man", - "test": "tests" - }, - "files": [ - "LICENSE-MIT.txt", - "he.js", - "bin/", - "man/" - ], - "homepage": "https://mths.be/he", - "keywords": [ - "string", - "entities", - "entity", - "html", - "encode", - "decode", - "unicode" - ], - "license": "MIT", - "main": "he.js", - "man": [ - "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/he/man/he.1" - ], - "name": "he", - "repository": { - "type": "git", - "url": "git+https://github.com/mathiasbynens/he.git" - }, - "scripts": { - "build": "grunt build", - "test": "node tests/tests.js" - }, - "version": "1.1.1" -} diff --git a/multiplatform-crypto-delegated/node_modules/inflight/LICENSE b/multiplatform-crypto-delegated/node_modules/inflight/LICENSE deleted file mode 100644 index 05eeeb8..0000000 --- a/multiplatform-crypto-delegated/node_modules/inflight/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/inflight/README.md b/multiplatform-crypto-delegated/node_modules/inflight/README.md deleted file mode 100644 index 6dc8929..0000000 --- a/multiplatform-crypto-delegated/node_modules/inflight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# inflight - -Add callbacks to requests in flight to avoid async duplication - -## USAGE - -```javascript -var inflight = require('inflight') - -// some request that does some stuff -function req(key, callback) { - // key is any random string. like a url or filename or whatever. - // - // will return either a falsey value, indicating that the - // request for this key is already in flight, or a new callback - // which when called will call all callbacks passed to inflightk - // with the same key - callback = inflight(key, callback) - - // If we got a falsey value back, then there's already a req going - if (!callback) return - - // this is where you'd fetch the url or whatever - // callback is also once()-ified, so it can safely be assigned - // to multiple events etc. First call wins. - setTimeout(function() { - callback(null, key) - }, 100) -} - -// only assigns a single setTimeout -// when it dings, all cbs get called -req('foo', cb1) -req('foo', cb2) -req('foo', cb3) -req('foo', cb4) -``` diff --git a/multiplatform-crypto-delegated/node_modules/inflight/inflight.js b/multiplatform-crypto-delegated/node_modules/inflight/inflight.js deleted file mode 100644 index 48202b3..0000000 --- a/multiplatform-crypto-delegated/node_modules/inflight/inflight.js +++ /dev/null @@ -1,54 +0,0 @@ -var wrappy = require('wrappy') -var reqs = Object.create(null) -var once = require('once') - -module.exports = wrappy(inflight) - -function inflight (key, cb) { - if (reqs[key]) { - reqs[key].push(cb) - return null - } else { - reqs[key] = [cb] - return makeres(key) - } -} - -function makeres (key) { - return once(function RES () { - var cbs = reqs[key] - var len = cbs.length - var args = slice(arguments) - - // XXX It's somewhat ambiguous whether a new callback added in this - // pass should be queued for later execution if something in the - // list of callbacks throws, or if it should just be discarded. - // However, it's such an edge case that it hardly matters, and either - // choice is likely as surprising as the other. - // As it happens, we do go ahead and schedule it for later execution. - try { - for (var i = 0; i < len; i++) { - cbs[i].apply(null, args) - } - } finally { - if (cbs.length > len) { - // added more in the interim. - // de-zalgo, just in case, but don't call again. - cbs.splice(0, len) - process.nextTick(function () { - RES.apply(null, args) - }) - } else { - delete reqs[key] - } - } - }) -} - -function slice (args) { - var length = args.length - var array = [] - - for (var i = 0; i < length; i++) array[i] = args[i] - return array -} diff --git a/multiplatform-crypto-delegated/node_modules/inflight/package.json b/multiplatform-crypto-delegated/node_modules/inflight/package.json deleted file mode 100644 index 89cd972..0000000 --- a/multiplatform-crypto-delegated/node_modules/inflight/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "_from": "inflight@^1.0.4", - "_id": "inflight@1.0.6", - "_inBundle": false, - "_integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "_location": "/inflight", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "inflight@^1.0.4", - "name": "inflight", - "escapedName": "inflight", - "rawSpec": "^1.0.4", - "saveSpec": null, - "fetchSpec": "^1.0.4" - }, - "_requiredBy": [ - "/glob" - ], - "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "_spec": "inflight@^1.0.4", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/glob", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/inflight/issues" - }, - "bundleDependencies": false, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - }, - "deprecated": false, - "description": "Add callbacks to requests in flight to avoid async duplication", - "devDependencies": { - "tap": "^7.1.2" - }, - "files": [ - "inflight.js" - ], - "homepage": "https://github.com/isaacs/inflight", - "license": "ISC", - "main": "inflight.js", - "name": "inflight", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/inflight.git" - }, - "scripts": { - "test": "tap test.js --100" - }, - "version": "1.0.6" -} diff --git a/multiplatform-crypto-delegated/node_modules/inherits/LICENSE b/multiplatform-crypto-delegated/node_modules/inherits/LICENSE deleted file mode 100644 index dea3013..0000000 --- a/multiplatform-crypto-delegated/node_modules/inherits/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - diff --git a/multiplatform-crypto-delegated/node_modules/inherits/README.md b/multiplatform-crypto-delegated/node_modules/inherits/README.md deleted file mode 100644 index b1c5665..0000000 --- a/multiplatform-crypto-delegated/node_modules/inherits/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Browser-friendly inheritance fully compatible with standard node.js -[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). - -This package exports standard `inherits` from node.js `util` module in -node environment, but also provides alternative browser-friendly -implementation through [browser -field](https://gist.github.com/shtylman/4339901). Alternative -implementation is a literal copy of standard one located in standalone -module to avoid requiring of `util`. It also has a shim for old -browsers with no `Object.create` support. - -While keeping you sure you are using standard `inherits` -implementation in node.js environment, it allows bundlers such as -[browserify](https://github.com/substack/node-browserify) to not -include full `util` package to your client code if all you need is -just `inherits` function. It worth, because browser shim for `util` -package is large and `inherits` is often the single function you need -from it. - -It's recommended to use this package instead of -`require('util').inherits` for any code that has chances to be used -not only in node.js but in browser too. - -## usage - -```js -var inherits = require('inherits'); -// then use exactly as the standard one -``` - -## note on version ~1.0 - -Version ~1.0 had completely different motivation and is not compatible -neither with 2.0 nor with standard node.js `inherits`. - -If you are using version ~1.0 and planning to switch to ~2.0, be -careful: - -* new version uses `super_` instead of `super` for referencing - superclass -* new version overwrites current prototype while old one preserves any - existing fields on it diff --git a/multiplatform-crypto-delegated/node_modules/inherits/inherits.js b/multiplatform-crypto-delegated/node_modules/inherits/inherits.js deleted file mode 100644 index f71f2d9..0000000 --- a/multiplatform-crypto-delegated/node_modules/inherits/inherits.js +++ /dev/null @@ -1,9 +0,0 @@ -try { - var util = require('util'); - /* istanbul ignore next */ - if (typeof util.inherits !== 'function') throw ''; - module.exports = util.inherits; -} catch (e) { - /* istanbul ignore next */ - module.exports = require('./inherits_browser.js'); -} diff --git a/multiplatform-crypto-delegated/node_modules/inherits/inherits_browser.js b/multiplatform-crypto-delegated/node_modules/inherits/inherits_browser.js deleted file mode 100644 index 86bbb3d..0000000 --- a/multiplatform-crypto-delegated/node_modules/inherits/inherits_browser.js +++ /dev/null @@ -1,27 +0,0 @@ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }) - } - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } -} diff --git a/multiplatform-crypto-delegated/node_modules/inherits/package.json b/multiplatform-crypto-delegated/node_modules/inherits/package.json deleted file mode 100644 index a5c4c58..0000000 --- a/multiplatform-crypto-delegated/node_modules/inherits/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_from": "inherits@2", - "_id": "inherits@2.0.4", - "_inBundle": false, - "_integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "_location": "/inherits", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "inherits@2", - "name": "inherits", - "escapedName": "inherits", - "rawSpec": "2", - "saveSpec": null, - "fetchSpec": "2" - }, - "_requiredBy": [ - "/glob" - ], - "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c", - "_spec": "inherits@2", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/glob", - "browser": "./inherits_browser.js", - "bugs": { - "url": "https://github.com/isaacs/inherits/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", - "devDependencies": { - "tap": "^14.2.4" - }, - "files": [ - "inherits.js", - "inherits_browser.js" - ], - "homepage": "https://github.com/isaacs/inherits#readme", - "keywords": [ - "inheritance", - "class", - "klass", - "oop", - "object-oriented", - "inherits", - "browser", - "browserify" - ], - "license": "ISC", - "main": "./inherits.js", - "name": "inherits", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/inherits.git" - }, - "scripts": { - "test": "tap" - }, - "version": "2.0.4" -} diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/README.md b/multiplatform-crypto-delegated/node_modules/kotlin/README.md deleted file mode 100644 index 99be9e3..0000000 --- a/multiplatform-crypto-delegated/node_modules/kotlin/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Kotlin Programming Language - -Welcome to [Kotlin](https://kotlinlang.org/)! Some handy links: - - * [Kotlin Site](https://kotlinlang.org/) - * [Getting Started Guide](https://kotlinlang.org/docs/tutorials/javascript/getting-started-idea/getting-started-with-intellij-idea.html) - * [Try Kotlin](https://try.kotlinlang.org/) - * [Kotlin Standard Library](https://kotlinlang.org/api/latest/jvm/stdlib/index.html) - * [Issue Tracker](https://youtrack.jetbrains.com/issues/KT) - * [Forum](https://discuss.kotlinlang.org/) - * [Kotlin Blog](https://blog.jetbrains.com/kotlin/) - * [Follow Kotlin on Twitter](https://twitter.com/kotlin) - * [Public Slack channel](https://slack.kotlinlang.org/) - * [TeamCity CI build](https://teamcity.jetbrains.com/project.html?tab=projectOverview&projectId=Kotlin) - -## Editing Kotlin - - * [Kotlin IntelliJ IDEA Plugin](https://kotlinlang.org/docs/tutorials/getting-started.html) - * [Kotlin Eclipse Plugin](https://kotlinlang.org/docs/tutorials/getting-started-eclipse.html) - * [Kotlin TextMate Bundle](https://github.com/vkostyukov/kotlin-sublime-package) diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js deleted file mode 100644 index 5adccff..0000000 --- a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js +++ /dev/null @@ -1,49560 +0,0 @@ -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - define('kotlin', ['exports'], factory); - } - else if (typeof exports === 'object') { - factory(module.exports); - } - else { - root.kotlin = {}; - factory(root.kotlin); - } -}(this, function (Kotlin) { - var _ = Kotlin; - Kotlin.isBooleanArray = function (a) { - return (Array.isArray(a) || a instanceof Int8Array) && a.$type$ === 'BooleanArray'; - }; - Kotlin.isByteArray = function (a) { - return a instanceof Int8Array && a.$type$ !== 'BooleanArray'; - }; - Kotlin.isShortArray = function (a) { - return a instanceof Int16Array; - }; - Kotlin.isCharArray = function (a) { - return a instanceof Uint16Array && a.$type$ === 'CharArray'; - }; - Kotlin.isIntArray = function (a) { - return a instanceof Int32Array; - }; - Kotlin.isFloatArray = function (a) { - return a instanceof Float32Array; - }; - Kotlin.isDoubleArray = function (a) { - return a instanceof Float64Array; - }; - Kotlin.isLongArray = function (a) { - return Array.isArray(a) && a.$type$ === 'LongArray'; - }; - Kotlin.isArray = function (a) { - return Array.isArray(a) && !a.$type$; - }; - Kotlin.isArrayish = function (a) { - return Array.isArray(a) || ArrayBuffer.isView(a); - }; - Kotlin.arrayToString = function (a) { - var toString = Kotlin.isCharArray(a) ? String.fromCharCode : Kotlin.toString; - return '[' + Array.prototype.map.call(a, function (e) { - return toString(e); - }).join(', ') + ']'; - }; - Kotlin.arrayDeepToString = function (arr) { - return Kotlin.kotlin.collections.contentDeepToStringImpl(arr); - }; - Kotlin.arrayEquals = function (a, b) { - if (a === b) { - return true; - } - if (!Kotlin.isArrayish(b) || a.length !== b.length) { - return false; - } - for (var i = 0, n = a.length; i < n; i++) { - if (!Kotlin.equals(a[i], b[i])) { - return false; - } - } - return true; - }; - Kotlin.arrayDeepEquals = function (a, b) { - return Kotlin.kotlin.collections.contentDeepEqualsImpl(a, b); - }; - Kotlin.arrayHashCode = function (arr) { - var result = 1; - for (var i = 0, n = arr.length; i < n; i++) { - result = (31 * result | 0) + Kotlin.hashCode(arr[i]) | 0; - } - return result; - }; - Kotlin.arrayDeepHashCode = function (arr) { - return Kotlin.kotlin.collections.contentDeepHashCodeImpl(arr); - }; - Kotlin.primitiveArraySort = function (array) { - array.sort(Kotlin.doubleCompareTo); - }; - Kotlin.getCallableRef = function (name, f) { - f.callableName = name; - return f; - }; - Kotlin.getPropertyCallableRef = function (name, paramCount, getter, setter) { - getter.get = getter; - getter.set = setter; - getter.callableName = name; - return getPropertyRefClass(getter, setter, propertyRefClassMetadataCache[paramCount]); - }; - function getPropertyRefClass(obj, setter, cache) { - obj.$metadata$ = getPropertyRefMetadata(typeof setter === 'function' ? cache.mutable : cache.immutable); - obj.constructor = obj; - return obj; - } - var propertyRefClassMetadataCache = [{mutable: {value: null, implementedInterface: function () { - return Kotlin.kotlin.reflect.KMutableProperty0; - }}, immutable: {value: null, implementedInterface: function () { - return Kotlin.kotlin.reflect.KProperty0; - }}}, {mutable: {value: null, implementedInterface: function () { - return Kotlin.kotlin.reflect.KMutableProperty1; - }}, immutable: {value: null, implementedInterface: function () { - return Kotlin.kotlin.reflect.KProperty1; - }}}]; - function getPropertyRefMetadata(cache) { - if (cache.value === null) { - cache.value = {interfaces: [cache.implementedInterface()], baseClass: null, functions: {}, properties: {}, types: {}, staticMembers: {}}; - } - return cache.value; - } - Kotlin.toShort = function (a) { - return (a & 65535) << 16 >> 16; - }; - Kotlin.toByte = function (a) { - return (a & 255) << 24 >> 24; - }; - Kotlin.toChar = function (a) { - return a & 65535; - }; - Kotlin.numberToLong = function (a) { - return a instanceof Kotlin.Long ? a : Kotlin.Long.fromNumber(a); - }; - Kotlin.numberToInt = function (a) { - return a instanceof Kotlin.Long ? a.toInt() : Kotlin.doubleToInt(a); - }; - Kotlin.numberToShort = function (a) { - return Kotlin.toShort(Kotlin.numberToInt(a)); - }; - Kotlin.numberToByte = function (a) { - return Kotlin.toByte(Kotlin.numberToInt(a)); - }; - Kotlin.numberToDouble = function (a) { - return +a; - }; - Kotlin.numberToChar = function (a) { - return Kotlin.toChar(Kotlin.numberToInt(a)); - }; - Kotlin.doubleToInt = function (a) { - if (a > 2147483647) - return 2147483647; - if (a < -2147483648) - return -2147483648; - return a | 0; - }; - Kotlin.toBoxedChar = function (a) { - if (a == null) - return a; - if (a instanceof Kotlin.BoxedChar) - return a; - return new Kotlin.BoxedChar(a); - }; - Kotlin.unboxChar = function (a) { - if (a == null) - return a; - return Kotlin.toChar(a); - }; - Kotlin.equals = function (obj1, obj2) { - if (obj1 == null) { - return obj2 == null; - } - if (obj2 == null) { - return false; - } - if (obj1 !== obj1) { - return obj2 !== obj2; - } - if (typeof obj1 === 'object' && typeof obj1.equals === 'function') { - return obj1.equals(obj2); - } - if (typeof obj1 === 'number' && typeof obj2 === 'number') { - return obj1 === obj2 && (obj1 !== 0 || 1 / obj1 === 1 / obj2); - } - return obj1 === obj2; - }; - Kotlin.hashCode = function (obj) { - if (obj == null) { - return 0; - } - var objType = typeof obj; - if ('object' === objType) { - return 'function' === typeof obj.hashCode ? obj.hashCode() : getObjectHashCode(obj); - } - if ('function' === objType) { - return getObjectHashCode(obj); - } - if ('number' === objType) { - return Kotlin.numberHashCode(obj); - } - if ('boolean' === objType) { - return Number(obj); - } - var str = String(obj); - return getStringHashCode(str); - }; - Kotlin.toString = function (o) { - if (o == null) { - return 'null'; - } - else if (Kotlin.isArrayish(o)) { - return '[...]'; - } - else { - return o.toString(); - } - }; - var POW_2_32 = 4.294967296E9; - var OBJECT_HASH_CODE_PROPERTY_NAME = 'kotlinHashCodeValue$'; - function getObjectHashCode(obj) { - if (!(OBJECT_HASH_CODE_PROPERTY_NAME in obj)) { - var hash = Math.random() * POW_2_32 | 0; - Object.defineProperty(obj, OBJECT_HASH_CODE_PROPERTY_NAME, {value: hash, enumerable: false}); - } - return obj[OBJECT_HASH_CODE_PROPERTY_NAME]; - } - function getStringHashCode(str) { - var hash = 0; - for (var i = 0; i < str.length; i++) { - var code = str.charCodeAt(i); - hash = hash * 31 + code | 0; - } - return hash; - } - Kotlin.identityHashCode = getObjectHashCode; - Kotlin.Long = function (low, high) { - this.low_ = low | 0; - this.high_ = high | 0; - }; - Kotlin.Long.$metadata$ = {kind: 'class', simpleName: 'Long', interfaces: []}; - Kotlin.Long.IntCache_ = {}; - Kotlin.Long.fromInt = function (value) { - if (-128 <= value && value < 128) { - var cachedObj = Kotlin.Long.IntCache_[value]; - if (cachedObj) { - return cachedObj; - } - } - var obj = new Kotlin.Long(value | 0, value < 0 ? -1 : 0); - if (-128 <= value && value < 128) { - Kotlin.Long.IntCache_[value] = obj; - } - return obj; - }; - Kotlin.Long.fromNumber = function (value) { - if (isNaN(value) || !isFinite(value)) { - return Kotlin.Long.ZERO; - } - else if (value <= -Kotlin.Long.TWO_PWR_63_DBL_) { - return Kotlin.Long.MIN_VALUE; - } - else if (value + 1 >= Kotlin.Long.TWO_PWR_63_DBL_) { - return Kotlin.Long.MAX_VALUE; - } - else if (value < 0) { - return Kotlin.Long.fromNumber(-value).negate(); - } - else { - return new Kotlin.Long(value % Kotlin.Long.TWO_PWR_32_DBL_ | 0, value / Kotlin.Long.TWO_PWR_32_DBL_ | 0); - } - }; - Kotlin.Long.fromBits = function (lowBits, highBits) { - return new Kotlin.Long(lowBits, highBits); - }; - Kotlin.Long.fromString = function (str, opt_radix) { - if (str.length == 0) { - throw Error('number format error: empty string'); - } - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - if (str.charAt(0) == '-') { - return Kotlin.Long.fromString(str.substring(1), radix).negate(); - } - else if (str.indexOf('-') >= 0) { - throw Error('number format error: interior "-" character: ' + str); - } - var radixToPower = Kotlin.Long.fromNumber(Math.pow(radix, 8)); - var result = Kotlin.Long.ZERO; - for (var i = 0; i < str.length; i += 8) { - var size = Math.min(8, str.length - i); - var value = parseInt(str.substring(i, i + size), radix); - if (size < 8) { - var power = Kotlin.Long.fromNumber(Math.pow(radix, size)); - result = result.multiply(power).add(Kotlin.Long.fromNumber(value)); - } - else { - result = result.multiply(radixToPower); - result = result.add(Kotlin.Long.fromNumber(value)); - } - } - return result; - }; - Kotlin.Long.TWO_PWR_16_DBL_ = 1 << 16; - Kotlin.Long.TWO_PWR_24_DBL_ = 1 << 24; - Kotlin.Long.TWO_PWR_32_DBL_ = Kotlin.Long.TWO_PWR_16_DBL_ * Kotlin.Long.TWO_PWR_16_DBL_; - Kotlin.Long.TWO_PWR_31_DBL_ = Kotlin.Long.TWO_PWR_32_DBL_ / 2; - Kotlin.Long.TWO_PWR_48_DBL_ = Kotlin.Long.TWO_PWR_32_DBL_ * Kotlin.Long.TWO_PWR_16_DBL_; - Kotlin.Long.TWO_PWR_64_DBL_ = Kotlin.Long.TWO_PWR_32_DBL_ * Kotlin.Long.TWO_PWR_32_DBL_; - Kotlin.Long.TWO_PWR_63_DBL_ = Kotlin.Long.TWO_PWR_64_DBL_ / 2; - Kotlin.Long.ZERO = Kotlin.Long.fromInt(0); - Kotlin.Long.ONE = Kotlin.Long.fromInt(1); - Kotlin.Long.NEG_ONE = Kotlin.Long.fromInt(-1); - Kotlin.Long.MAX_VALUE = Kotlin.Long.fromBits(4.294967295E9 | 0, 2147483647 | 0); - Kotlin.Long.MIN_VALUE = Kotlin.Long.fromBits(0, 2.147483648E9 | 0); - Kotlin.Long.TWO_PWR_24_ = Kotlin.Long.fromInt(1 << 24); - Kotlin.Long.prototype.toInt = function () { - return this.low_; - }; - Kotlin.Long.prototype.toNumber = function () { - return this.high_ * Kotlin.Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); - }; - Kotlin.Long.prototype.hashCode = function () { - return this.high_ ^ this.low_; - }; - Kotlin.Long.prototype.toString = function (opt_radix) { - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - if (this.isZero()) { - return '0'; - } - if (this.isNegative()) { - if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { - var radixLong = Kotlin.Long.fromNumber(radix); - var div = this.div(radixLong); - var rem = div.multiply(radixLong).subtract(this); - return div.toString(radix) + rem.toInt().toString(radix); - } - else { - return '-' + this.negate().toString(radix); - } - } - var radixToPower = Kotlin.Long.fromNumber(Math.pow(radix, 6)); - var rem = this; - var result = ''; - while (true) { - var remDiv = rem.div(radixToPower); - var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); - var digits = intval.toString(radix); - rem = remDiv; - if (rem.isZero()) { - return digits + result; - } - else { - while (digits.length < 6) { - digits = '0' + digits; - } - result = '' + digits + result; - } - } - }; - Kotlin.Long.prototype.getHighBits = function () { - return this.high_; - }; - Kotlin.Long.prototype.getLowBits = function () { - return this.low_; - }; - Kotlin.Long.prototype.getLowBitsUnsigned = function () { - return this.low_ >= 0 ? this.low_ : Kotlin.Long.TWO_PWR_32_DBL_ + this.low_; - }; - Kotlin.Long.prototype.getNumBitsAbs = function () { - if (this.isNegative()) { - if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { - return 64; - } - else { - return this.negate().getNumBitsAbs(); - } - } - else { - var val = this.high_ != 0 ? this.high_ : this.low_; - for (var bit = 31; bit > 0; bit--) { - if ((val & 1 << bit) != 0) { - break; - } - } - return this.high_ != 0 ? bit + 33 : bit + 1; - } - }; - Kotlin.Long.prototype.isZero = function () { - return this.high_ == 0 && this.low_ == 0; - }; - Kotlin.Long.prototype.isNegative = function () { - return this.high_ < 0; - }; - Kotlin.Long.prototype.isOdd = function () { - return (this.low_ & 1) == 1; - }; - Kotlin.Long.prototype.equalsLong = function (other) { - return this.high_ == other.high_ && this.low_ == other.low_; - }; - Kotlin.Long.prototype.notEqualsLong = function (other) { - return this.high_ != other.high_ || this.low_ != other.low_; - }; - Kotlin.Long.prototype.lessThan = function (other) { - return this.compare(other) < 0; - }; - Kotlin.Long.prototype.lessThanOrEqual = function (other) { - return this.compare(other) <= 0; - }; - Kotlin.Long.prototype.greaterThan = function (other) { - return this.compare(other) > 0; - }; - Kotlin.Long.prototype.greaterThanOrEqual = function (other) { - return this.compare(other) >= 0; - }; - Kotlin.Long.prototype.compare = function (other) { - if (this.equalsLong(other)) { - return 0; - } - var thisNeg = this.isNegative(); - var otherNeg = other.isNegative(); - if (thisNeg && !otherNeg) { - return -1; - } - if (!thisNeg && otherNeg) { - return 1; - } - if (this.subtract(other).isNegative()) { - return -1; - } - else { - return 1; - } - }; - Kotlin.Long.prototype.negate = function () { - if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { - return Kotlin.Long.MIN_VALUE; - } - else { - return this.not().add(Kotlin.Long.ONE); - } - }; - Kotlin.Long.prototype.add = function (other) { - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 65535; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 65535; - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 65535; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 65535; - var c48 = 0, c32 = 0, c16 = 0, c00 = 0; - c00 += a00 + b00; - c16 += c00 >>> 16; - c00 &= 65535; - c16 += a16 + b16; - c32 += c16 >>> 16; - c16 &= 65535; - c32 += a32 + b32; - c48 += c32 >>> 16; - c32 &= 65535; - c48 += a48 + b48; - c48 &= 65535; - return Kotlin.Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); - }; - Kotlin.Long.prototype.subtract = function (other) { - return this.add(other.negate()); - }; - Kotlin.Long.prototype.multiply = function (other) { - if (this.isZero()) { - return Kotlin.Long.ZERO; - } - else if (other.isZero()) { - return Kotlin.Long.ZERO; - } - if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { - return other.isOdd() ? Kotlin.Long.MIN_VALUE : Kotlin.Long.ZERO; - } - else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) { - return this.isOdd() ? Kotlin.Long.MIN_VALUE : Kotlin.Long.ZERO; - } - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().multiply(other.negate()); - } - else { - return this.negate().multiply(other).negate(); - } - } - else if (other.isNegative()) { - return this.multiply(other.negate()).negate(); - } - if (this.lessThan(Kotlin.Long.TWO_PWR_24_) && other.lessThan(Kotlin.Long.TWO_PWR_24_)) { - return Kotlin.Long.fromNumber(this.toNumber() * other.toNumber()); - } - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 65535; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 65535; - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 65535; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 65535; - var c48 = 0, c32 = 0, c16 = 0, c00 = 0; - c00 += a00 * b00; - c16 += c00 >>> 16; - c00 &= 65535; - c16 += a16 * b00; - c32 += c16 >>> 16; - c16 &= 65535; - c16 += a00 * b16; - c32 += c16 >>> 16; - c16 &= 65535; - c32 += a32 * b00; - c48 += c32 >>> 16; - c32 &= 65535; - c32 += a16 * b16; - c48 += c32 >>> 16; - c32 &= 65535; - c32 += a00 * b32; - c48 += c32 >>> 16; - c32 &= 65535; - c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; - c48 &= 65535; - return Kotlin.Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); - }; - Kotlin.Long.prototype.div = function (other) { - if (other.isZero()) { - throw Error('division by zero'); - } - else if (this.isZero()) { - return Kotlin.Long.ZERO; - } - if (this.equalsLong(Kotlin.Long.MIN_VALUE)) { - if (other.equalsLong(Kotlin.Long.ONE) || other.equalsLong(Kotlin.Long.NEG_ONE)) { - return Kotlin.Long.MIN_VALUE; - } - else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) { - return Kotlin.Long.ONE; - } - else { - var halfThis = this.shiftRight(1); - var approx = halfThis.div(other).shiftLeft(1); - if (approx.equalsLong(Kotlin.Long.ZERO)) { - return other.isNegative() ? Kotlin.Long.ONE : Kotlin.Long.NEG_ONE; - } - else { - var rem = this.subtract(other.multiply(approx)); - var result = approx.add(rem.div(other)); - return result; - } - } - } - else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) { - return Kotlin.Long.ZERO; - } - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().div(other.negate()); - } - else { - return this.negate().div(other).negate(); - } - } - else if (other.isNegative()) { - return this.div(other.negate()).negate(); - } - var res = Kotlin.Long.ZERO; - var rem = this; - while (rem.greaterThanOrEqual(other)) { - var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); - var log2 = Math.ceil(Math.log(approx) / Math.LN2); - var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); - var approxRes = Kotlin.Long.fromNumber(approx); - var approxRem = approxRes.multiply(other); - while (approxRem.isNegative() || approxRem.greaterThan(rem)) { - approx -= delta; - approxRes = Kotlin.Long.fromNumber(approx); - approxRem = approxRes.multiply(other); - } - if (approxRes.isZero()) { - approxRes = Kotlin.Long.ONE; - } - res = res.add(approxRes); - rem = rem.subtract(approxRem); - } - return res; - }; - Kotlin.Long.prototype.modulo = function (other) { - return this.subtract(this.div(other).multiply(other)); - }; - Kotlin.Long.prototype.not = function () { - return Kotlin.Long.fromBits(~this.low_, ~this.high_); - }; - Kotlin.Long.prototype.and = function (other) { - return Kotlin.Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); - }; - Kotlin.Long.prototype.or = function (other) { - return Kotlin.Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); - }; - Kotlin.Long.prototype.xor = function (other) { - return Kotlin.Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); - }; - Kotlin.Long.prototype.shiftLeft = function (numBits) { - numBits &= 63; - if (numBits == 0) { - return this; - } - else { - var low = this.low_; - if (numBits < 32) { - var high = this.high_; - return Kotlin.Long.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); - } - else { - return Kotlin.Long.fromBits(0, low << numBits - 32); - } - } - }; - Kotlin.Long.prototype.shiftRight = function (numBits) { - numBits &= 63; - if (numBits == 0) { - return this; - } - else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Kotlin.Long.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); - } - else { - return Kotlin.Long.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); - } - } - }; - Kotlin.Long.prototype.shiftRightUnsigned = function (numBits) { - numBits &= 63; - if (numBits == 0) { - return this; - } - else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Kotlin.Long.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); - } - else if (numBits == 32) { - return Kotlin.Long.fromBits(high, 0); - } - else { - return Kotlin.Long.fromBits(high >>> numBits - 32, 0); - } - } - }; - Kotlin.Long.prototype.equals = function (other) { - return other instanceof Kotlin.Long && this.equalsLong(other); - }; - Kotlin.Long.prototype.compareTo_11rb$ = Kotlin.Long.prototype.compare; - Kotlin.Long.prototype.inc = function () { - return this.add(Kotlin.Long.ONE); - }; - Kotlin.Long.prototype.dec = function () { - return this.add(Kotlin.Long.NEG_ONE); - }; - Kotlin.Long.prototype.valueOf = function () { - return this.toNumber(); - }; - Kotlin.Long.prototype.unaryPlus = function () { - return this; - }; - Kotlin.Long.prototype.unaryMinus = Kotlin.Long.prototype.negate; - Kotlin.Long.prototype.inv = Kotlin.Long.prototype.not; - Kotlin.Long.prototype.rangeTo = function (other) { - return new Kotlin.kotlin.ranges.LongRange(this, other); - }; - Kotlin.defineModule = function (id, declaration) { - }; - Kotlin.defineInlineFunction = function (tag, fun) { - return fun; - }; - Kotlin.wrapFunction = function (fun) { - var f = function () { - f = fun(); - return f.apply(this, arguments); - }; - return function () { - return f.apply(this, arguments); - }; - }; - Kotlin.isTypeOf = function (type) { - return function (object) { - return typeof object === type; - }; - }; - Kotlin.isInstanceOf = function (klass) { - return function (object) { - return Kotlin.isType(object, klass); - }; - }; - Kotlin.orNull = function (fn) { - return function (object) { - return object == null || fn(object); - }; - }; - Kotlin.andPredicate = function (a, b) { - return function (object) { - return a(object) && b(object); - }; - }; - Kotlin.kotlinModuleMetadata = function (abiVersion, moduleName, data) { - }; - Kotlin.suspendCall = function (value) { - return value; - }; - Kotlin.coroutineResult = function (qualifier) { - throwMarkerError(); - }; - Kotlin.coroutineController = function (qualifier) { - throwMarkerError(); - }; - Kotlin.coroutineReceiver = function (qualifier) { - throwMarkerError(); - }; - Kotlin.setCoroutineResult = function (value, qualifier) { - throwMarkerError(); - }; - function throwMarkerError() { - throw new Error('This marker function should never been called. ' + 'Looks like compiler did not eliminate it properly. ' + 'Please, report an issue if you caught this exception.'); - } - Kotlin.getFunctionById = function (id, defaultValue) { - return function () { - return defaultValue; - }; - }; - Kotlin.compareTo = function (a, b) { - var typeA = typeof a; - if (typeA === 'number') { - if (typeof b === 'number') { - return Kotlin.doubleCompareTo(a, b); - } - return Kotlin.primitiveCompareTo(a, b); - } - if (typeA === 'string' || typeA === 'boolean') { - return Kotlin.primitiveCompareTo(a, b); - } - return a.compareTo_11rb$(b); - }; - Kotlin.primitiveCompareTo = function (a, b) { - return a < b ? -1 : a > b ? 1 : 0; - }; - Kotlin.doubleCompareTo = function (a, b) { - if (a < b) - return -1; - if (a > b) - return 1; - if (a === b) { - if (a !== 0) - return 0; - var ia = 1 / a; - return ia === 1 / b ? 0 : ia < 0 ? -1 : 1; - } - return a !== a ? b !== b ? 0 : 1 : -1; - }; - Kotlin.charInc = function (value) { - return Kotlin.toChar(value + 1); - }; - Kotlin.charDec = function (value) { - return Kotlin.toChar(value - 1); - }; - Kotlin.imul = Math.imul || imul; - Kotlin.imulEmulated = imul; - function imul(a, b) { - return (a & 4.29490176E9) * (b & 65535) + (a & 65535) * (b | 0) | 0; - } - (function () { - var buf = new ArrayBuffer(8); - var bufFloat64 = new Float64Array(buf); - var bufFloat32 = new Float32Array(buf); - var bufInt32 = new Int32Array(buf); - var lowIndex = 0; - var highIndex = 1; - bufFloat64[0] = -1; - if (bufInt32[lowIndex] !== 0) { - lowIndex = 1; - highIndex = 0; - } - Kotlin.doubleToBits = function (value) { - return Kotlin.doubleToRawBits(isNaN(value) ? NaN : value); - }; - Kotlin.doubleToRawBits = function (value) { - bufFloat64[0] = value; - return Kotlin.Long.fromBits(bufInt32[lowIndex], bufInt32[highIndex]); - }; - Kotlin.doubleFromBits = function (value) { - bufInt32[lowIndex] = value.low_; - bufInt32[highIndex] = value.high_; - return bufFloat64[0]; - }; - Kotlin.floatToBits = function (value) { - return Kotlin.floatToRawBits(isNaN(value) ? NaN : value); - }; - Kotlin.floatToRawBits = function (value) { - bufFloat32[0] = value; - return bufInt32[0]; - }; - Kotlin.floatFromBits = function (value) { - bufInt32[0] = value; - return bufFloat32[0]; - }; - Kotlin.doubleSignBit = function (value) { - bufFloat64[0] = value; - return bufInt32[highIndex] & 2.147483648E9; - }; - Kotlin.numberHashCode = function (obj) { - if ((obj | 0) === obj) { - return obj | 0; - } - else { - bufFloat64[0] = obj; - return (bufInt32[highIndex] * 31 | 0) + bufInt32[lowIndex] | 0; - } - }; - }()); - Kotlin.ensureNotNull = function (x) { - return x != null ? x : Kotlin.throwNPE(); - }; - if (typeof String.prototype.startsWith === 'undefined') { - String.prototype.startsWith = function (searchString, position) { - position = position || 0; - return this.lastIndexOf(searchString, position) === position; - }; - } - if (typeof String.prototype.endsWith === 'undefined') { - String.prototype.endsWith = function (searchString, position) { - var subjectString = this.toString(); - if (position === undefined || position > subjectString.length) { - position = subjectString.length; - } - position -= searchString.length; - var lastIndex = subjectString.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - } - if (typeof Math.sign === 'undefined') { - Math.sign = function (x) { - x = +x; - if (x === 0 || isNaN(x)) { - return Number(x); - } - return x > 0 ? 1 : -1; - }; - } - if (typeof Math.trunc === 'undefined') { - Math.trunc = function (x) { - if (isNaN(x)) { - return NaN; - } - if (x > 0) { - return Math.floor(x); - } - return Math.ceil(x); - }; - } - (function () { - var epsilon = 2.220446049250313E-16; - var taylor_2_bound = Math.sqrt(epsilon); - var taylor_n_bound = Math.sqrt(taylor_2_bound); - var upper_taylor_2_bound = 1 / taylor_2_bound; - var upper_taylor_n_bound = 1 / taylor_n_bound; - if (typeof Math.sinh === 'undefined') { - Math.sinh = function (x) { - if (Math.abs(x) < taylor_n_bound) { - var result = x; - if (Math.abs(x) > taylor_2_bound) { - result += x * x * x / 6; - } - return result; - } - else { - var y = Math.exp(x); - var y1 = 1 / y; - if (!isFinite(y)) - return Math.exp(x - Math.LN2); - if (!isFinite(y1)) - return -Math.exp(-x - Math.LN2); - return (y - y1) / 2; - } - }; - } - if (typeof Math.cosh === 'undefined') { - Math.cosh = function (x) { - var y = Math.exp(x); - var y1 = 1 / y; - if (!isFinite(y) || !isFinite(y1)) - return Math.exp(Math.abs(x) - Math.LN2); - return (y + y1) / 2; - }; - } - if (typeof Math.tanh === 'undefined') { - Math.tanh = function (x) { - if (Math.abs(x) < taylor_n_bound) { - var result = x; - if (Math.abs(x) > taylor_2_bound) { - result -= x * x * x / 3; - } - return result; - } - else { - var a = Math.exp(+x), b = Math.exp(-x); - return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (a + b); - } - }; - } - if (typeof Math.asinh === 'undefined') { - var asinh = function (x) { - if (x >= +taylor_n_bound) { - if (x > upper_taylor_n_bound) { - if (x > upper_taylor_2_bound) { - return Math.log(x) + Math.LN2; - } - else { - return Math.log(x * 2 + 1 / (x * 2)); - } - } - else { - return Math.log(x + Math.sqrt(x * x + 1)); - } - } - else if (x <= -taylor_n_bound) { - return -asinh(-x); - } - else { - var result = x; - if (Math.abs(x) >= taylor_2_bound) { - var x3 = x * x * x; - result -= x3 / 6; - } - return result; - } - }; - Math.asinh = asinh; - } - if (typeof Math.acosh === 'undefined') { - Math.acosh = function (x) { - if (x < 1) { - return NaN; - } - else if (x - 1 >= taylor_n_bound) { - if (x > upper_taylor_2_bound) { - return Math.log(x) + Math.LN2; - } - else { - return Math.log(x + Math.sqrt(x * x - 1)); - } - } - else { - var y = Math.sqrt(x - 1); - var result = y; - if (y >= taylor_2_bound) { - var y3 = y * y * y; - result -= y3 / 12; - } - return Math.sqrt(2) * result; - } - }; - } - if (typeof Math.atanh === 'undefined') { - Math.atanh = function (x) { - if (Math.abs(x) < taylor_n_bound) { - var result = x; - if (Math.abs(x) > taylor_2_bound) { - result += x * x * x / 3; - } - return result; - } - return Math.log((1 + x) / (1 - x)) / 2; - }; - } - if (typeof Math.log1p === 'undefined') { - Math.log1p = function (x) { - if (Math.abs(x) < taylor_n_bound) { - var x2 = x * x; - var x3 = x2 * x; - var x4 = x3 * x; - return -x4 / 4 + x3 / 3 - x2 / 2 + x; - } - return Math.log(x + 1); - }; - } - if (typeof Math.expm1 === 'undefined') { - Math.expm1 = function (x) { - if (Math.abs(x) < taylor_n_bound) { - var x2 = x * x; - var x3 = x2 * x; - var x4 = x3 * x; - return x4 / 24 + x3 / 6 + x2 / 2 + x; - } - return Math.exp(x) - 1; - }; - } - }()); - if (typeof Math.hypot === 'undefined') { - Math.hypot = function () { - var y = 0; - var length = arguments.length; - for (var i = 0; i < length; i++) { - if (arguments[i] === Infinity || arguments[i] === -Infinity) { - return Infinity; - } - y += arguments[i] * arguments[i]; - } - return Math.sqrt(y); - }; - } - if (typeof Math.log10 === 'undefined') { - Math.log10 = function (x) { - return Math.log(x) * Math.LOG10E; - }; - } - if (typeof Math.log2 === 'undefined') { - Math.log2 = function (x) { - return Math.log(x) * Math.LOG2E; - }; - } - if (typeof ArrayBuffer.isView === 'undefined') { - ArrayBuffer.isView = function (a) { - return a != null && a.__proto__ != null && a.__proto__.__proto__ === Int8Array.prototype.__proto__; - }; - } - (function () { - function normalizeOffset(offset, length) { - if (offset < 0) - return Math.max(0, offset + length); - return Math.min(offset, length); - } - function typedArraySlice(begin, end) { - if (typeof end === 'undefined') { - end = this.length; - } - begin = normalizeOffset(begin || 0, this.length); - end = Math.max(begin, normalizeOffset(end, this.length)); - return new this.constructor(this.subarray(begin, end)); - } - var arrays = [Int8Array, Int16Array, Uint16Array, Int32Array, Float32Array, Float64Array]; - for (var i = 0; i < arrays.length; ++i) { - var TypedArray = arrays[i]; - if (typeof TypedArray.prototype.slice === 'undefined') { - Object.defineProperty(TypedArray.prototype, 'slice', {value: typedArraySlice}); - } - } - try { - (function () { - }.apply(null, new Int32Array(0))); - } - catch (e) { - var apply = Function.prototype.apply; - Object.defineProperty(Function.prototype, 'apply', {value: function (self, array) { - return apply.call(this, self, [].slice.call(array)); - }}); - } - for (var i = 0; i < arrays.length; ++i) { - var TypedArray = arrays[i]; - if (typeof TypedArray.prototype.map === 'undefined') { - Object.defineProperty(TypedArray.prototype, 'map', {value: function (callback, self) { - return [].slice.call(this).map(callback, self); - }}); - } - } - var totalOrderComparator = function (a, b) { - if (a < b) - return -1; - if (a > b) - return 1; - if (a === b) { - if (a !== 0) - return 0; - var ia = 1 / a; - return ia === 1 / b ? 0 : ia < 0 ? -1 : 1; - } - return a !== a ? b !== b ? 0 : 1 : -1; - }; - for (var i = 0; i < arrays.length; ++i) { - var TypedArray = arrays[i]; - if (typeof TypedArray.prototype.sort === 'undefined') { - Object.defineProperty(TypedArray.prototype, 'sort', {value: function (compareFunction) { - return Array.prototype.sort.call(this, compareFunction || totalOrderComparator); - }}); - } - } - }()); - Kotlin.Kind = {CLASS: 'class', INTERFACE: 'interface', OBJECT: 'object'}; - Kotlin.callGetter = function (thisObject, klass, propertyName) { - var propertyDescriptor = Object.getOwnPropertyDescriptor(klass, propertyName); - if (propertyDescriptor != null && propertyDescriptor.get != null) { - return propertyDescriptor.get.call(thisObject); - } - propertyDescriptor = Object.getOwnPropertyDescriptor(thisObject, propertyName); - if (propertyDescriptor != null && 'value' in propertyDescriptor) { - return thisObject[propertyName]; - } - return Kotlin.callGetter(thisObject, Object.getPrototypeOf(klass), propertyName); - }; - Kotlin.callSetter = function (thisObject, klass, propertyName, value) { - var propertyDescriptor = Object.getOwnPropertyDescriptor(klass, propertyName); - if (propertyDescriptor != null && propertyDescriptor.set != null) { - propertyDescriptor.set.call(thisObject, value); - return; - } - propertyDescriptor = Object.getOwnPropertyDescriptor(thisObject, propertyName); - if (propertyDescriptor != null && 'value' in propertyDescriptor) { - thisObject[propertyName] = value; - return; - } - Kotlin.callSetter(thisObject, Object.getPrototypeOf(klass), propertyName, value); - }; - function isInheritanceFromInterface(ctor, iface) { - if (ctor === iface) - return true; - var metadata = ctor.$metadata$; - if (metadata != null) { - var interfaces = metadata.interfaces; - for (var i = 0; i < interfaces.length; i++) { - if (isInheritanceFromInterface(interfaces[i], iface)) { - return true; - } - } - } - var superPrototype = ctor.prototype != null ? Object.getPrototypeOf(ctor.prototype) : null; - var superConstructor = superPrototype != null ? superPrototype.constructor : null; - return superConstructor != null && isInheritanceFromInterface(superConstructor, iface); - } - Kotlin.isType = function (object, klass) { - if (klass === Object) { - switch (typeof object) { - case 'string': - case 'number': - case 'boolean': - case 'function': - return true; - default:return object instanceof Object; - } - } - if (object == null || klass == null || (typeof object !== 'object' && typeof object !== 'function')) { - return false; - } - if (typeof klass === 'function' && object instanceof klass) { - return true; - } - var proto = Object.getPrototypeOf(klass); - var constructor = proto != null ? proto.constructor : null; - if (constructor != null && '$metadata$' in constructor) { - var metadata = constructor.$metadata$; - if (metadata.kind === Kotlin.Kind.OBJECT) { - return object === klass; - } - } - var klassMetadata = klass.$metadata$; - if (klassMetadata == null) { - return object instanceof klass; - } - if (klassMetadata.kind === Kotlin.Kind.INTERFACE && object.constructor != null) { - return isInheritanceFromInterface(object.constructor, klass); - } - return false; - }; - Kotlin.isNumber = function (a) { - return typeof a == 'number' || a instanceof Kotlin.Long; - }; - Kotlin.isChar = function (value) { - return value instanceof Kotlin.BoxedChar; - }; - Kotlin.isComparable = function (value) { - var type = typeof value; - return type === 'string' || type === 'boolean' || Kotlin.isNumber(value) || Kotlin.isType(value, Kotlin.kotlin.Comparable); - }; - Kotlin.isCharSequence = function (value) { - return typeof value === 'string' || Kotlin.isType(value, Kotlin.kotlin.CharSequence); - }; - (function() { - 'use strict'; - var Kind_INTERFACE = Kotlin.Kind.INTERFACE; - var Kind_OBJECT = Kotlin.Kind.OBJECT; - var Kind_CLASS = Kotlin.Kind.CLASS; - var defineInlineFunction = Kotlin.defineInlineFunction; - var wrapFunction = Kotlin.wrapFunction; - var equals = Kotlin.equals; - var L0 = Kotlin.Long.ZERO; - function Comparable() { - } - Comparable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Comparable', interfaces: []}; - function Enum() { - Enum$Companion_getInstance(); - this.name$ = ''; - this.ordinal$ = 0; - } - Object.defineProperty(Enum.prototype, 'name', {get: function () { - return this.name$; - }}); - Object.defineProperty(Enum.prototype, 'ordinal', {get: function () { - return this.ordinal$; - }}); - Enum.prototype.compareTo_11rb$ = function (other) { - return Kotlin.primitiveCompareTo(this.ordinal, other.ordinal); - }; - Enum.prototype.equals = function (other) { - return this === other; - }; - Enum.prototype.hashCode = function () { - return Kotlin.identityHashCode(this); - }; - Enum.prototype.toString = function () { - return this.name; - }; - function Enum$Companion() { - Enum$Companion_instance = this; - } - Enum$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var Enum$Companion_instance = null; - function Enum$Companion_getInstance() { - if (Enum$Companion_instance === null) { - new Enum$Companion(); - } - return Enum$Companion_instance; - } - Enum.$metadata$ = {kind: Kind_CLASS, simpleName: 'Enum', interfaces: [Comparable]}; - function newArray(size, initValue) { - return fillArrayVal(Array(size), initValue); - } - var arrayWithFun = defineInlineFunction('kotlin.newArrayF', wrapFunction(function () { - var Array_0 = Array; - return function (size, init) { - var array = Array_0(size); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = init(i); - } - return array; - }; - })); - var fillArrayFun = defineInlineFunction('kotlin.fillArray', function (array, init) { - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = init(i); - } - return array; - }); - function booleanArray(size, init) { - var tmp$; - var result = Array(size); - result.$type$ = 'BooleanArray'; - if (init == null || equals(init, true)) - tmp$ = fillArrayVal(result, false); - else if (equals(init, false)) - tmp$ = result; - else { - var tmp$_0; - tmp$_0 = result.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - result[i] = init(i); - } - tmp$ = result; - } - return tmp$; - } - var booleanArrayWithFun = defineInlineFunction('kotlin.booleanArrayF', wrapFunction(function () { - var booleanArray = _.booleanArray; - return function (size, init) { - var array = booleanArray(size, false); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = init(i); - } - return array; - }; - })); - function charArray(size, init) { - var tmp$; - var result = new Uint16Array(size); - result.$type$ = 'CharArray'; - if (init == null || equals(init, true) || equals(init, false)) - tmp$ = result; - else { - var tmp$_0; - tmp$_0 = result.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - result[i] = init(i); - } - tmp$ = result; - } - return tmp$; - } - var charArrayWithFun = defineInlineFunction('kotlin.charArrayF', wrapFunction(function () { - var charArray = _.charArray; - var unboxChar = Kotlin.unboxChar; - return function (size, init) { - var tmp$; - var array = charArray(size, null); - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var value = unboxChar(init(i)); - array[i] = value; - } - return array; - }; - })); - var untypedCharArrayWithFun = defineInlineFunction('kotlin.untypedCharArrayF', wrapFunction(function () { - var Array_0 = Array; - var unboxChar = Kotlin.unboxChar; - return function (size, init) { - var tmp$; - var array = Array_0(size); - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var value = unboxChar(init(i)); - array[i] = value; - } - return array; - }; - })); - function longArray(size, init) { - var tmp$; - var result = Array(size); - result.$type$ = 'LongArray'; - if (init == null || equals(init, true)) - tmp$ = fillArrayVal(result, L0); - else if (equals(init, false)) - tmp$ = result; - else { - var tmp$_0; - tmp$_0 = result.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - result[i] = init(i); - } - tmp$ = result; - } - return tmp$; - } - var longArrayWithFun = defineInlineFunction('kotlin.longArrayF', wrapFunction(function () { - var longArray = _.longArray; - return function (size, init) { - var array = longArray(size, false); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = init(i); - } - return array; - }; - })); - function fillArrayVal(array, initValue) { - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = initValue; - } - return array; - } - function DoubleCompanionObject() { - DoubleCompanionObject_instance = this; - this.MIN_VALUE = Number.MIN_VALUE; - this.MAX_VALUE = Number.MAX_VALUE; - this.POSITIVE_INFINITY = Number.POSITIVE_INFINITY; - this.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY; - this.NaN = Number.NaN; - } - DoubleCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'DoubleCompanionObject', interfaces: []}; - var DoubleCompanionObject_instance = null; - function DoubleCompanionObject_getInstance() { - if (DoubleCompanionObject_instance === null) { - new DoubleCompanionObject(); - } - return DoubleCompanionObject_instance; - } - function FloatCompanionObject() { - FloatCompanionObject_instance = this; - this.MIN_VALUE = Number.MIN_VALUE; - this.MAX_VALUE = Number.MAX_VALUE; - this.POSITIVE_INFINITY = Number.POSITIVE_INFINITY; - this.NEGATIVE_INFINITY = Number.NEGATIVE_INFINITY; - this.NaN = Number.NaN; - } - FloatCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'FloatCompanionObject', interfaces: []}; - var FloatCompanionObject_instance = null; - function FloatCompanionObject_getInstance() { - if (FloatCompanionObject_instance === null) { - new FloatCompanionObject(); - } - return FloatCompanionObject_instance; - } - function IntCompanionObject() { - IntCompanionObject_instance = this; - this.MIN_VALUE = -2147483648; - this.MAX_VALUE = 2147483647; - this.SIZE_BYTES = 4; - this.SIZE_BITS = 32; - } - IntCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'IntCompanionObject', interfaces: []}; - var IntCompanionObject_instance = null; - function IntCompanionObject_getInstance() { - if (IntCompanionObject_instance === null) { - new IntCompanionObject(); - } - return IntCompanionObject_instance; - } - function LongCompanionObject() { - LongCompanionObject_instance = this; - this.MIN_VALUE = Kotlin.Long.MIN_VALUE; - this.MAX_VALUE = Kotlin.Long.MAX_VALUE; - this.SIZE_BYTES = 8; - this.SIZE_BITS = 64; - } - LongCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'LongCompanionObject', interfaces: []}; - var LongCompanionObject_instance = null; - function LongCompanionObject_getInstance() { - if (LongCompanionObject_instance === null) { - new LongCompanionObject(); - } - return LongCompanionObject_instance; - } - function ShortCompanionObject() { - ShortCompanionObject_instance = this; - this.MIN_VALUE = -32768 | 0; - this.MAX_VALUE = 32767; - this.SIZE_BYTES = 2; - this.SIZE_BITS = 16; - } - ShortCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'ShortCompanionObject', interfaces: []}; - var ShortCompanionObject_instance = null; - function ShortCompanionObject_getInstance() { - if (ShortCompanionObject_instance === null) { - new ShortCompanionObject(); - } - return ShortCompanionObject_instance; - } - function ByteCompanionObject() { - ByteCompanionObject_instance = this; - this.MIN_VALUE = -128 | 0; - this.MAX_VALUE = 127; - this.SIZE_BYTES = 1; - this.SIZE_BITS = 8; - } - ByteCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'ByteCompanionObject', interfaces: []}; - var ByteCompanionObject_instance = null; - function ByteCompanionObject_getInstance() { - if (ByteCompanionObject_instance === null) { - new ByteCompanionObject(); - } - return ByteCompanionObject_instance; - } - function CharCompanionObject() { - CharCompanionObject_instance = this; - this.MIN_VALUE = 0; - this.MAX_VALUE = 65535; - this.MIN_HIGH_SURROGATE = 55296; - this.MAX_HIGH_SURROGATE = 56319; - this.MIN_LOW_SURROGATE = 56320; - this.MAX_LOW_SURROGATE = 57343; - this.MIN_SURROGATE = this.MIN_HIGH_SURROGATE; - this.MAX_SURROGATE = this.MAX_LOW_SURROGATE; - this.SIZE_BYTES = 2; - this.SIZE_BITS = 16; - } - CharCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'CharCompanionObject', interfaces: []}; - var CharCompanionObject_instance = null; - function CharCompanionObject_getInstance() { - if (CharCompanionObject_instance === null) { - new CharCompanionObject(); - } - return CharCompanionObject_instance; - } - function StringCompanionObject() { - StringCompanionObject_instance = this; - } - StringCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'StringCompanionObject', interfaces: []}; - var StringCompanionObject_instance = null; - function StringCompanionObject_getInstance() { - if (StringCompanionObject_instance === null) { - new StringCompanionObject(); - } - return StringCompanionObject_instance; - } - function BooleanCompanionObject() { - BooleanCompanionObject_instance = this; - } - BooleanCompanionObject.$metadata$ = {kind: Kind_OBJECT, simpleName: 'BooleanCompanionObject', interfaces: []}; - var BooleanCompanionObject_instance = null; - function BooleanCompanionObject_getInstance() { - if (BooleanCompanionObject_instance === null) { - new BooleanCompanionObject(); - } - return BooleanCompanionObject_instance; - } - var package$kotlin = _.kotlin || (_.kotlin = {}); - package$kotlin.Comparable = Comparable; - Object.defineProperty(Enum, 'Companion', {get: Enum$Companion_getInstance}); - package$kotlin.Enum = Enum; - _.newArray = newArray; - _.fillArray = fillArrayFun; - _.newArrayF = arrayWithFun; - _.booleanArray = booleanArray; - _.booleanArrayF = booleanArrayWithFun; - _.charArray = charArray; - _.charArrayF = charArrayWithFun; - _.untypedCharArrayF = untypedCharArrayWithFun; - _.longArray = longArray; - _.longArrayF = longArrayWithFun; - var package$js = package$kotlin.js || (package$kotlin.js = {}); - var package$internal = package$js.internal || (package$js.internal = {}); - Object.defineProperty(package$internal, 'DoubleCompanionObject', {get: DoubleCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'FloatCompanionObject', {get: FloatCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'IntCompanionObject', {get: IntCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'LongCompanionObject', {get: LongCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'ShortCompanionObject', {get: ShortCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'ByteCompanionObject', {get: ByteCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'CharCompanionObject', {get: CharCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'StringCompanionObject', {get: StringCompanionObject_getInstance}); - Object.defineProperty(package$internal, 'BooleanCompanionObject', {get: BooleanCompanionObject_getInstance}); - Kotlin.defineModule('kotlin', _); - - }()); - (function() { - 'use strict'; - var defineInlineFunction = Kotlin.defineInlineFunction; - var wrapFunction = Kotlin.wrapFunction; - var equals = Kotlin.equals; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - var sort = Kotlin.primitiveArraySort; - var kotlin_js_internal_DoubleCompanionObject = Kotlin.kotlin.js.internal.DoubleCompanionObject; - var L0 = Kotlin.Long.ZERO; - var Math_0 = Math; - var Kind_CLASS = Kotlin.Kind.CLASS; - var toChar = Kotlin.toChar; - var L_1 = Kotlin.Long.NEG_ONE; - var toByte = Kotlin.toByte; - var L_128 = Kotlin.Long.fromInt(-128); - var L127 = Kotlin.Long.fromInt(127); - var kotlin_js_internal_ByteCompanionObject = Kotlin.kotlin.js.internal.ByteCompanionObject; - var numberToInt = Kotlin.numberToInt; - var L_2147483648 = Kotlin.Long.fromInt(-2147483648); - var L2147483647 = Kotlin.Long.fromInt(2147483647); - var Long$Companion$MIN_VALUE = Kotlin.Long.MIN_VALUE; - var Long$Companion$MAX_VALUE = Kotlin.Long.MAX_VALUE; - var toShort = Kotlin.toShort; - var L_32768 = Kotlin.Long.fromInt(-32768); - var L32767 = Kotlin.Long.fromInt(32767); - var kotlin_js_internal_ShortCompanionObject = Kotlin.kotlin.js.internal.ShortCompanionObject; - var toString = Kotlin.toString; - var contentEquals = Kotlin.arrayEquals; - var contentHashCode = Kotlin.arrayHashCode; - var L255 = Kotlin.Long.fromInt(255); - var L4294967295 = new Kotlin.Long(-1, 0); - var L65535 = Kotlin.Long.fromInt(65535); - var Kind_INTERFACE = Kotlin.Kind.INTERFACE; - var Any = Object; - var Kind_OBJECT = Kotlin.Kind.OBJECT; - var L1 = Kotlin.Long.ONE; - var Enum = Kotlin.kotlin.Enum; - var Comparable = Kotlin.kotlin.Comparable; - var ensureNotNull = Kotlin.ensureNotNull; - var throwCCE = Kotlin.throwCCE; - var arrayToString = Kotlin.arrayToString; - var hashCode = Kotlin.hashCode; - var Throwable = Error; - var toRawBits = Kotlin.doubleToRawBits; - var kotlin_js_internal_FloatCompanionObject = Kotlin.kotlin.js.internal.FloatCompanionObject; - var kotlin_js_internal_CharCompanionObject = Kotlin.kotlin.js.internal.CharCompanionObject; - var contentDeepEquals = Kotlin.arrayDeepEquals; - var L_7390468764508069838 = new Kotlin.Long(-1478467534, -1720727600); - var L8246714829545688274 = new Kotlin.Long(-888910638, 1920087921); - var L3406603774387020532 = new Kotlin.Long(1993859828, 793161749); - var DeprecationLevel = Kotlin.kotlin.DeprecationLevel; - var L_9223372036854775807 = new Kotlin.Long(1, -2147483648); - var L2047 = Kotlin.Long.fromInt(2047); - CharProgressionIterator.prototype = Object.create(CharIterator.prototype); - CharProgressionIterator.prototype.constructor = CharProgressionIterator; - IntProgressionIterator.prototype = Object.create(IntIterator.prototype); - IntProgressionIterator.prototype.constructor = IntProgressionIterator; - LongProgressionIterator.prototype = Object.create(LongIterator.prototype); - LongProgressionIterator.prototype.constructor = LongProgressionIterator; - CharRange.prototype = Object.create(CharProgression.prototype); - CharRange.prototype.constructor = CharRange; - IntRange.prototype = Object.create(IntProgression.prototype); - IntRange.prototype.constructor = IntRange; - LongRange.prototype = Object.create(LongProgression.prototype); - LongRange.prototype.constructor = LongRange; - AnnotationTarget.prototype = Object.create(Enum.prototype); - AnnotationTarget.prototype.constructor = AnnotationTarget; - AnnotationRetention.prototype = Object.create(Enum.prototype); - AnnotationRetention.prototype.constructor = AnnotationRetention; - KParameter$Kind.prototype = Object.create(Enum.prototype); - KParameter$Kind.prototype.constructor = KParameter$Kind; - KVariance.prototype = Object.create(Enum.prototype); - KVariance.prototype.constructor = KVariance; - KVisibility.prototype = Object.create(Enum.prototype); - KVisibility.prototype.constructor = KVisibility; - booleanArrayIterator$ObjectLiteral.prototype = Object.create(BooleanIterator.prototype); - booleanArrayIterator$ObjectLiteral.prototype.constructor = booleanArrayIterator$ObjectLiteral; - byteArrayIterator$ObjectLiteral.prototype = Object.create(ByteIterator.prototype); - byteArrayIterator$ObjectLiteral.prototype.constructor = byteArrayIterator$ObjectLiteral; - shortArrayIterator$ObjectLiteral.prototype = Object.create(ShortIterator.prototype); - shortArrayIterator$ObjectLiteral.prototype.constructor = shortArrayIterator$ObjectLiteral; - charArrayIterator$ObjectLiteral.prototype = Object.create(CharIterator.prototype); - charArrayIterator$ObjectLiteral.prototype.constructor = charArrayIterator$ObjectLiteral; - intArrayIterator$ObjectLiteral.prototype = Object.create(IntIterator.prototype); - intArrayIterator$ObjectLiteral.prototype.constructor = intArrayIterator$ObjectLiteral; - floatArrayIterator$ObjectLiteral.prototype = Object.create(FloatIterator.prototype); - floatArrayIterator$ObjectLiteral.prototype.constructor = floatArrayIterator$ObjectLiteral; - doubleArrayIterator$ObjectLiteral.prototype = Object.create(DoubleIterator.prototype); - doubleArrayIterator$ObjectLiteral.prototype.constructor = doubleArrayIterator$ObjectLiteral; - longArrayIterator$ObjectLiteral.prototype = Object.create(LongIterator.prototype); - longArrayIterator$ObjectLiteral.prototype.constructor = longArrayIterator$ObjectLiteral; - AbstractList.prototype = Object.create(AbstractCollection.prototype); - AbstractList.prototype.constructor = AbstractList; - asList$ObjectLiteral.prototype = Object.create(AbstractList.prototype); - asList$ObjectLiteral.prototype.constructor = asList$ObjectLiteral; - asList$ObjectLiteral_0.prototype = Object.create(AbstractList.prototype); - asList$ObjectLiteral_0.prototype.constructor = asList$ObjectLiteral_0; - asList$ObjectLiteral_1.prototype = Object.create(AbstractList.prototype); - asList$ObjectLiteral_1.prototype.constructor = asList$ObjectLiteral_1; - asList$ObjectLiteral_2.prototype = Object.create(AbstractList.prototype); - asList$ObjectLiteral_2.prototype.constructor = asList$ObjectLiteral_2; - asList$ObjectLiteral_3.prototype = Object.create(AbstractList.prototype); - asList$ObjectLiteral_3.prototype.constructor = asList$ObjectLiteral_3; - AbstractMutableCollection.prototype = Object.create(AbstractCollection.prototype); - AbstractMutableCollection.prototype.constructor = AbstractMutableCollection; - AbstractMutableList$ListIteratorImpl.prototype = Object.create(AbstractMutableList$IteratorImpl.prototype); - AbstractMutableList$ListIteratorImpl.prototype.constructor = AbstractMutableList$ListIteratorImpl; - AbstractMutableList.prototype = Object.create(AbstractMutableCollection.prototype); - AbstractMutableList.prototype.constructor = AbstractMutableList; - AbstractMutableList$SubList.prototype = Object.create(AbstractMutableList.prototype); - AbstractMutableList$SubList.prototype.constructor = AbstractMutableList$SubList; - AbstractMutableSet.prototype = Object.create(AbstractMutableCollection.prototype); - AbstractMutableSet.prototype.constructor = AbstractMutableSet; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype = Object.create(AbstractMutableSet.prototype); - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype.constructor = AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype = Object.create(AbstractMutableCollection.prototype); - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.constructor = AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral; - AbstractMutableMap.prototype = Object.create(AbstractMap.prototype); - AbstractMutableMap.prototype.constructor = AbstractMutableMap; - ArrayList.prototype = Object.create(AbstractMutableList.prototype); - ArrayList.prototype.constructor = ArrayList; - HashMap$EntrySet.prototype = Object.create(AbstractMutableSet.prototype); - HashMap$EntrySet.prototype.constructor = HashMap$EntrySet; - HashMap.prototype = Object.create(AbstractMutableMap.prototype); - HashMap.prototype.constructor = HashMap; - HashSet.prototype = Object.create(AbstractMutableSet.prototype); - HashSet.prototype.constructor = HashSet; - LinkedHashMap$ChainEntry.prototype = Object.create(AbstractMutableMap$SimpleEntry.prototype); - LinkedHashMap$ChainEntry.prototype.constructor = LinkedHashMap$ChainEntry; - LinkedHashMap$EntrySet.prototype = Object.create(AbstractMutableSet.prototype); - LinkedHashMap$EntrySet.prototype.constructor = LinkedHashMap$EntrySet; - LinkedHashMap.prototype = Object.create(HashMap.prototype); - LinkedHashMap.prototype.constructor = LinkedHashMap; - LinkedHashSet.prototype = Object.create(HashSet.prototype); - LinkedHashSet.prototype.constructor = LinkedHashSet; - NodeJsOutput.prototype = Object.create(BaseOutput.prototype); - NodeJsOutput.prototype.constructor = NodeJsOutput; - OutputToConsoleLog.prototype = Object.create(BaseOutput.prototype); - OutputToConsoleLog.prototype.constructor = OutputToConsoleLog; - BufferedOutput.prototype = Object.create(BaseOutput.prototype); - BufferedOutput.prototype.constructor = BufferedOutput; - BufferedOutputToConsoleLog.prototype = Object.create(BufferedOutput.prototype); - BufferedOutputToConsoleLog.prototype.constructor = BufferedOutputToConsoleLog; - asList$ObjectLiteral_4.prototype = Object.create(AbstractList.prototype); - asList$ObjectLiteral_4.prototype.constructor = asList$ObjectLiteral_4; - Error_0.prototype = Object.create(Throwable.prototype); - Error_0.prototype.constructor = Error_0; - Exception.prototype = Object.create(Throwable.prototype); - Exception.prototype.constructor = Exception; - RuntimeException.prototype = Object.create(Exception.prototype); - RuntimeException.prototype.constructor = RuntimeException; - IllegalArgumentException.prototype = Object.create(RuntimeException.prototype); - IllegalArgumentException.prototype.constructor = IllegalArgumentException; - IllegalStateException.prototype = Object.create(RuntimeException.prototype); - IllegalStateException.prototype.constructor = IllegalStateException; - IndexOutOfBoundsException.prototype = Object.create(RuntimeException.prototype); - IndexOutOfBoundsException.prototype.constructor = IndexOutOfBoundsException; - ConcurrentModificationException.prototype = Object.create(RuntimeException.prototype); - ConcurrentModificationException.prototype.constructor = ConcurrentModificationException; - UnsupportedOperationException.prototype = Object.create(RuntimeException.prototype); - UnsupportedOperationException.prototype.constructor = UnsupportedOperationException; - NumberFormatException.prototype = Object.create(IllegalArgumentException.prototype); - NumberFormatException.prototype.constructor = NumberFormatException; - NullPointerException.prototype = Object.create(RuntimeException.prototype); - NullPointerException.prototype.constructor = NullPointerException; - ClassCastException.prototype = Object.create(RuntimeException.prototype); - ClassCastException.prototype.constructor = ClassCastException; - AssertionError.prototype = Object.create(Error_0.prototype); - AssertionError.prototype.constructor = AssertionError; - NoSuchElementException.prototype = Object.create(RuntimeException.prototype); - NoSuchElementException.prototype.constructor = NoSuchElementException; - ArithmeticException.prototype = Object.create(RuntimeException.prototype); - ArithmeticException.prototype.constructor = ArithmeticException; - NoWhenBranchMatchedException.prototype = Object.create(RuntimeException.prototype); - NoWhenBranchMatchedException.prototype.constructor = NoWhenBranchMatchedException; - UninitializedPropertyAccessException.prototype = Object.create(RuntimeException.prototype); - UninitializedPropertyAccessException.prototype.constructor = UninitializedPropertyAccessException; - SimpleKClassImpl.prototype = Object.create(KClassImpl.prototype); - SimpleKClassImpl.prototype.constructor = SimpleKClassImpl; - PrimitiveKClassImpl.prototype = Object.create(KClassImpl.prototype); - PrimitiveKClassImpl.prototype.constructor = PrimitiveKClassImpl; - NothingKClassImpl.prototype = Object.create(KClassImpl.prototype); - NothingKClassImpl.prototype.constructor = NothingKClassImpl; - RegexOption.prototype = Object.create(Enum.prototype); - RegexOption.prototype.constructor = RegexOption; - findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral.prototype = Object.create(AbstractList.prototype); - findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral.prototype.constructor = findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral; - findNext$ObjectLiteral$groups$ObjectLiteral.prototype = Object.create(AbstractCollection.prototype); - findNext$ObjectLiteral$groups$ObjectLiteral.prototype.constructor = findNext$ObjectLiteral$groups$ObjectLiteral; - CharacterCodingException.prototype = Object.create(Exception.prototype); - CharacterCodingException.prototype.constructor = CharacterCodingException; - Experimental$Level.prototype = Object.create(Enum.prototype); - Experimental$Level.prototype.constructor = Experimental$Level; - State.prototype = Object.create(Enum.prototype); - State.prototype.constructor = State; - AbstractList$SubList.prototype = Object.create(AbstractList.prototype); - AbstractList$SubList.prototype.constructor = AbstractList$SubList; - AbstractList$ListIteratorImpl.prototype = Object.create(AbstractList$IteratorImpl.prototype); - AbstractList$ListIteratorImpl.prototype.constructor = AbstractList$ListIteratorImpl; - AbstractSet.prototype = Object.create(AbstractCollection.prototype); - AbstractSet.prototype.constructor = AbstractSet; - AbstractMap$get_AbstractMap$keys$ObjectLiteral.prototype = Object.create(AbstractSet.prototype); - AbstractMap$get_AbstractMap$keys$ObjectLiteral.prototype.constructor = AbstractMap$get_AbstractMap$keys$ObjectLiteral; - AbstractMap$get_AbstractMap$values$ObjectLiteral.prototype = Object.create(AbstractCollection.prototype); - AbstractMap$get_AbstractMap$values$ObjectLiteral.prototype.constructor = AbstractMap$get_AbstractMap$values$ObjectLiteral; - ReversedListReadOnly.prototype = Object.create(AbstractList.prototype); - ReversedListReadOnly.prototype.constructor = ReversedListReadOnly; - ReversedList.prototype = Object.create(AbstractMutableList.prototype); - ReversedList.prototype.constructor = ReversedList; - SequenceBuilderIterator.prototype = Object.create(SequenceScope.prototype); - SequenceBuilderIterator.prototype.constructor = SequenceBuilderIterator; - DistinctIterator.prototype = Object.create(AbstractIterator.prototype); - DistinctIterator.prototype.constructor = DistinctIterator; - MovingSubList.prototype = Object.create(AbstractList.prototype); - MovingSubList.prototype.constructor = MovingSubList; - RingBuffer$iterator$ObjectLiteral.prototype = Object.create(AbstractIterator.prototype); - RingBuffer$iterator$ObjectLiteral.prototype.constructor = RingBuffer$iterator$ObjectLiteral; - RingBuffer.prototype = Object.create(AbstractList.prototype); - RingBuffer.prototype.constructor = RingBuffer; - InvocationKind.prototype = Object.create(Enum.prototype); - InvocationKind.prototype.constructor = InvocationKind; - CoroutineSingletons.prototype = Object.create(Enum.prototype); - CoroutineSingletons.prototype.constructor = CoroutineSingletons; - RequireKotlinVersionKind.prototype = Object.create(Enum.prototype); - RequireKotlinVersionKind.prototype.constructor = RequireKotlinVersionKind; - Random$Default.prototype = Object.create(Random.prototype); - Random$Default.prototype.constructor = Random$Default; - Random$Companion.prototype = Object.create(Random.prototype); - Random$Companion.prototype.constructor = Random$Companion; - XorWowRandom.prototype = Object.create(Random.prototype); - XorWowRandom.prototype.constructor = XorWowRandom; - iterator$ObjectLiteral.prototype = Object.create(CharIterator.prototype); - iterator$ObjectLiteral.prototype.constructor = iterator$ObjectLiteral; - LazyThreadSafetyMode.prototype = Object.create(Enum.prototype); - LazyThreadSafetyMode.prototype.constructor = LazyThreadSafetyMode; - NotImplementedError.prototype = Object.create(Error_0.prototype); - NotImplementedError.prototype.constructor = NotImplementedError; - UByteArray$Iterator.prototype = Object.create(UByteIterator.prototype); - UByteArray$Iterator.prototype.constructor = UByteArray$Iterator; - UIntArray$Iterator.prototype = Object.create(UIntIterator.prototype); - UIntArray$Iterator.prototype.constructor = UIntArray$Iterator; - UIntRange.prototype = Object.create(UIntProgression.prototype); - UIntRange.prototype.constructor = UIntRange; - UIntProgressionIterator.prototype = Object.create(UIntIterator.prototype); - UIntProgressionIterator.prototype.constructor = UIntProgressionIterator; - ULongArray$Iterator.prototype = Object.create(ULongIterator.prototype); - ULongArray$Iterator.prototype.constructor = ULongArray$Iterator; - ULongRange_0.prototype = Object.create(ULongProgression.prototype); - ULongRange_0.prototype.constructor = ULongRange_0; - ULongProgressionIterator.prototype = Object.create(ULongIterator.prototype); - ULongProgressionIterator.prototype.constructor = ULongProgressionIterator; - UShortArray$Iterator.prototype = Object.create(UShortIterator.prototype); - UShortArray$Iterator.prototype.constructor = UShortArray$Iterator; - function Iterable$ObjectLiteral(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Iterable$ObjectLiteral.prototype.iterator = function () { - return this.closure$iterator(); - }; - Iterable$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterable]}; - function Sequence$ObjectLiteral(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - var component1 = defineInlineFunction('kotlin.kotlin.collections.component1_us0mfu$', function ($receiver) { - return $receiver[0]; - }); - var component1_0 = defineInlineFunction('kotlin.kotlin.collections.component1_964n91$', function ($receiver) { - return $receiver[0]; - }); - var component1_1 = defineInlineFunction('kotlin.kotlin.collections.component1_i2lc79$', function ($receiver) { - return $receiver[0]; - }); - var component1_2 = defineInlineFunction('kotlin.kotlin.collections.component1_tmsbgo$', function ($receiver) { - return $receiver[0]; - }); - var component1_3 = defineInlineFunction('kotlin.kotlin.collections.component1_se6h4x$', function ($receiver) { - return $receiver[0]; - }); - var component1_4 = defineInlineFunction('kotlin.kotlin.collections.component1_rjqryz$', function ($receiver) { - return $receiver[0]; - }); - var component1_5 = defineInlineFunction('kotlin.kotlin.collections.component1_bvy38s$', function ($receiver) { - return $receiver[0]; - }); - var component1_6 = defineInlineFunction('kotlin.kotlin.collections.component1_l1lu5t$', function ($receiver) { - return $receiver[0]; - }); - var component1_7 = defineInlineFunction('kotlin.kotlin.collections.component1_355ntz$', function ($receiver) { - return $receiver[0]; - }); - var component2 = defineInlineFunction('kotlin.kotlin.collections.component2_us0mfu$', function ($receiver) { - return $receiver[1]; - }); - var component2_0 = defineInlineFunction('kotlin.kotlin.collections.component2_964n91$', function ($receiver) { - return $receiver[1]; - }); - var component2_1 = defineInlineFunction('kotlin.kotlin.collections.component2_i2lc79$', function ($receiver) { - return $receiver[1]; - }); - var component2_2 = defineInlineFunction('kotlin.kotlin.collections.component2_tmsbgo$', function ($receiver) { - return $receiver[1]; - }); - var component2_3 = defineInlineFunction('kotlin.kotlin.collections.component2_se6h4x$', function ($receiver) { - return $receiver[1]; - }); - var component2_4 = defineInlineFunction('kotlin.kotlin.collections.component2_rjqryz$', function ($receiver) { - return $receiver[1]; - }); - var component2_5 = defineInlineFunction('kotlin.kotlin.collections.component2_bvy38s$', function ($receiver) { - return $receiver[1]; - }); - var component2_6 = defineInlineFunction('kotlin.kotlin.collections.component2_l1lu5t$', function ($receiver) { - return $receiver[1]; - }); - var component2_7 = defineInlineFunction('kotlin.kotlin.collections.component2_355ntz$', function ($receiver) { - return $receiver[1]; - }); - var component3 = defineInlineFunction('kotlin.kotlin.collections.component3_us0mfu$', function ($receiver) { - return $receiver[2]; - }); - var component3_0 = defineInlineFunction('kotlin.kotlin.collections.component3_964n91$', function ($receiver) { - return $receiver[2]; - }); - var component3_1 = defineInlineFunction('kotlin.kotlin.collections.component3_i2lc79$', function ($receiver) { - return $receiver[2]; - }); - var component3_2 = defineInlineFunction('kotlin.kotlin.collections.component3_tmsbgo$', function ($receiver) { - return $receiver[2]; - }); - var component3_3 = defineInlineFunction('kotlin.kotlin.collections.component3_se6h4x$', function ($receiver) { - return $receiver[2]; - }); - var component3_4 = defineInlineFunction('kotlin.kotlin.collections.component3_rjqryz$', function ($receiver) { - return $receiver[2]; - }); - var component3_5 = defineInlineFunction('kotlin.kotlin.collections.component3_bvy38s$', function ($receiver) { - return $receiver[2]; - }); - var component3_6 = defineInlineFunction('kotlin.kotlin.collections.component3_l1lu5t$', function ($receiver) { - return $receiver[2]; - }); - var component3_7 = defineInlineFunction('kotlin.kotlin.collections.component3_355ntz$', function ($receiver) { - return $receiver[2]; - }); - var component4 = defineInlineFunction('kotlin.kotlin.collections.component4_us0mfu$', function ($receiver) { - return $receiver[3]; - }); - var component4_0 = defineInlineFunction('kotlin.kotlin.collections.component4_964n91$', function ($receiver) { - return $receiver[3]; - }); - var component4_1 = defineInlineFunction('kotlin.kotlin.collections.component4_i2lc79$', function ($receiver) { - return $receiver[3]; - }); - var component4_2 = defineInlineFunction('kotlin.kotlin.collections.component4_tmsbgo$', function ($receiver) { - return $receiver[3]; - }); - var component4_3 = defineInlineFunction('kotlin.kotlin.collections.component4_se6h4x$', function ($receiver) { - return $receiver[3]; - }); - var component4_4 = defineInlineFunction('kotlin.kotlin.collections.component4_rjqryz$', function ($receiver) { - return $receiver[3]; - }); - var component4_5 = defineInlineFunction('kotlin.kotlin.collections.component4_bvy38s$', function ($receiver) { - return $receiver[3]; - }); - var component4_6 = defineInlineFunction('kotlin.kotlin.collections.component4_l1lu5t$', function ($receiver) { - return $receiver[3]; - }); - var component4_7 = defineInlineFunction('kotlin.kotlin.collections.component4_355ntz$', function ($receiver) { - return $receiver[3]; - }); - var component5 = defineInlineFunction('kotlin.kotlin.collections.component5_us0mfu$', function ($receiver) { - return $receiver[4]; - }); - var component5_0 = defineInlineFunction('kotlin.kotlin.collections.component5_964n91$', function ($receiver) { - return $receiver[4]; - }); - var component5_1 = defineInlineFunction('kotlin.kotlin.collections.component5_i2lc79$', function ($receiver) { - return $receiver[4]; - }); - var component5_2 = defineInlineFunction('kotlin.kotlin.collections.component5_tmsbgo$', function ($receiver) { - return $receiver[4]; - }); - var component5_3 = defineInlineFunction('kotlin.kotlin.collections.component5_se6h4x$', function ($receiver) { - return $receiver[4]; - }); - var component5_4 = defineInlineFunction('kotlin.kotlin.collections.component5_rjqryz$', function ($receiver) { - return $receiver[4]; - }); - var component5_5 = defineInlineFunction('kotlin.kotlin.collections.component5_bvy38s$', function ($receiver) { - return $receiver[4]; - }); - var component5_6 = defineInlineFunction('kotlin.kotlin.collections.component5_l1lu5t$', function ($receiver) { - return $receiver[4]; - }); - var component5_7 = defineInlineFunction('kotlin.kotlin.collections.component5_355ntz$', function ($receiver) { - return $receiver[4]; - }); - function contains($receiver, element) { - return indexOf($receiver, element) >= 0; - } - function contains_0($receiver, element) { - return indexOf_0($receiver, element) >= 0; - } - function contains_1($receiver, element) { - return indexOf_1($receiver, element) >= 0; - } - function contains_2($receiver, element) { - return indexOf_2($receiver, element) >= 0; - } - function contains_3($receiver, element) { - return indexOf_3($receiver, element) >= 0; - } - function contains_4($receiver, element) { - return indexOf_4($receiver, element) >= 0; - } - function contains_5($receiver, element) { - return indexOf_5($receiver, element) >= 0; - } - function contains_6($receiver, element) { - return indexOf_6($receiver, element) >= 0; - } - function contains_7($receiver, element) { - return indexOf_7($receiver, element) >= 0; - } - var elementAtOrElse = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_qyicq6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_0 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_1pvgfa$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_1 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_shq4vo$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_2 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_xumoj0$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_3 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_uafoqm$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_4 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_ln6iwk$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_5 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_lnau98$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_6 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_v8pqlw$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var elementAtOrElse_7 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_sjvy5y$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : unboxChar(defaultValue(index)); - }; - })); - var elementAtOrNull = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_8ujjk8$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_8ujjk8$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_0 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_mrm5p$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_mrm5p$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_1 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_m2jy6x$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_m2jy6x$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_2 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_c03ot6$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_c03ot6$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_3 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_3aefkx$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_3aefkx$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_4 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_rblqex$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_rblqex$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_5 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_xgrzbe$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_xgrzbe$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_6 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_1qu12l$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_1qu12l$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_7 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_gtcw5h$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_gtcw5h$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var find = defineInlineFunction('kotlin.kotlin.collections.find_sfx99b$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_0 = defineInlineFunction('kotlin.kotlin.collections.find_c3i447$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_1 = defineInlineFunction('kotlin.kotlin.collections.find_247xw3$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_2 = defineInlineFunction('kotlin.kotlin.collections.find_il4kyb$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_3 = defineInlineFunction('kotlin.kotlin.collections.find_i1oc7r$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_4 = defineInlineFunction('kotlin.kotlin.collections.find_u4nq1f$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_5 = defineInlineFunction('kotlin.kotlin.collections.find_3vq27r$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_6 = defineInlineFunction('kotlin.kotlin.collections.find_xffwn9$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_7 = defineInlineFunction('kotlin.kotlin.collections.find_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }; - })); - var findLast = defineInlineFunction('kotlin.kotlin.collections.findLast_sfx99b$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_m7z4lg$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_0 = defineInlineFunction('kotlin.kotlin.collections.findLast_c3i447$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_964n91$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_1 = defineInlineFunction('kotlin.kotlin.collections.findLast_247xw3$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_2 = defineInlineFunction('kotlin.kotlin.collections.findLast_il4kyb$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_3 = defineInlineFunction('kotlin.kotlin.collections.findLast_i1oc7r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_4 = defineInlineFunction('kotlin.kotlin.collections.findLast_u4nq1f$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_rjqryz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_5 = defineInlineFunction('kotlin.kotlin.collections.findLast_3vq27r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_bvy38s$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_6 = defineInlineFunction('kotlin.kotlin.collections.findLast_xffwn9$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_l1lu5t$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_7 = defineInlineFunction('kotlin.kotlin.collections.findLast_3ji0pj$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_355ntz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(toBoxedChar(element))) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - function first($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_0($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_1($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_2($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_3($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_4($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_5($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_6($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - function first_7($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[0]; - } - var first_8 = defineInlineFunction('kotlin.kotlin.collections.first_sfx99b$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_9 = defineInlineFunction('kotlin.kotlin.collections.first_c3i447$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_10 = defineInlineFunction('kotlin.kotlin.collections.first_247xw3$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_11 = defineInlineFunction('kotlin.kotlin.collections.first_il4kyb$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_12 = defineInlineFunction('kotlin.kotlin.collections.first_i1oc7r$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_13 = defineInlineFunction('kotlin.kotlin.collections.first_u4nq1f$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_14 = defineInlineFunction('kotlin.kotlin.collections.first_3vq27r$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_15 = defineInlineFunction('kotlin.kotlin.collections.first_xffwn9$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_16 = defineInlineFunction('kotlin.kotlin.collections.first_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - function firstOrNull($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_0($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_1($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_2($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_3($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_4($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_5($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_6($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - function firstOrNull_7($receiver) { - return $receiver.length === 0 ? null : $receiver[0]; - } - var firstOrNull_8 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_sfx99b$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_9 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_c3i447$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_10 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_247xw3$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_11 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_il4kyb$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_12 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_i1oc7r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_13 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_u4nq1f$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_14 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_3vq27r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_15 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_xffwn9$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_16 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - return element; - } - return null; - }; - })); - var getOrElse = defineInlineFunction('kotlin.kotlin.collections.getOrElse_qyicq6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_0 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_1pvgfa$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_1 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_shq4vo$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_2 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_xumoj0$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_3 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_uafoqm$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_4 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_ln6iwk$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_5 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_lnau98$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_6 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_v8pqlw$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : defaultValue(index); - }; - })); - var getOrElse_7 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_sjvy5y$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : unboxChar(defaultValue(index)); - }; - })); - function getOrNull($receiver, index) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver[index] : null; - } - function getOrNull_0($receiver, index) { - return index >= 0 && index <= get_lastIndex_0($receiver) ? $receiver[index] : null; - } - function getOrNull_1($receiver, index) { - return index >= 0 && index <= get_lastIndex_1($receiver) ? $receiver[index] : null; - } - function getOrNull_2($receiver, index) { - return index >= 0 && index <= get_lastIndex_2($receiver) ? $receiver[index] : null; - } - function getOrNull_3($receiver, index) { - return index >= 0 && index <= get_lastIndex_3($receiver) ? $receiver[index] : null; - } - function getOrNull_4($receiver, index) { - return index >= 0 && index <= get_lastIndex_4($receiver) ? $receiver[index] : null; - } - function getOrNull_5($receiver, index) { - return index >= 0 && index <= get_lastIndex_5($receiver) ? $receiver[index] : null; - } - function getOrNull_6($receiver, index) { - return index >= 0 && index <= get_lastIndex_6($receiver) ? $receiver[index] : null; - } - function getOrNull_7($receiver, index) { - return index >= 0 && index <= get_lastIndex_7($receiver) ? $receiver[index] : null; - } - function indexOf($receiver, element) { - if (element == null) { - for (var index = 0; index !== $receiver.length; ++index) { - if ($receiver[index] == null) { - return index; - } - } - } - else { - for (var index_0 = 0; index_0 !== $receiver.length; ++index_0) { - if (equals(element, $receiver[index_0])) { - return index_0; - } - } - } - return -1; - } - function indexOf_0($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function indexOf_1($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function indexOf_2($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function indexOf_3($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (equals(element, $receiver[index])) { - return index; - } - } - return -1; - } - function indexOf_4($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function indexOf_5($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function indexOf_6($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function indexOf_7($receiver, element) { - for (var index = 0; index !== $receiver.length; ++index) { - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - var indexOfFirst = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_sfx99b$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_0 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_c3i447$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_1 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_247xw3$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_2 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_il4kyb$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_3 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_i1oc7r$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_4 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_u4nq1f$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_5 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_3vq27r$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_6 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_xffwn9$', function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }); - var indexOfFirst_7 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - for (var index = 0; index !== $receiver.length; ++index) { - if (predicate(toBoxedChar($receiver[index]))) { - return index; - } - } - return -1; - }; - })); - var indexOfLast = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_sfx99b$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_m7z4lg$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_0 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_c3i447$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_964n91$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_1 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_247xw3$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_2 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_il4kyb$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_3 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_i1oc7r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_4 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_u4nq1f$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_rjqryz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_5 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_3vq27r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_bvy38s$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_6 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_xffwn9$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_l1lu5t$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate($receiver[index])) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_7 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_3ji0pj$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_355ntz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate(toBoxedChar($receiver[index]))) { - return index; - } - } - return -1; - }; - })); - function last($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex($receiver)]; - } - function last_0($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_0($receiver)]; - } - function last_1($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_1($receiver)]; - } - function last_2($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_2($receiver)]; - } - function last_3($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_3($receiver)]; - } - function last_4($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_4($receiver)]; - } - function last_5($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_5($receiver)]; - } - function last_6($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_6($receiver)]; - } - function last_7($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[get_lastIndex_7($receiver)]; - } - var last_8 = defineInlineFunction('kotlin.kotlin.collections.last_sfx99b$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_m7z4lg$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_9 = defineInlineFunction('kotlin.kotlin.collections.last_c3i447$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_964n91$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_10 = defineInlineFunction('kotlin.kotlin.collections.last_247xw3$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_11 = defineInlineFunction('kotlin.kotlin.collections.last_il4kyb$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_12 = defineInlineFunction('kotlin.kotlin.collections.last_i1oc7r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_13 = defineInlineFunction('kotlin.kotlin.collections.last_u4nq1f$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_rjqryz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_14 = defineInlineFunction('kotlin.kotlin.collections.last_3vq27r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_bvy38s$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_15 = defineInlineFunction('kotlin.kotlin.collections.last_xffwn9$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_l1lu5t$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_16 = defineInlineFunction('kotlin.kotlin.collections.last_3ji0pj$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_355ntz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(toBoxedChar(element))) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - function lastIndexOf($receiver, element) { - var tmp$, tmp$_0; - if (element == null) { - tmp$ = reversed_9(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if ($receiver[index] == null) { - return index; - } - } - } - else { - tmp$_0 = reversed_9(get_indices($receiver)).iterator(); - while (tmp$_0.hasNext()) { - var index_0 = tmp$_0.next(); - if (equals(element, $receiver[index_0])) { - return index_0; - } - } - } - return -1; - } - function lastIndexOf_0($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_0($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastIndexOf_1($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_1($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastIndexOf_2($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_2($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastIndexOf_3($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_3($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (equals(element, $receiver[index])) { - return index; - } - } - return -1; - } - function lastIndexOf_4($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_4($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastIndexOf_5($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_5($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastIndexOf_6($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_6($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastIndexOf_7($receiver, element) { - var tmp$; - tmp$ = reversed_9(get_indices_7($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (element === $receiver[index]) { - return index; - } - } - return -1; - } - function lastOrNull($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_0($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_1($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_2($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_3($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_4($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_5($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_6($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - function lastOrNull_7($receiver) { - return $receiver.length === 0 ? null : $receiver[$receiver.length - 1 | 0]; - } - var lastOrNull_8 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_sfx99b$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_m7z4lg$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_9 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_c3i447$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_964n91$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_10 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_247xw3$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_11 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_il4kyb$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_12 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_i1oc7r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_13 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_u4nq1f$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_rjqryz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_14 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_3vq27r$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_bvy38s$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_15 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_xffwn9$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_l1lu5t$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_16 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_3ji0pj$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_355ntz$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver[index]; - if (predicate(toBoxedChar(element))) - return element; - } - return null; - }; - })); - var random = defineInlineFunction('kotlin.kotlin.collections.random_us0mfu$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_lj338n$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_0 = defineInlineFunction('kotlin.kotlin.collections.random_964n91$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_ciead0$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_1 = defineInlineFunction('kotlin.kotlin.collections.random_i2lc79$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_wayomy$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_2 = defineInlineFunction('kotlin.kotlin.collections.random_tmsbgo$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_os0q87$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_3 = defineInlineFunction('kotlin.kotlin.collections.random_se6h4x$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_2uk8lc$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_4 = defineInlineFunction('kotlin.kotlin.collections.random_rjqryz$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_zcvl96$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_5 = defineInlineFunction('kotlin.kotlin.collections.random_bvy38s$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_k31a39$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_6 = defineInlineFunction('kotlin.kotlin.collections.random_l1lu5t$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_mwcbea$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_7 = defineInlineFunction('kotlin.kotlin.collections.random_355ntz$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_8kgqmy$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - function random_8($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_9($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_10($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_11($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_12($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_13($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_14($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_15($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function random_16($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Array is empty.'); - return $receiver[random.nextInt_za3lpa$($receiver.length)]; - } - function single($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_0($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_1($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_2($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_3($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_4($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_5($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_6($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - function single_7($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Array is empty.'); - case 1: - tmp$ = $receiver[0]; - break; - default:throw IllegalArgumentException_init_0('Array has more than one element.'); - } - return tmp$; - } - var single_8 = defineInlineFunction('kotlin.kotlin.collections.single_sfx99b$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return (tmp$_0 = single) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(); - }; - })); - var single_9 = defineInlineFunction('kotlin.kotlin.collections.single_c3i447$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return typeof (tmp$_0 = single) === 'number' ? tmp$_0 : throwCCE(); - }; - })); - var single_10 = defineInlineFunction('kotlin.kotlin.collections.single_247xw3$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return typeof (tmp$_0 = single) === 'number' ? tmp$_0 : throwCCE(); - }; - })); - var single_11 = defineInlineFunction('kotlin.kotlin.collections.single_il4kyb$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return typeof (tmp$_0 = single) === 'number' ? tmp$_0 : throwCCE(); - }; - })); - var single_12 = defineInlineFunction('kotlin.kotlin.collections.single_i1oc7r$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return Kotlin.isType(tmp$_0 = single, Kotlin.Long) ? tmp$_0 : throwCCE(); - }; - })); - var single_13 = defineInlineFunction('kotlin.kotlin.collections.single_u4nq1f$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return typeof (tmp$_0 = single) === 'number' ? tmp$_0 : throwCCE(); - }; - })); - var single_14 = defineInlineFunction('kotlin.kotlin.collections.single_3vq27r$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return typeof (tmp$_0 = single) === 'number' ? tmp$_0 : throwCCE(); - }; - })); - var single_15 = defineInlineFunction('kotlin.kotlin.collections.single_xffwn9$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return typeof (tmp$_0 = single) === 'boolean' ? tmp$_0 : throwCCE(); - }; - })); - var single_16 = defineInlineFunction('kotlin.kotlin.collections.single_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var unboxChar = Kotlin.unboxChar; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return unboxChar(Kotlin.isChar(tmp$_0 = toBoxedChar(single)) ? tmp$_0 : throwCCE()); - }; - })); - function singleOrNull($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_0($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_1($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_2($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_3($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_4($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_5($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_6($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - function singleOrNull_7($receiver) { - return $receiver.length === 1 ? $receiver[0] : null; - } - var singleOrNull_8 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_sfx99b$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_9 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_c3i447$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_10 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_247xw3$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_11 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_il4kyb$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_12 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_i1oc7r$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_13 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_u4nq1f$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_14 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_3vq27r$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_15 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_xffwn9$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_16 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }; - })); - function drop($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_0($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_0($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_1($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_1($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_2($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_2($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_3($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_3($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_4($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_4($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_5($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_5($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_6($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_6($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function drop_7($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_7($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_0($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_0($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_1($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_1($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_2($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_2($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_3($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_3($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_4($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_4($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_5($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_5($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_6($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_6($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_7($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_7($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - var dropLastWhile = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_sfx99b$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - var take = _.kotlin.collections.take_8ujjk8$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_0 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_c3i447$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - var take = _.kotlin.collections.take_mrm5p$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_1 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_247xw3$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - var take = _.kotlin.collections.take_m2jy6x$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_2 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_il4kyb$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - var take = _.kotlin.collections.take_c03ot6$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_3 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_i1oc7r$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - var take = _.kotlin.collections.take_3aefkx$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_4 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_u4nq1f$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - var take = _.kotlin.collections.take_rblqex$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_5 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_3vq27r$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - var take = _.kotlin.collections.take_xgrzbe$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_6 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_xffwn9$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - var take = _.kotlin.collections.take_1qu12l$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_7 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_3ji0pj$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - var take = _.kotlin.collections.take_gtcw5h$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate(toBoxedChar($receiver[index]))) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropWhile = defineInlineFunction('kotlin.kotlin.collections.dropWhile_sfx99b$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_0 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_c3i447$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_1 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_247xw3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_2 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_il4kyb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_3 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_i1oc7r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_4 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_u4nq1f$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_5 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_3vq27r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_6 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_xffwn9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_7 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_3ji0pj$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - if (yielding) - list.add_11rb$(toBoxedChar(item)); - else if (!predicate(toBoxedChar(item))) { - list.add_11rb$(toBoxedChar(item)); - yielding = true; - } - } - return list; - }; - })); - var filter = defineInlineFunction('kotlin.kotlin.collections.filter_sfx99b$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_0 = defineInlineFunction('kotlin.kotlin.collections.filter_c3i447$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_1 = defineInlineFunction('kotlin.kotlin.collections.filter_247xw3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_2 = defineInlineFunction('kotlin.kotlin.collections.filter_il4kyb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_3 = defineInlineFunction('kotlin.kotlin.collections.filter_i1oc7r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_4 = defineInlineFunction('kotlin.kotlin.collections.filter_u4nq1f$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_5 = defineInlineFunction('kotlin.kotlin.collections.filter_3vq27r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_6 = defineInlineFunction('kotlin.kotlin.collections.filter_xffwn9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_7 = defineInlineFunction('kotlin.kotlin.collections.filter_3ji0pj$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - destination.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - var filterIndexed = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_1x1hc5$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_muebcr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_na3tu9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_j54otz$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_8y5rp7$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_ngxnyp$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_4abx9h$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_40mjvt$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_es6ekl$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - var index_0 = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var element = toBoxedChar(item); - if (predicate(index_0, element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterIndexedTo = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_yy1162$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_0 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_9utof$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_1 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_9c7hyn$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_2 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_xxq4i$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_3 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_sp77il$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_4 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_1eenap$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_5 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_a0ikl4$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_6 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_m16605$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_7 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_evsozx$', wrapFunction(function () { - var unboxChar = Kotlin.unboxChar; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - var index_0 = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var element = toBoxedChar(item); - if (predicate(index_0, element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterIsInstance = defineInlineFunction('kotlin.kotlin.collections.filterIsInstance_d9eiz9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function (R_0, isR, $receiver) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (isR(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterIsInstanceTo = defineInlineFunction('kotlin.kotlin.collections.filterIsInstanceTo_fz41hi$', function (R_0, isR, $receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (isR(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNot = defineInlineFunction('kotlin.kotlin.collections.filterNot_sfx99b$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_0 = defineInlineFunction('kotlin.kotlin.collections.filterNot_c3i447$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_1 = defineInlineFunction('kotlin.kotlin.collections.filterNot_247xw3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_2 = defineInlineFunction('kotlin.kotlin.collections.filterNot_il4kyb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_3 = defineInlineFunction('kotlin.kotlin.collections.filterNot_i1oc7r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_4 = defineInlineFunction('kotlin.kotlin.collections.filterNot_u4nq1f$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_5 = defineInlineFunction('kotlin.kotlin.collections.filterNot_3vq27r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_6 = defineInlineFunction('kotlin.kotlin.collections.filterNot_xffwn9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_7 = defineInlineFunction('kotlin.kotlin.collections.filterNot_3ji0pj$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (!predicate(toBoxedChar(element))) - destination.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - function filterNotNull($receiver) { - return filterNotNullTo($receiver, ArrayList_init()); - } - function filterNotNullTo($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (element != null) - destination.add_11rb$(element); - } - return destination; - } - var filterNotTo = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_ywpv22$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_0 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_oqzfqb$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_1 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_pth3ij$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_2 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_fz4mzi$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_3 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_xddlih$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_4 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_b4wiqz$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_5 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_y6u45w$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_6 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_soq3qv$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_7 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_7as3in$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (!predicate(toBoxedChar(element))) - destination.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - var filterTo = defineInlineFunction('kotlin.kotlin.collections.filterTo_ywpv22$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_0 = defineInlineFunction('kotlin.kotlin.collections.filterTo_oqzfqb$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_1 = defineInlineFunction('kotlin.kotlin.collections.filterTo_pth3ij$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_2 = defineInlineFunction('kotlin.kotlin.collections.filterTo_fz4mzi$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_3 = defineInlineFunction('kotlin.kotlin.collections.filterTo_xddlih$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_4 = defineInlineFunction('kotlin.kotlin.collections.filterTo_b4wiqz$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_5 = defineInlineFunction('kotlin.kotlin.collections.filterTo_y6u45w$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_6 = defineInlineFunction('kotlin.kotlin.collections.filterTo_soq3qv$', function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_7 = defineInlineFunction('kotlin.kotlin.collections.filterTo_7as3in$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - destination.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - function slice($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_3($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_0($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_4($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_1($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_5($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_2($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_6($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_3($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_7($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_4($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_8($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_5($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_9($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_6($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList(copyOfRange_10($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_7($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList_7(copyOfRange_11($receiver, indices.start, indices.endInclusive + 1 | 0)); - } - function slice_8($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_9($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_10($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_11($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_12($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_13($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_14($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_15($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver[index]); - } - return list; - } - function slice_16($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$(toBoxedChar($receiver[index])); - } - return list; - } - function sliceArray($receiver, indices) { - var tmp$, tmp$_0; - var result = arrayOfNulls($receiver, indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_0($receiver, indices) { - var tmp$, tmp$_0; - var result = new Int8Array(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_1($receiver, indices) { - var tmp$, tmp$_0; - var result = new Int16Array(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_2($receiver, indices) { - var tmp$, tmp$_0; - var result = new Int32Array(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_3($receiver, indices) { - var tmp$, tmp$_0; - var result = Kotlin.longArray(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_4($receiver, indices) { - var tmp$, tmp$_0; - var result = new Float32Array(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_5($receiver, indices) { - var tmp$, tmp$_0; - var result = new Float64Array(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_6($receiver, indices) { - var tmp$, tmp$_0; - var result = Kotlin.booleanArray(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_7($receiver, indices) { - var tmp$, tmp$_0; - var result = Kotlin.charArray(indices.size); - var targetIndex = 0; - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var sourceIndex = tmp$.next(); - result[tmp$_0 = targetIndex, targetIndex = tmp$_0 + 1 | 0, tmp$_0] = $receiver[sourceIndex]; - } - return result; - } - function sliceArray_8($receiver, indices) { - if (indices.isEmpty()) - return copyOfRange_3($receiver, 0, 0); - return copyOfRange_3($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_9($receiver, indices) { - if (indices.isEmpty()) - return new Int8Array(0); - return copyOfRange_4($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_10($receiver, indices) { - if (indices.isEmpty()) - return new Int16Array(0); - return copyOfRange_5($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_11($receiver, indices) { - if (indices.isEmpty()) - return new Int32Array(0); - return copyOfRange_6($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_12($receiver, indices) { - if (indices.isEmpty()) - return Kotlin.longArray(0); - return copyOfRange_7($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_13($receiver, indices) { - if (indices.isEmpty()) - return new Float32Array(0); - return copyOfRange_8($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_14($receiver, indices) { - if (indices.isEmpty()) - return new Float64Array(0); - return copyOfRange_9($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_15($receiver, indices) { - if (indices.isEmpty()) - return Kotlin.booleanArray(0); - return copyOfRange_10($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function sliceArray_16($receiver, indices) { - if (indices.isEmpty()) - return Kotlin.charArray(0); - return copyOfRange_11($receiver, indices.start, indices.endInclusive + 1 | 0); - } - function take($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_0($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_0($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_1($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_1($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_2($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_2($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_3($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_3($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_4($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_4($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_5($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_5($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_6($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_6($receiver); - if (n === 1) - return listOf($receiver[0]); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_7($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.length) - return toList_7($receiver); - if (n === 1) - return listOf(toBoxedChar($receiver[0])); - var count = 0; - var list = ArrayList_init_0(n); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(toBoxedChar(item)); - } - return list; - } - function takeLast($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_0($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_0($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_1($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_1($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_2($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_2($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_3($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_3($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_4($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_4($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_5($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_5($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_6($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_6($receiver); - if (n === 1) - return listOf($receiver[size - 1 | 0]); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver[index]); - return list; - } - function takeLast_7($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.length; - if (n >= size) - return toList_7($receiver); - if (n === 1) - return listOf(toBoxedChar($receiver[size - 1 | 0])); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$(toBoxedChar($receiver[index])); - return list; - } - var takeLastWhile = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_sfx99b$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - var drop = _.kotlin.collections.drop_8ujjk8$; - var toList = _.kotlin.collections.toList_us0mfu$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_0 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_c3i447$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - var drop = _.kotlin.collections.drop_mrm5p$; - var toList = _.kotlin.collections.toList_964n91$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_1 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_247xw3$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - var drop = _.kotlin.collections.drop_m2jy6x$; - var toList = _.kotlin.collections.toList_i2lc79$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_2 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_il4kyb$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - var drop = _.kotlin.collections.drop_c03ot6$; - var toList = _.kotlin.collections.toList_tmsbgo$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_3 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_i1oc7r$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - var drop = _.kotlin.collections.drop_3aefkx$; - var toList = _.kotlin.collections.toList_se6h4x$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_4 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_u4nq1f$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - var drop = _.kotlin.collections.drop_rblqex$; - var toList = _.kotlin.collections.toList_rjqryz$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_5 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_3vq27r$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - var drop = _.kotlin.collections.drop_xgrzbe$; - var toList = _.kotlin.collections.toList_bvy38s$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_6 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_xffwn9$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - var drop = _.kotlin.collections.drop_1qu12l$; - var toList = _.kotlin.collections.toList_l1lu5t$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate($receiver[index])) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_7 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_3ji0pj$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - var drop = _.kotlin.collections.drop_gtcw5h$; - var toList = _.kotlin.collections.toList_355ntz$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate(toBoxedChar($receiver[index]))) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeWhile = defineInlineFunction('kotlin.kotlin.collections.takeWhile_sfx99b$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_0 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_c3i447$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_1 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_247xw3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_2 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_il4kyb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_3 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_i1oc7r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_4 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_u4nq1f$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_5 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_3vq27r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_6 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_xffwn9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_7 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_3ji0pj$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - if (!predicate(toBoxedChar(item))) - break; - list.add_11rb$(toBoxedChar(item)); - } - return list; - }; - })); - function reverse($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_0($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_0($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_1($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_1($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_2($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_2($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_3($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_3($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_4($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_4($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_5($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_5($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_6($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_6($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reverse_7($receiver) { - var midPoint = ($receiver.length / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_7($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver[index]; - $receiver[index] = $receiver[reverseIndex]; - $receiver[reverseIndex] = tmp; - reverseIndex = reverseIndex - 1 | 0; - } - } - function reversed($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList($receiver); - reverse_12(list); - return list; - } - function reversed_0($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_0($receiver); - reverse_12(list); - return list; - } - function reversed_1($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_1($receiver); - reverse_12(list); - return list; - } - function reversed_2($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_2($receiver); - reverse_12(list); - return list; - } - function reversed_3($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_3($receiver); - reverse_12(list); - return list; - } - function reversed_4($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_4($receiver); - reverse_12(list); - return list; - } - function reversed_5($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_5($receiver); - reverse_12(list); - return list; - } - function reversed_6($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_6($receiver); - reverse_12(list); - return list; - } - function reversed_7($receiver) { - if ($receiver.length === 0) - return emptyList(); - var list = toMutableList_7($receiver); - reverse_12(list); - return list; - } - function reversedArray($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = arrayOfNulls($receiver, $receiver.length); - var lastIndex = get_lastIndex($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_0($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = new Int8Array($receiver.length); - var lastIndex = get_lastIndex_0($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_1($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = new Int16Array($receiver.length); - var lastIndex = get_lastIndex_1($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_2($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = new Int32Array($receiver.length); - var lastIndex = get_lastIndex_2($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_3($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = Kotlin.longArray($receiver.length); - var lastIndex = get_lastIndex_3($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_4($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = new Float32Array($receiver.length); - var lastIndex = get_lastIndex_4($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_5($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = new Float64Array($receiver.length); - var lastIndex = get_lastIndex_5($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_6($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = Kotlin.booleanArray($receiver.length); - var lastIndex = get_lastIndex_6($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - function reversedArray_7($receiver) { - if ($receiver.length === 0) - return $receiver; - var result = Kotlin.charArray($receiver.length); - var lastIndex = get_lastIndex_7($receiver); - for (var i = 0; i <= lastIndex; i++) - result[lastIndex - i | 0] = $receiver[i]; - return result; - } - var sortBy = defineInlineFunction('kotlin.kotlin.collections.sortBy_99hh6x$', wrapFunction(function () { - var sortWith = _.kotlin.collections.sortWith_iwcb0m$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - if ($receiver.length > 1) { - sortWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - } - }; - })); - var sortByDescending = defineInlineFunction('kotlin.kotlin.collections.sortByDescending_99hh6x$', wrapFunction(function () { - var sortWith = _.kotlin.collections.sortWith_iwcb0m$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - if ($receiver.length > 1) { - sortWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - } - }; - })); - function sortDescending($receiver) { - sortWith($receiver, reverseOrder()); - } - function sortDescending_0($receiver) { - if ($receiver.length > 1) { - sort($receiver); - reverse_0($receiver); - } - } - function sortDescending_1($receiver) { - if ($receiver.length > 1) { - sort($receiver); - reverse_1($receiver); - } - } - function sortDescending_2($receiver) { - if ($receiver.length > 1) { - sort($receiver); - reverse_2($receiver); - } - } - function sortDescending_3($receiver) { - if ($receiver.length > 1) { - sort_4($receiver); - reverse_3($receiver); - } - } - function sortDescending_4($receiver) { - if ($receiver.length > 1) { - sort($receiver); - reverse_4($receiver); - } - } - function sortDescending_5($receiver) { - if ($receiver.length > 1) { - sort($receiver); - reverse_5($receiver); - } - } - function sortDescending_6($receiver) { - if ($receiver.length > 1) { - sort($receiver); - reverse_7($receiver); - } - } - function sorted($receiver) { - return asList(sortedArray($receiver)); - } - function sorted_0($receiver) { - var $receiver_0 = toTypedArray_3($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sorted_1($receiver) { - var $receiver_0 = toTypedArray_4($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sorted_2($receiver) { - var $receiver_0 = toTypedArray_5($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sorted_3($receiver) { - var $receiver_0 = toTypedArray_6($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sorted_4($receiver) { - var $receiver_0 = toTypedArray_7($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sorted_5($receiver) { - var $receiver_0 = toTypedArray_8($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sorted_6($receiver) { - var $receiver_0 = toTypedArray_10($receiver); - sort_5($receiver_0); - return asList($receiver_0); - } - function sortedArray($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sort_5($receiver_0); - return $receiver_0; - } - function sortedArray_0($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return $receiver_0; - } - function sortedArray_1($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return $receiver_0; - } - function sortedArray_2($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return $receiver_0; - } - function sortedArray_3($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = copyOf_11($receiver); - sort_4($receiver_0); - return $receiver_0; - } - function sortedArray_4($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return $receiver_0; - } - function sortedArray_5($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return $receiver_0; - } - function sortedArray_6($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = copyOf_15($receiver); - sort($receiver_0); - return $receiver_0; - } - function sortedArrayDescending($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortWith($receiver_0, reverseOrder()); - return $receiver_0; - } - function sortedArrayDescending_0($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortDescending_0($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_1($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortDescending_1($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_2($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortDescending_2($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_3($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = copyOf_11($receiver); - sortDescending_3($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_4($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortDescending_4($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_5($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortDescending_5($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_6($receiver) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = copyOf_15($receiver); - sortDescending_6($receiver_0); - return $receiver_0; - } - function sortedArrayWith($receiver, comparator) { - if ($receiver.length === 0) - return $receiver; - var $receiver_0 = $receiver.slice(); - sortWith($receiver_0, comparator); - return $receiver_0; - } - var sortedBy = defineInlineFunction('kotlin.kotlin.collections.sortedBy_99hh6x$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_iwcb0m$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_0 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_jirwv8$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_movtv6$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_1 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_p0tdr4$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_u08rls$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_2 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_30vlmi$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_rsw9pc$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_3 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_hom4ws$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_wqwa2y$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_4 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_ksd00w$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_1sg7gg$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_5 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_fvpt30$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_jucva8$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_6 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_xt360o$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_7ffj0g$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedBy_7 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_epurks$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_7ncb86$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedByDescending = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_99hh6x$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_iwcb0m$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_0 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_jirwv8$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_movtv6$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_1 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_p0tdr4$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_u08rls$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_2 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_30vlmi$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_rsw9pc$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_3 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_hom4ws$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_wqwa2y$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_4 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_ksd00w$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_1sg7gg$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_5 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_fvpt30$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_jucva8$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_6 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_xt360o$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_7ffj0g$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - var sortedByDescending_7 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_epurks$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_7ncb86$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - function sortedDescending($receiver) { - return sortedWith($receiver, reverseOrder()); - } - function sortedDescending_0($receiver) { - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return reversed_0($receiver_0); - } - function sortedDescending_1($receiver) { - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return reversed_1($receiver_0); - } - function sortedDescending_2($receiver) { - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return reversed_2($receiver_0); - } - function sortedDescending_3($receiver) { - var $receiver_0 = copyOf_11($receiver); - sort_4($receiver_0); - return reversed_3($receiver_0); - } - function sortedDescending_4($receiver) { - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return reversed_4($receiver_0); - } - function sortedDescending_5($receiver) { - var $receiver_0 = $receiver.slice(); - sort($receiver_0); - return reversed_5($receiver_0); - } - function sortedDescending_6($receiver) { - var $receiver_0 = copyOf_15($receiver); - sort($receiver_0); - return reversed_7($receiver_0); - } - function sortedWith($receiver, comparator) { - return asList(sortedArrayWith($receiver, comparator)); - } - function sortedWith_0($receiver, comparator) { - var $receiver_0 = toTypedArray_3($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_1($receiver, comparator) { - var $receiver_0 = toTypedArray_4($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_2($receiver, comparator) { - var $receiver_0 = toTypedArray_5($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_3($receiver, comparator) { - var $receiver_0 = toTypedArray_6($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_4($receiver, comparator) { - var $receiver_0 = toTypedArray_7($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_5($receiver, comparator) { - var $receiver_0 = toTypedArray_8($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_6($receiver, comparator) { - var $receiver_0 = toTypedArray_9($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function sortedWith_7($receiver, comparator) { - var $receiver_0 = toTypedArray_10($receiver); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - function get_indices($receiver) { - return new IntRange(0, get_lastIndex($receiver)); - } - function get_indices_0($receiver) { - return new IntRange(0, get_lastIndex_0($receiver)); - } - function get_indices_1($receiver) { - return new IntRange(0, get_lastIndex_1($receiver)); - } - function get_indices_2($receiver) { - return new IntRange(0, get_lastIndex_2($receiver)); - } - function get_indices_3($receiver) { - return new IntRange(0, get_lastIndex_3($receiver)); - } - function get_indices_4($receiver) { - return new IntRange(0, get_lastIndex_4($receiver)); - } - function get_indices_5($receiver) { - return new IntRange(0, get_lastIndex_5($receiver)); - } - function get_indices_6($receiver) { - return new IntRange(0, get_lastIndex_6($receiver)); - } - function get_indices_7($receiver) { - return new IntRange(0, get_lastIndex_7($receiver)); - } - var isEmpty = defineInlineFunction('kotlin.kotlin.collections.isEmpty_us0mfu$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_0 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_964n91$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_1 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_i2lc79$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_2 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_tmsbgo$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_3 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_se6h4x$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_4 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_rjqryz$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_5 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_bvy38s$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_6 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_l1lu5t$', function ($receiver) { - return $receiver.length === 0; - }); - var isEmpty_7 = defineInlineFunction('kotlin.kotlin.collections.isEmpty_355ntz$', function ($receiver) { - return $receiver.length === 0; - }); - var isNotEmpty = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_us0mfu$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_0 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_964n91$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_1 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_i2lc79$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_2 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_tmsbgo$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_3 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_se6h4x$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_4 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_rjqryz$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_5 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_bvy38s$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_6 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_l1lu5t$', function ($receiver) { - return !($receiver.length === 0); - }); - var isNotEmpty_7 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_355ntz$', function ($receiver) { - return !($receiver.length === 0); - }); - function get_lastIndex($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_0($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_1($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_2($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_3($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_4($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_5($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_6($receiver) { - return $receiver.length - 1 | 0; - } - function get_lastIndex_7($receiver) { - return $receiver.length - 1 | 0; - } - function toBooleanArray$lambda(this$toBooleanArray) { - return function (index) { - return this$toBooleanArray[index]; - }; - } - function toBooleanArray($receiver) { - return Kotlin.booleanArrayF($receiver.length, toBooleanArray$lambda($receiver)); - } - function toByteArray$lambda(this$toByteArray) { - return function (index) { - return this$toByteArray[index]; - }; - } - function toByteArray($receiver) { - return Kotlin.fillArray(new Int8Array($receiver.length), toByteArray$lambda($receiver)); - } - function toCharArray$lambda(this$toCharArray) { - return function (index) { - return this$toCharArray[index]; - }; - } - function toCharArray($receiver) { - return Kotlin.charArrayF($receiver.length, toCharArray$lambda($receiver)); - } - function toDoubleArray$lambda(this$toDoubleArray) { - return function (index) { - return this$toDoubleArray[index]; - }; - } - function toDoubleArray($receiver) { - return Kotlin.fillArray(new Float64Array($receiver.length), toDoubleArray$lambda($receiver)); - } - function toFloatArray$lambda(this$toFloatArray) { - return function (index) { - return this$toFloatArray[index]; - }; - } - function toFloatArray($receiver) { - return Kotlin.fillArray(new Float32Array($receiver.length), toFloatArray$lambda($receiver)); - } - function toIntArray$lambda(this$toIntArray) { - return function (index) { - return this$toIntArray[index]; - }; - } - function toIntArray($receiver) { - return Kotlin.fillArray(new Int32Array($receiver.length), toIntArray$lambda($receiver)); - } - function toLongArray$lambda(this$toLongArray) { - return function (index) { - return this$toLongArray[index]; - }; - } - function toLongArray($receiver) { - return Kotlin.longArrayF($receiver.length, toLongArray$lambda($receiver)); - } - function toShortArray$lambda(this$toShortArray) { - return function (index) { - return this$toShortArray[index]; - }; - } - function toShortArray($receiver) { - return Kotlin.fillArray(new Int16Array($receiver.length), toShortArray$lambda($receiver)); - } - var associate = defineInlineFunction('kotlin.kotlin.collections.associate_51p84z$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_0 = defineInlineFunction('kotlin.kotlin.collections.associate_hllm27$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_1 = defineInlineFunction('kotlin.kotlin.collections.associate_21tl2r$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_2 = defineInlineFunction('kotlin.kotlin.collections.associate_ff74x3$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_3 = defineInlineFunction('kotlin.kotlin.collections.associate_d7c9rj$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_4 = defineInlineFunction('kotlin.kotlin.collections.associate_ddcx1p$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_5 = defineInlineFunction('kotlin.kotlin.collections.associate_neh4lr$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_6 = defineInlineFunction('kotlin.kotlin.collections.associate_su3lit$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associate_7 = defineInlineFunction('kotlin.kotlin.collections.associate_2m77bl$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var pair = transform(toBoxedChar(element)); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associateBy = defineInlineFunction('kotlin.kotlin.collections.associateBy_73x53s$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_0 = defineInlineFunction('kotlin.kotlin.collections.associateBy_i1orpu$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_1 = defineInlineFunction('kotlin.kotlin.collections.associateBy_2yxo7i$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_2 = defineInlineFunction('kotlin.kotlin.collections.associateBy_vhfi20$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_3 = defineInlineFunction('kotlin.kotlin.collections.associateBy_oifiz6$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_4 = defineInlineFunction('kotlin.kotlin.collections.associateBy_5k9h5a$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_5 = defineInlineFunction('kotlin.kotlin.collections.associateBy_hbdsc2$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_6 = defineInlineFunction('kotlin.kotlin.collections.associateBy_8oadti$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_7 = defineInlineFunction('kotlin.kotlin.collections.associateBy_pmkh76$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), toBoxedChar(element)); - } - return destination; - }; - })); - var associateBy_8 = defineInlineFunction('kotlin.kotlin.collections.associateBy_67lihi$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_9 = defineInlineFunction('kotlin.kotlin.collections.associateBy_prlkfp$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_10 = defineInlineFunction('kotlin.kotlin.collections.associateBy_emzy0b$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_11 = defineInlineFunction('kotlin.kotlin.collections.associateBy_5wtufc$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_12 = defineInlineFunction('kotlin.kotlin.collections.associateBy_hq1329$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_13 = defineInlineFunction('kotlin.kotlin.collections.associateBy_jjomwl$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_14 = defineInlineFunction('kotlin.kotlin.collections.associateBy_bvjqb8$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_15 = defineInlineFunction('kotlin.kotlin.collections.associateBy_hxvtq7$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateBy_16 = defineInlineFunction('kotlin.kotlin.collections.associateBy_nlw5ll$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var associateByTo = defineInlineFunction('kotlin.kotlin.collections.associateByTo_jnbl5d$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_0 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_6rsi3p$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_1 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_mvhbwl$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_2 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_jk03w$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_3 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_fajp69$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_4 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_z2kljv$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_5 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_s8dkm4$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_6 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_ro4olb$', function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_7 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_deafr$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), toBoxedChar(element)); - } - return destination; - }; - })); - var associateByTo_8 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_8rzqwv$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_9 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_cne8q6$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_10 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_gcgqha$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_11 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_snsha9$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_12 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_ryii4m$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_13 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_6a7lri$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_14 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_lxofut$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_15 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_u9h8ze$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateByTo_16 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_u7k4io$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var associateTo = defineInlineFunction('kotlin.kotlin.collections.associateTo_t6a58$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_0 = defineInlineFunction('kotlin.kotlin.collections.associateTo_30k0gw$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_1 = defineInlineFunction('kotlin.kotlin.collections.associateTo_pdwiok$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_2 = defineInlineFunction('kotlin.kotlin.collections.associateTo_yjydda$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_3 = defineInlineFunction('kotlin.kotlin.collections.associateTo_o9od0g$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_4 = defineInlineFunction('kotlin.kotlin.collections.associateTo_642zho$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_5 = defineInlineFunction('kotlin.kotlin.collections.associateTo_t00y2o$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_6 = defineInlineFunction('kotlin.kotlin.collections.associateTo_l2eg58$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateTo_7 = defineInlineFunction('kotlin.kotlin.collections.associateTo_7k1sps$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var pair = transform(toBoxedChar(element)); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - function toCollection($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_0($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_1($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_2($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_3($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_4($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_5($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_6($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(item); - } - return destination; - } - function toCollection_7($receiver, destination) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - destination.add_11rb$(toBoxedChar(item)); - } - return destination; - } - function toHashSet($receiver) { - return toCollection($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_0($receiver) { - return toCollection_0($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_1($receiver) { - return toCollection_1($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_2($receiver) { - return toCollection_2($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_3($receiver) { - return toCollection_3($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_4($receiver) { - return toCollection_4($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_5($receiver) { - return toCollection_5($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_6($receiver) { - return toCollection_6($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toHashSet_7($receiver) { - return toCollection_7($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toList($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList($receiver); - break; - } - return tmp$; - } - function toList_0($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_0($receiver); - break; - } - return tmp$; - } - function toList_1($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_1($receiver); - break; - } - return tmp$; - } - function toList_2($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_2($receiver); - break; - } - return tmp$; - } - function toList_3($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_3($receiver); - break; - } - return tmp$; - } - function toList_4($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_4($receiver); - break; - } - return tmp$; - } - function toList_5($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_5($receiver); - break; - } - return tmp$; - } - function toList_6($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf($receiver[0]); - break; - default:tmp$ = toMutableList_6($receiver); - break; - } - return tmp$; - } - function toList_7($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf(toBoxedChar($receiver[0])); - break; - default:tmp$ = toMutableList_7($receiver); - break; - } - return tmp$; - } - function toMutableList($receiver) { - return ArrayList_init_1(asCollection($receiver)); - } - function toMutableList_0($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_1($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_2($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_3($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_4($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_5($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_6($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - list.add_11rb$(item); - } - return list; - } - function toMutableList_7($receiver) { - var tmp$; - var list = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - list.add_11rb$(toBoxedChar(item)); - } - return list; - } - function toSet($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_0($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_0($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_1($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_1($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_2($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_2($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_3($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_3($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_4($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_4($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_5($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_5($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_6($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf($receiver[0]); - break; - default:tmp$ = toCollection_6($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - function toSet_7($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf(toBoxedChar($receiver[0])); - break; - default:tmp$ = toCollection_7($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - var flatMap = defineInlineFunction('kotlin.kotlin.collections.flatMap_m96iup$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_0 = defineInlineFunction('kotlin.kotlin.collections.flatMap_7g5j6z$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_1 = defineInlineFunction('kotlin.kotlin.collections.flatMap_2azm6x$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_2 = defineInlineFunction('kotlin.kotlin.collections.flatMap_k7x5xb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_3 = defineInlineFunction('kotlin.kotlin.collections.flatMap_jv6p05$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_4 = defineInlineFunction('kotlin.kotlin.collections.flatMap_a6ay1l$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_5 = defineInlineFunction('kotlin.kotlin.collections.flatMap_kx9v79$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_6 = defineInlineFunction('kotlin.kotlin.collections.flatMap_io4c5r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_7 = defineInlineFunction('kotlin.kotlin.collections.flatMap_m4binf$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var addAll = _.kotlin.collections.addAll_ipc267$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var list = transform(toBoxedChar(element)); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_qpz03$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_0 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_hrglhs$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_1 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_9q2ddu$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_2 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_ae7k4k$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_3 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_6h8o5s$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_4 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_fngh32$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_5 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_53zyz4$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_6 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_9hj6lm$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_7 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_5s36kw$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var addAll = _.kotlin.collections.addAll_ipc267$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var list = transform(toBoxedChar(element)); - addAll(destination, list); - } - return destination; - }; - })); - var groupBy = defineInlineFunction('kotlin.kotlin.collections.groupBy_73x53s$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_0 = defineInlineFunction('kotlin.kotlin.collections.groupBy_i1orpu$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_1 = defineInlineFunction('kotlin.kotlin.collections.groupBy_2yxo7i$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_2 = defineInlineFunction('kotlin.kotlin.collections.groupBy_vhfi20$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_3 = defineInlineFunction('kotlin.kotlin.collections.groupBy_oifiz6$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_4 = defineInlineFunction('kotlin.kotlin.collections.groupBy_5k9h5a$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_5 = defineInlineFunction('kotlin.kotlin.collections.groupBy_hbdsc2$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_6 = defineInlineFunction('kotlin.kotlin.collections.groupBy_8oadti$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_7 = defineInlineFunction('kotlin.kotlin.collections.groupBy_pmkh76$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - var groupBy_8 = defineInlineFunction('kotlin.kotlin.collections.groupBy_67lihi$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_9 = defineInlineFunction('kotlin.kotlin.collections.groupBy_prlkfp$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_10 = defineInlineFunction('kotlin.kotlin.collections.groupBy_emzy0b$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_11 = defineInlineFunction('kotlin.kotlin.collections.groupBy_5wtufc$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_12 = defineInlineFunction('kotlin.kotlin.collections.groupBy_hq1329$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_13 = defineInlineFunction('kotlin.kotlin.collections.groupBy_jjomwl$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_14 = defineInlineFunction('kotlin.kotlin.collections.groupBy_bvjqb8$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_15 = defineInlineFunction('kotlin.kotlin.collections.groupBy_hxvtq7$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_16 = defineInlineFunction('kotlin.kotlin.collections.groupBy_nlw5ll$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var groupByTo = defineInlineFunction('kotlin.kotlin.collections.groupByTo_1qxbxg$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_0 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_6kmz48$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_1 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_bo8r4m$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_2 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_q1iim5$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_3 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_mu2a4k$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_4 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_x0uw5m$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_5 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_xcz1ip$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_6 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_mrd1pq$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_7 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_axxeqe$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - var groupByTo_8 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_ha2xv2$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_9 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_lnembp$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_10 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_n3jh2d$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_11 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_ted19q$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_12 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_bzm9l3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_13 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_4auzph$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_14 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_akngni$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_15 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_au1frb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_16 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_cmmt3n$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var groupingBy = defineInlineFunction('kotlin.kotlin.collections.groupingBy_73x53s$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Grouping = _.kotlin.collections.Grouping; - function groupingBy$ObjectLiteral(this$groupingBy, closure$keySelector) { - this.this$groupingBy = this$groupingBy; - this.closure$keySelector = closure$keySelector; - } - groupingBy$ObjectLiteral.prototype.sourceIterator = function () { - return Kotlin.arrayIterator(this.this$groupingBy); - }; - groupingBy$ObjectLiteral.prototype.keyOf_11rb$ = function (element) { - return this.closure$keySelector(element); - }; - groupingBy$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Grouping]}; - return function ($receiver, keySelector) { - return new groupingBy$ObjectLiteral($receiver, keySelector); - }; - })); - var map = defineInlineFunction('kotlin.kotlin.collections.map_73x53s$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_0 = defineInlineFunction('kotlin.kotlin.collections.map_i1orpu$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_1 = defineInlineFunction('kotlin.kotlin.collections.map_2yxo7i$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_2 = defineInlineFunction('kotlin.kotlin.collections.map_vhfi20$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_3 = defineInlineFunction('kotlin.kotlin.collections.map_oifiz6$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_4 = defineInlineFunction('kotlin.kotlin.collections.map_5k9h5a$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_5 = defineInlineFunction('kotlin.kotlin.collections.map_hbdsc2$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_6 = defineInlineFunction('kotlin.kotlin.collections.map_8oadti$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_7 = defineInlineFunction('kotlin.kotlin.collections.map_pmkh76$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - destination.add_11rb$(transform(toBoxedChar(item))); - } - return destination; - }; - })); - var mapIndexed = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_d05wzo$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_b1mzcm$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_17cht6$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_n9l81o$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_6hpo96$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_xqj56$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_623t7u$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_tk88gi$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_8r1kga$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item))); - } - return destination; - }; - })); - var mapIndexedNotNull = defineInlineFunction('kotlin.kotlin.collections.mapIndexedNotNull_aytly7$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - var tmp$_1; - if ((tmp$_1 = transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedNotNullTo = defineInlineFunction('kotlin.kotlin.collections.mapIndexedNotNullTo_97f7ib$', wrapFunction(function () { - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - var tmp$_1; - if ((tmp$_1 = transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedTo = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_d8bv34$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_0 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_797pmj$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_1 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_5akchx$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_2 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_ey1r33$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_3 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_yqgxdn$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_4 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_3uie0r$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_5 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_3zacuz$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_6 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_r9wz1$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_7 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_d11l8l$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item))); - } - return destination; - }; - })); - var mapNotNull = defineInlineFunction('kotlin.kotlin.collections.mapNotNull_oxs7gb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapNotNullTo = defineInlineFunction('kotlin.kotlin.collections.mapNotNullTo_cni40x$', wrapFunction(function () { - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapTo = defineInlineFunction('kotlin.kotlin.collections.mapTo_4g4n0c$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_0 = defineInlineFunction('kotlin.kotlin.collections.mapTo_lvjep5$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_1 = defineInlineFunction('kotlin.kotlin.collections.mapTo_jtf97t$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_2 = defineInlineFunction('kotlin.kotlin.collections.mapTo_18cmir$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_3 = defineInlineFunction('kotlin.kotlin.collections.mapTo_6e2q1j$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_4 = defineInlineFunction('kotlin.kotlin.collections.mapTo_jpuhm1$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_5 = defineInlineFunction('kotlin.kotlin.collections.mapTo_u2n9ft$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_6 = defineInlineFunction('kotlin.kotlin.collections.mapTo_jrz1ox$', function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_7 = defineInlineFunction('kotlin.kotlin.collections.mapTo_bsh7dj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - destination.add_11rb$(transform(toBoxedChar(item))); - } - return destination; - }; - })); - function withIndex$lambda(this$withIndex) { - return function () { - return Kotlin.arrayIterator(this$withIndex); - }; - } - function withIndex($receiver) { - return new IndexingIterable(withIndex$lambda($receiver)); - } - function withIndex$lambda_0(this$withIndex) { - return function () { - return Kotlin.byteArrayIterator(this$withIndex); - }; - } - function withIndex_0($receiver) { - return new IndexingIterable(withIndex$lambda_0($receiver)); - } - function withIndex$lambda_1(this$withIndex) { - return function () { - return Kotlin.shortArrayIterator(this$withIndex); - }; - } - function withIndex_1($receiver) { - return new IndexingIterable(withIndex$lambda_1($receiver)); - } - function withIndex$lambda_2(this$withIndex) { - return function () { - return Kotlin.intArrayIterator(this$withIndex); - }; - } - function withIndex_2($receiver) { - return new IndexingIterable(withIndex$lambda_2($receiver)); - } - function withIndex$lambda_3(this$withIndex) { - return function () { - return Kotlin.longArrayIterator(this$withIndex); - }; - } - function withIndex_3($receiver) { - return new IndexingIterable(withIndex$lambda_3($receiver)); - } - function withIndex$lambda_4(this$withIndex) { - return function () { - return Kotlin.floatArrayIterator(this$withIndex); - }; - } - function withIndex_4($receiver) { - return new IndexingIterable(withIndex$lambda_4($receiver)); - } - function withIndex$lambda_5(this$withIndex) { - return function () { - return Kotlin.doubleArrayIterator(this$withIndex); - }; - } - function withIndex_5($receiver) { - return new IndexingIterable(withIndex$lambda_5($receiver)); - } - function withIndex$lambda_6(this$withIndex) { - return function () { - return Kotlin.booleanArrayIterator(this$withIndex); - }; - } - function withIndex_6($receiver) { - return new IndexingIterable(withIndex$lambda_6($receiver)); - } - function withIndex$lambda_7(this$withIndex) { - return function () { - return Kotlin.charArrayIterator(this$withIndex); - }; - } - function withIndex_7($receiver) { - return new IndexingIterable(withIndex$lambda_7($receiver)); - } - function distinct($receiver) { - return toList_8(toMutableSet($receiver)); - } - function distinct_0($receiver) { - return toList_8(toMutableSet_0($receiver)); - } - function distinct_1($receiver) { - return toList_8(toMutableSet_1($receiver)); - } - function distinct_2($receiver) { - return toList_8(toMutableSet_2($receiver)); - } - function distinct_3($receiver) { - return toList_8(toMutableSet_3($receiver)); - } - function distinct_4($receiver) { - return toList_8(toMutableSet_4($receiver)); - } - function distinct_5($receiver) { - return toList_8(toMutableSet_5($receiver)); - } - function distinct_6($receiver) { - return toList_8(toMutableSet_6($receiver)); - } - function distinct_7($receiver) { - return toList_8(toMutableSet_7($receiver)); - } - var distinctBy = defineInlineFunction('kotlin.kotlin.collections.distinctBy_73x53s$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_0 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_i1orpu$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_1 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_2yxo7i$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_2 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_vhfi20$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_3 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_oifiz6$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_4 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_5k9h5a$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_5 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_hbdsc2$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_6 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_8oadti$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = $receiver[tmp$]; - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - var distinctBy_7 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_pmkh76$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var e = unboxChar($receiver[tmp$]); - var key = selector(toBoxedChar(e)); - if (set.add_11rb$(key)) - list.add_11rb$(toBoxedChar(e)); - } - return list; - }; - })); - function intersect($receiver, other) { - var set = toMutableSet($receiver); - retainAll_2(set, other); - return set; - } - function intersect_0($receiver, other) { - var set = toMutableSet_0($receiver); - retainAll_2(set, other); - return set; - } - function intersect_1($receiver, other) { - var set = toMutableSet_1($receiver); - retainAll_2(set, other); - return set; - } - function intersect_2($receiver, other) { - var set = toMutableSet_2($receiver); - retainAll_2(set, other); - return set; - } - function intersect_3($receiver, other) { - var set = toMutableSet_3($receiver); - retainAll_2(set, other); - return set; - } - function intersect_4($receiver, other) { - var set = toMutableSet_4($receiver); - retainAll_2(set, other); - return set; - } - function intersect_5($receiver, other) { - var set = toMutableSet_5($receiver); - retainAll_2(set, other); - return set; - } - function intersect_6($receiver, other) { - var set = toMutableSet_6($receiver); - retainAll_2(set, other); - return set; - } - function intersect_7($receiver, other) { - var set = toMutableSet_7($receiver); - retainAll_2(set, other); - return set; - } - function subtract($receiver, other) { - var set = toMutableSet($receiver); - removeAll_2(set, other); - return set; - } - function subtract_0($receiver, other) { - var set = toMutableSet_0($receiver); - removeAll_2(set, other); - return set; - } - function subtract_1($receiver, other) { - var set = toMutableSet_1($receiver); - removeAll_2(set, other); - return set; - } - function subtract_2($receiver, other) { - var set = toMutableSet_2($receiver); - removeAll_2(set, other); - return set; - } - function subtract_3($receiver, other) { - var set = toMutableSet_3($receiver); - removeAll_2(set, other); - return set; - } - function subtract_4($receiver, other) { - var set = toMutableSet_4($receiver); - removeAll_2(set, other); - return set; - } - function subtract_5($receiver, other) { - var set = toMutableSet_5($receiver); - removeAll_2(set, other); - return set; - } - function subtract_6($receiver, other) { - var set = toMutableSet_6($receiver); - removeAll_2(set, other); - return set; - } - function subtract_7($receiver, other) { - var set = toMutableSet_7($receiver); - removeAll_2(set, other); - return set; - } - function toMutableSet($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_0($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_1($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_2($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_3($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_4($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_5($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_6($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - set.add_11rb$(item); - } - return set; - } - function toMutableSet_7($receiver) { - var tmp$; - var set = LinkedHashSet_init_3(mapCapacity($receiver.length)); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - set.add_11rb$(toBoxedChar(item)); - } - return set; - } - function union($receiver, other) { - var set = toMutableSet($receiver); - addAll(set, other); - return set; - } - function union_0($receiver, other) { - var set = toMutableSet_0($receiver); - addAll(set, other); - return set; - } - function union_1($receiver, other) { - var set = toMutableSet_1($receiver); - addAll(set, other); - return set; - } - function union_2($receiver, other) { - var set = toMutableSet_2($receiver); - addAll(set, other); - return set; - } - function union_3($receiver, other) { - var set = toMutableSet_3($receiver); - addAll(set, other); - return set; - } - function union_4($receiver, other) { - var set = toMutableSet_4($receiver); - addAll(set, other); - return set; - } - function union_5($receiver, other) { - var set = toMutableSet_5($receiver); - addAll(set, other); - return set; - } - function union_6($receiver, other) { - var set = toMutableSet_6($receiver); - addAll(set, other); - return set; - } - function union_7($receiver, other) { - var set = toMutableSet_7($receiver); - addAll(set, other); - return set; - } - var all = defineInlineFunction('kotlin.kotlin.collections.all_sfx99b$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_0 = defineInlineFunction('kotlin.kotlin.collections.all_c3i447$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_1 = defineInlineFunction('kotlin.kotlin.collections.all_247xw3$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_2 = defineInlineFunction('kotlin.kotlin.collections.all_il4kyb$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_3 = defineInlineFunction('kotlin.kotlin.collections.all_i1oc7r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_4 = defineInlineFunction('kotlin.kotlin.collections.all_u4nq1f$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_5 = defineInlineFunction('kotlin.kotlin.collections.all_3vq27r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_6 = defineInlineFunction('kotlin.kotlin.collections.all_xffwn9$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (!predicate(element)) - return false; - } - return true; - }); - var all_7 = defineInlineFunction('kotlin.kotlin.collections.all_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (!predicate(toBoxedChar(element))) - return false; - } - return true; - }; - })); - function any($receiver) { - return !($receiver.length === 0); - } - function any_0($receiver) { - return !($receiver.length === 0); - } - function any_1($receiver) { - return !($receiver.length === 0); - } - function any_2($receiver) { - return !($receiver.length === 0); - } - function any_3($receiver) { - return !($receiver.length === 0); - } - function any_4($receiver) { - return !($receiver.length === 0); - } - function any_5($receiver) { - return !($receiver.length === 0); - } - function any_6($receiver) { - return !($receiver.length === 0); - } - function any_7($receiver) { - return !($receiver.length === 0); - } - var any_8 = defineInlineFunction('kotlin.kotlin.collections.any_sfx99b$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_9 = defineInlineFunction('kotlin.kotlin.collections.any_c3i447$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_10 = defineInlineFunction('kotlin.kotlin.collections.any_247xw3$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_11 = defineInlineFunction('kotlin.kotlin.collections.any_il4kyb$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_12 = defineInlineFunction('kotlin.kotlin.collections.any_i1oc7r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_13 = defineInlineFunction('kotlin.kotlin.collections.any_u4nq1f$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_14 = defineInlineFunction('kotlin.kotlin.collections.any_3vq27r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_15 = defineInlineFunction('kotlin.kotlin.collections.any_xffwn9$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return true; - } - return false; - }); - var any_16 = defineInlineFunction('kotlin.kotlin.collections.any_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - return true; - } - return false; - }; - })); - var count = defineInlineFunction('kotlin.kotlin.collections.count_us0mfu$', function ($receiver) { - return $receiver.length; - }); - var count_0 = defineInlineFunction('kotlin.kotlin.collections.count_964n91$', function ($receiver) { - return $receiver.length; - }); - var count_1 = defineInlineFunction('kotlin.kotlin.collections.count_i2lc79$', function ($receiver) { - return $receiver.length; - }); - var count_2 = defineInlineFunction('kotlin.kotlin.collections.count_tmsbgo$', function ($receiver) { - return $receiver.length; - }); - var count_3 = defineInlineFunction('kotlin.kotlin.collections.count_se6h4x$', function ($receiver) { - return $receiver.length; - }); - var count_4 = defineInlineFunction('kotlin.kotlin.collections.count_rjqryz$', function ($receiver) { - return $receiver.length; - }); - var count_5 = defineInlineFunction('kotlin.kotlin.collections.count_bvy38s$', function ($receiver) { - return $receiver.length; - }); - var count_6 = defineInlineFunction('kotlin.kotlin.collections.count_l1lu5t$', function ($receiver) { - return $receiver.length; - }); - var count_7 = defineInlineFunction('kotlin.kotlin.collections.count_355ntz$', function ($receiver) { - return $receiver.length; - }); - var count_8 = defineInlineFunction('kotlin.kotlin.collections.count_sfx99b$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_9 = defineInlineFunction('kotlin.kotlin.collections.count_c3i447$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_10 = defineInlineFunction('kotlin.kotlin.collections.count_247xw3$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_11 = defineInlineFunction('kotlin.kotlin.collections.count_il4kyb$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_12 = defineInlineFunction('kotlin.kotlin.collections.count_i1oc7r$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_13 = defineInlineFunction('kotlin.kotlin.collections.count_u4nq1f$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_14 = defineInlineFunction('kotlin.kotlin.collections.count_3vq27r$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_15 = defineInlineFunction('kotlin.kotlin.collections.count_xffwn9$', function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_16 = defineInlineFunction('kotlin.kotlin.collections.count_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - count = count + 1 | 0; - } - return count; - }; - })); - var fold = defineInlineFunction('kotlin.kotlin.collections.fold_agj4oo$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_0 = defineInlineFunction('kotlin.kotlin.collections.fold_fl151e$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_1 = defineInlineFunction('kotlin.kotlin.collections.fold_9nnzbm$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_2 = defineInlineFunction('kotlin.kotlin.collections.fold_sgag36$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_3 = defineInlineFunction('kotlin.kotlin.collections.fold_sc6mze$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_4 = defineInlineFunction('kotlin.kotlin.collections.fold_fnzdea$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_5 = defineInlineFunction('kotlin.kotlin.collections.fold_mnppu8$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_6 = defineInlineFunction('kotlin.kotlin.collections.fold_43zc0i$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_7 = defineInlineFunction('kotlin.kotlin.collections.fold_8nwlk6$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - accumulator = operation(accumulator, toBoxedChar(element)); - } - return accumulator; - }; - })); - var foldIndexed = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_oj0mn0$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_qzmh7i$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_aijnee$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_28ylm2$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_37s2ie$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_faee2y$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_ufoyfg$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_z82r06$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_sfak8u$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, toBoxedChar(element)); - } - return accumulator; - }; - })); - var foldRight = defineInlineFunction('kotlin.kotlin.collections.foldRight_svmc2u$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_0 = defineInlineFunction('kotlin.kotlin.collections.foldRight_wssfls$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_1 = defineInlineFunction('kotlin.kotlin.collections.foldRight_9ug2j2$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_2 = defineInlineFunction('kotlin.kotlin.collections.foldRight_8vbxp4$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_3 = defineInlineFunction('kotlin.kotlin.collections.foldRight_1fuzy8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_4 = defineInlineFunction('kotlin.kotlin.collections.foldRight_lsgf76$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_5 = defineInlineFunction('kotlin.kotlin.collections.foldRight_v5l2cg$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_6 = defineInlineFunction('kotlin.kotlin.collections.foldRight_ej6ng6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$], accumulator); - } - return accumulator; - }; - })); - var foldRight_7 = defineInlineFunction('kotlin.kotlin.collections.foldRight_i7w5ds$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(toBoxedChar($receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]), accumulator); - } - return accumulator; - }; - })); - var foldRightIndexed = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_et4u4i$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_le73fo$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_8zkega$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_ltx404$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_qk9kf8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_95xca2$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_lxtlx8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_gkwrji$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_ivb0f8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, toBoxedChar($receiver[index]), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var forEach = defineInlineFunction('kotlin.kotlin.collections.forEach_je628z$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_0 = defineInlineFunction('kotlin.kotlin.collections.forEach_l09evt$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_1 = defineInlineFunction('kotlin.kotlin.collections.forEach_q32uhv$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_2 = defineInlineFunction('kotlin.kotlin.collections.forEach_4l7qrh$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_3 = defineInlineFunction('kotlin.kotlin.collections.forEach_j4vz15$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_4 = defineInlineFunction('kotlin.kotlin.collections.forEach_w9sc9v$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_5 = defineInlineFunction('kotlin.kotlin.collections.forEach_txsb7r$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_6 = defineInlineFunction('kotlin.kotlin.collections.forEach_g04iob$', function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - action(element); - } - }); - var forEach_7 = defineInlineFunction('kotlin.kotlin.collections.forEach_kxoc7t$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, action) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - action(toBoxedChar(element)); - } - }; - })); - var forEachIndexed = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_arhcu7$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_1b870r$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_2042pt$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_71hk2v$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_xp2l85$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_fd0uwv$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_fchhez$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_jzv3dz$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_u1r9l7$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = unboxChar($receiver[tmp$]); - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item)); - } - }; - })); - function max($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - if (isNaN_0(max)) - return max; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_0(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_0($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - if (isNaN_1(max)) - return max; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_1(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_1($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (Kotlin.compareTo(max, e) < 0) - max = e; - } - return max; - } - function max_2($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_0($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (max < e) - max = e; - } - return max; - } - function max_3($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_1($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (max < e) - max = e; - } - return max; - } - function max_4($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_2($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (max < e) - max = e; - } - return max; - } - function max_5($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_3($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (max.compareTo_11rb$(e) < 0) - max = e; - } - return max; - } - function max_6($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - if (isNaN_1(max)) - return max; - tmp$ = get_lastIndex_4($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_1(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_7($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - if (isNaN_0(max)) - return max; - tmp$ = get_lastIndex_5($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_0(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_8($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_7($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (max < e) - max = e; - } - return max; - } - var maxBy = defineInlineFunction('kotlin.kotlin.collections.maxBy_99hh6x$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_0 = defineInlineFunction('kotlin.kotlin.collections.maxBy_jirwv8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_1 = defineInlineFunction('kotlin.kotlin.collections.maxBy_p0tdr4$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_2 = defineInlineFunction('kotlin.kotlin.collections.maxBy_30vlmi$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_3 = defineInlineFunction('kotlin.kotlin.collections.maxBy_hom4ws$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_4 = defineInlineFunction('kotlin.kotlin.collections.maxBy_ksd00w$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_5 = defineInlineFunction('kotlin.kotlin.collections.maxBy_fvpt30$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_6 = defineInlineFunction('kotlin.kotlin.collections.maxBy_xt360o$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_7 = defineInlineFunction('kotlin.kotlin.collections.maxBy_epurks$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(toBoxedChar(maxElem)); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(toBoxedChar(e)); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - function maxWith($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_0($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_0($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_1($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_1($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_2($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_2($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_3($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_3($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_4($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_4($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_5($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_5($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_6($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_6($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_7($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver[0]; - tmp$ = get_lastIndex_7($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(toBoxedChar(max), toBoxedChar(e)) < 0) - max = e; - } - return max; - } - function min($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - if (isNaN_0(min)) - return min; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_0(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_0($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - if (isNaN_1(min)) - return min; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_1(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_1($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (Kotlin.compareTo(min, e) > 0) - min = e; - } - return min; - } - function min_2($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_0($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (min > e) - min = e; - } - return min; - } - function min_3($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_1($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (min > e) - min = e; - } - return min; - } - function min_4($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_2($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (min > e) - min = e; - } - return min; - } - function min_5($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_3($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (min.compareTo_11rb$(e) > 0) - min = e; - } - return min; - } - function min_6($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - if (isNaN_1(min)) - return min; - tmp$ = get_lastIndex_4($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_1(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_7($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - if (isNaN_0(min)) - return min; - tmp$ = get_lastIndex_5($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (isNaN_0(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_8($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_7($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (min > e) - min = e; - } - return min; - } - var minBy = defineInlineFunction('kotlin.kotlin.collections.minBy_99hh6x$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_0 = defineInlineFunction('kotlin.kotlin.collections.minBy_jirwv8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_1 = defineInlineFunction('kotlin.kotlin.collections.minBy_p0tdr4$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_2 = defineInlineFunction('kotlin.kotlin.collections.minBy_30vlmi$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_3 = defineInlineFunction('kotlin.kotlin.collections.minBy_hom4ws$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_4 = defineInlineFunction('kotlin.kotlin.collections.minBy_ksd00w$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_5 = defineInlineFunction('kotlin.kotlin.collections.minBy_fvpt30$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_6 = defineInlineFunction('kotlin.kotlin.collections.minBy_xt360o$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_7 = defineInlineFunction('kotlin.kotlin.collections.minBy_epurks$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver[0]; - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(toBoxedChar(minElem)); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver[i]; - var v = selector(toBoxedChar(e)); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - function minWith($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_0($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_0($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_1($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_1($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_2($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_2($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_3($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_3($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_4($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_4($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_5($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_5($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_6($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_6($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_7($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver[0]; - tmp$ = get_lastIndex_7($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver[i]; - if (comparator.compare(toBoxedChar(min), toBoxedChar(e)) > 0) - min = e; - } - return min; - } - function none($receiver) { - return $receiver.length === 0; - } - function none_0($receiver) { - return $receiver.length === 0; - } - function none_1($receiver) { - return $receiver.length === 0; - } - function none_2($receiver) { - return $receiver.length === 0; - } - function none_3($receiver) { - return $receiver.length === 0; - } - function none_4($receiver) { - return $receiver.length === 0; - } - function none_5($receiver) { - return $receiver.length === 0; - } - function none_6($receiver) { - return $receiver.length === 0; - } - function none_7($receiver) { - return $receiver.length === 0; - } - var none_8 = defineInlineFunction('kotlin.kotlin.collections.none_sfx99b$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_9 = defineInlineFunction('kotlin.kotlin.collections.none_c3i447$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_10 = defineInlineFunction('kotlin.kotlin.collections.none_247xw3$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_11 = defineInlineFunction('kotlin.kotlin.collections.none_il4kyb$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_12 = defineInlineFunction('kotlin.kotlin.collections.none_i1oc7r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_13 = defineInlineFunction('kotlin.kotlin.collections.none_u4nq1f$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_14 = defineInlineFunction('kotlin.kotlin.collections.none_3vq27r$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_15 = defineInlineFunction('kotlin.kotlin.collections.none_xffwn9$', function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) - return false; - } - return true; - }); - var none_16 = defineInlineFunction('kotlin.kotlin.collections.none_3ji0pj$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) - return false; - } - return true; - }; - })); - var reduce = defineInlineFunction('kotlin.kotlin.collections.reduce_5bz9yp$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_0 = defineInlineFunction('kotlin.kotlin.collections.reduce_ua0gmo$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_1 = defineInlineFunction('kotlin.kotlin.collections.reduce_5x6csy$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_2 = defineInlineFunction('kotlin.kotlin.collections.reduce_vuuzha$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_3 = defineInlineFunction('kotlin.kotlin.collections.reduce_8z4g8g$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_4 = defineInlineFunction('kotlin.kotlin.collections.reduce_m57mj6$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_5 = defineInlineFunction('kotlin.kotlin.collections.reduce_5rthjk$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_6 = defineInlineFunction('kotlin.kotlin.collections.reduce_if3lfm$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduce_7 = defineInlineFunction('kotlin.kotlin.collections.reduce_724a40$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = unboxChar(operation(toBoxedChar(accumulator), toBoxedChar($receiver[index]))); - } - return accumulator; - }; - })); - var reduceIndexed = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_f61gul$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_y1rlg4$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_ctdw5m$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_y7bnwe$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_54m7jg$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_mzocqy$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_i4uovg$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_fqu0be$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver[index]); - } - return accumulator; - }; - })); - var reduceIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_n25zu4$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[0]; - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = unboxChar(operation(index, toBoxedChar(accumulator), toBoxedChar($receiver[index]))); - } - return accumulator; - }; - })); - var reduceRight = defineInlineFunction('kotlin.kotlin.collections.reduceRight_m9c08d$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_0 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_ua0gmo$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_1 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_5x6csy$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_2 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_vuuzha$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_3 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_8z4g8g$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_4 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_m57mj6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_5 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_5rthjk$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_6 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_if3lfm$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0], accumulator); - } - return accumulator; - }; - })); - var reduceRight_7 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_724a40$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = unboxChar(operation(toBoxedChar($receiver[tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0]), toBoxedChar(accumulator))); - } - return accumulator; - }; - })); - var reduceRightIndexed = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_cf9tch$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_m7z4lg$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_0 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_y1rlg4$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_1 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_ctdw5m$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_2 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_y7bnwe$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_3 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_54m7jg$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_4 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_mzocqy$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_rjqryz$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_5 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_i4uovg$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_bvy38s$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_6 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_fqu0be$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_l1lu5t$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = operation(index, $receiver[index], accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_7 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_n25zu4$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_355ntz$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver[tmp$ = index, index = tmp$ - 1 | 0, tmp$]; - while (index >= 0) { - accumulator = unboxChar(operation(index, toBoxedChar($receiver[index]), toBoxedChar(accumulator))); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var sumBy = defineInlineFunction('kotlin.kotlin.collections.sumBy_9qh8u2$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_0 = defineInlineFunction('kotlin.kotlin.collections.sumBy_s616nk$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_1 = defineInlineFunction('kotlin.kotlin.collections.sumBy_sccsus$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_2 = defineInlineFunction('kotlin.kotlin.collections.sumBy_n2f0qi$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_3 = defineInlineFunction('kotlin.kotlin.collections.sumBy_8jxuvk$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_4 = defineInlineFunction('kotlin.kotlin.collections.sumBy_lv6o8c$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_5 = defineInlineFunction('kotlin.kotlin.collections.sumBy_a4xh9s$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_6 = defineInlineFunction('kotlin.kotlin.collections.sumBy_d84lg4$', function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumBy_7 = defineInlineFunction('kotlin.kotlin.collections.sumBy_izzzcg$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, selector) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - sum = sum + selector(toBoxedChar(element)) | 0; - } - return sum; - }; - })); - var sumByDouble = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_vyz3zq$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_0 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_kkr9hw$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_1 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_u2ap1s$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_2 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_suc1jq$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_3 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_rqe08c$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_4 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_8jdnkg$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_5 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_vuwwjw$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_6 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_1f8lq0$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += selector(element); - } - return sum; - }); - var sumByDouble_7 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_ik7e6s$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, selector) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - sum += selector(toBoxedChar(element)); - } - return sum; - }; - })); - function requireNoNulls($receiver) { - var tmp$, tmp$_0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (element == null) { - throw IllegalArgumentException_init_0('null element found in ' + $receiver + '.'); - } - } - return Kotlin.isArray(tmp$_0 = $receiver) ? tmp$_0 : throwCCE_0(); - } - var partition = defineInlineFunction('kotlin.kotlin.collections.partition_sfx99b$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_0 = defineInlineFunction('kotlin.kotlin.collections.partition_c3i447$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_1 = defineInlineFunction('kotlin.kotlin.collections.partition_247xw3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_2 = defineInlineFunction('kotlin.kotlin.collections.partition_il4kyb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_3 = defineInlineFunction('kotlin.kotlin.collections.partition_i1oc7r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_4 = defineInlineFunction('kotlin.kotlin.collections.partition_u4nq1f$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_5 = defineInlineFunction('kotlin.kotlin.collections.partition_3vq27r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_6 = defineInlineFunction('kotlin.kotlin.collections.partition_xffwn9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_7 = defineInlineFunction('kotlin.kotlin.collections.partition_3ji0pj$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if (predicate(toBoxedChar(element))) { - first.add_11rb$(toBoxedChar(element)); - } - else { - second.add_11rb$(toBoxedChar(element)); - } - } - return new Pair_init(first, second); - }; - })); - function zip($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_0($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_1($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_2($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_3($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_4($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_5($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_6($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_7($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to(toBoxedChar($receiver[i]), other[i])); - } - return list; - } - var zip_8 = defineInlineFunction('kotlin.kotlin.collections.zip_t5fk8e$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_9 = defineInlineFunction('kotlin.kotlin.collections.zip_c731w7$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_10 = defineInlineFunction('kotlin.kotlin.collections.zip_ochmv5$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_11 = defineInlineFunction('kotlin.kotlin.collections.zip_fvmov$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_12 = defineInlineFunction('kotlin.kotlin.collections.zip_g0832p$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_13 = defineInlineFunction('kotlin.kotlin.collections.zip_cpiwht$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_14 = defineInlineFunction('kotlin.kotlin.collections.zip_p5twxn$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_15 = defineInlineFunction('kotlin.kotlin.collections.zip_6fiayp$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_16 = defineInlineFunction('kotlin.kotlin.collections.zip_xwrum3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform(toBoxedChar($receiver[i]), other[i])); - } - return list; - }; - })); - function zip_17($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_18($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_19($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_20($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_21($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_22($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_23($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_24($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - } - function zip_25($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to(toBoxedChar($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0]), element)); - } - return list; - } - var zip_26 = defineInlineFunction('kotlin.kotlin.collections.zip_aoaibi$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_27 = defineInlineFunction('kotlin.kotlin.collections.zip_2fxjb5$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_28 = defineInlineFunction('kotlin.kotlin.collections.zip_ey57vj$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_29 = defineInlineFunction('kotlin.kotlin.collections.zip_582drv$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_30 = defineInlineFunction('kotlin.kotlin.collections.zip_5584fz$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_31 = defineInlineFunction('kotlin.kotlin.collections.zip_dszx9d$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_32 = defineInlineFunction('kotlin.kotlin.collections.zip_p8lavz$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_33 = defineInlineFunction('kotlin.kotlin.collections.zip_e6btvt$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0], element)); - } - return list; - }; - })); - var zip_34 = defineInlineFunction('kotlin.kotlin.collections.zip_imz1rz$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform(toBoxedChar($receiver[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0]), element)); - } - return list; - }; - })); - function zip_35($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_36($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_37($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_38($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_39($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_40($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_41($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver[i], other[i])); - } - return list; - } - function zip_42($receiver, other) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to(toBoxedChar($receiver[i]), toBoxedChar(other[i]))); - } - return list; - } - var zip_43 = defineInlineFunction('kotlin.kotlin.collections.zip_fvjg0r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_44 = defineInlineFunction('kotlin.kotlin.collections.zip_u8n9wb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_45 = defineInlineFunction('kotlin.kotlin.collections.zip_2l2rw1$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_46 = defineInlineFunction('kotlin.kotlin.collections.zip_3bxm8r$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_47 = defineInlineFunction('kotlin.kotlin.collections.zip_h04u5h$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_48 = defineInlineFunction('kotlin.kotlin.collections.zip_t5hjvf$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_49 = defineInlineFunction('kotlin.kotlin.collections.zip_l9qpsl$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver[i], other[i])); - } - return list; - }; - })); - var zip_50 = defineInlineFunction('kotlin.kotlin.collections.zip_rvvoh1$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform(toBoxedChar($receiver[i]), toBoxedChar(other[i]))); - } - return list; - }; - })); - function joinTo($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - appendElement_0(buffer, element, transform); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_0($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_1($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_2($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_3($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_4($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_5($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_6($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(element)); - else - buffer.append_gw00v9$(element.toString()); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinTo_7($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = unboxChar($receiver[tmp$]); - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - if (transform != null) - buffer.append_gw00v9$(transform(toBoxedChar(element))); - else - buffer.append_s8itvh$(element); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinToString($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_0($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_0($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_1($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_1($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_2($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_2($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_3($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_3($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_4($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_4($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_5($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_5($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_6($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_6($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function joinToString_7($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_7($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function asIterable$lambda(this$asIterable) { - return function () { - return Kotlin.arrayIterator(this$asIterable); - }; - } - function asIterable($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda($receiver)); - } - function asIterable$lambda_0(this$asIterable) { - return function () { - return Kotlin.byteArrayIterator(this$asIterable); - }; - } - function asIterable_0($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_0($receiver)); - } - function asIterable$lambda_1(this$asIterable) { - return function () { - return Kotlin.shortArrayIterator(this$asIterable); - }; - } - function asIterable_1($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_1($receiver)); - } - function asIterable$lambda_2(this$asIterable) { - return function () { - return Kotlin.intArrayIterator(this$asIterable); - }; - } - function asIterable_2($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_2($receiver)); - } - function asIterable$lambda_3(this$asIterable) { - return function () { - return Kotlin.longArrayIterator(this$asIterable); - }; - } - function asIterable_3($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_3($receiver)); - } - function asIterable$lambda_4(this$asIterable) { - return function () { - return Kotlin.floatArrayIterator(this$asIterable); - }; - } - function asIterable_4($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_4($receiver)); - } - function asIterable$lambda_5(this$asIterable) { - return function () { - return Kotlin.doubleArrayIterator(this$asIterable); - }; - } - function asIterable_5($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_5($receiver)); - } - function asIterable$lambda_6(this$asIterable) { - return function () { - return Kotlin.booleanArrayIterator(this$asIterable); - }; - } - function asIterable_6($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_6($receiver)); - } - function asIterable$lambda_7(this$asIterable) { - return function () { - return Kotlin.charArrayIterator(this$asIterable); - }; - } - function asIterable_7($receiver) { - if ($receiver.length === 0) - return emptyList(); - return new Iterable$ObjectLiteral(asIterable$lambda_7($receiver)); - } - function asSequence$lambda(this$asSequence) { - return function () { - return Kotlin.arrayIterator(this$asSequence); - }; - } - function asSequence($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda($receiver)); - } - function asSequence$lambda_0(this$asSequence) { - return function () { - return Kotlin.byteArrayIterator(this$asSequence); - }; - } - function asSequence_0($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_0($receiver)); - } - function asSequence$lambda_1(this$asSequence) { - return function () { - return Kotlin.shortArrayIterator(this$asSequence); - }; - } - function asSequence_1($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_1($receiver)); - } - function asSequence$lambda_2(this$asSequence) { - return function () { - return Kotlin.intArrayIterator(this$asSequence); - }; - } - function asSequence_2($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_2($receiver)); - } - function asSequence$lambda_3(this$asSequence) { - return function () { - return Kotlin.longArrayIterator(this$asSequence); - }; - } - function asSequence_3($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_3($receiver)); - } - function asSequence$lambda_4(this$asSequence) { - return function () { - return Kotlin.floatArrayIterator(this$asSequence); - }; - } - function asSequence_4($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_4($receiver)); - } - function asSequence$lambda_5(this$asSequence) { - return function () { - return Kotlin.doubleArrayIterator(this$asSequence); - }; - } - function asSequence_5($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_5($receiver)); - } - function asSequence$lambda_6(this$asSequence) { - return function () { - return Kotlin.booleanArrayIterator(this$asSequence); - }; - } - function asSequence_6($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_6($receiver)); - } - function asSequence$lambda_7(this$asSequence) { - return function () { - return Kotlin.charArrayIterator(this$asSequence); - }; - } - function asSequence_7($receiver) { - if ($receiver.length === 0) - return emptySequence(); - return new Sequence$ObjectLiteral(asSequence$lambda_7($receiver)); - } - function average($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_0($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_1($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_2($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_3($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_4($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_5($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_6($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_7($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_8($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_9($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_10($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - count = count + 1 | 0; - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function sum($receiver) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + element; - } - return sum; - } - function sum_0($receiver) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + element; - } - return sum; - } - function sum_1($receiver) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + element | 0; - } - return sum; - } - function sum_2($receiver) { - var tmp$; - var sum = L0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum.add(element); - } - return sum; - } - function sum_3($receiver) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - } - return sum; - } - function sum_4($receiver) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - } - return sum; - } - function sum_5($receiver) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + element; - } - return sum; - } - function sum_6($receiver) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + element; - } - return sum; - } - function sum_7($receiver) { - var tmp$; - var sum = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum + element | 0; - } - return sum; - } - function sum_8($receiver) { - var tmp$; - var sum = L0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = sum.add(element); - } - return sum; - } - function sum_9($receiver) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - } - return sum; - } - function sum_10($receiver) { - var tmp$; - var sum = 0.0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum += element; - } - return sum; - } - function Sequence$ObjectLiteral_0(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral_0.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral_0.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - var component1_8 = defineInlineFunction('kotlin.kotlin.collections.component1_2p1efm$', function ($receiver) { - return $receiver.get_za3lpa$(0); - }); - var component2_8 = defineInlineFunction('kotlin.kotlin.collections.component2_2p1efm$', function ($receiver) { - return $receiver.get_za3lpa$(1); - }); - var component3_8 = defineInlineFunction('kotlin.kotlin.collections.component3_2p1efm$', function ($receiver) { - return $receiver.get_za3lpa$(2); - }); - var component4_8 = defineInlineFunction('kotlin.kotlin.collections.component4_2p1efm$', function ($receiver) { - return $receiver.get_za3lpa$(3); - }); - var component5_8 = defineInlineFunction('kotlin.kotlin.collections.component5_2p1efm$', function ($receiver) { - return $receiver.get_za3lpa$(4); - }); - function contains_8($receiver, element) { - if (Kotlin.isType($receiver, Collection)) - return $receiver.contains_11rb$(element); - return indexOf_8($receiver, element) >= 0; - } - function elementAt$lambda(closure$index) { - return function (it) { - throw new IndexOutOfBoundsException("Collection doesn't contain element at index " + closure$index + '.'); - }; - } - function elementAt($receiver, index) { - if (Kotlin.isType($receiver, List)) - return $receiver.get_za3lpa$(index); - return elementAtOrElse_8($receiver, index, elementAt$lambda(index)); - } - var elementAt_0 = defineInlineFunction('kotlin.kotlin.collections.elementAt_yzln2o$', function ($receiver, index) { - return $receiver.get_za3lpa$(index); - }); - function elementAtOrElse_8($receiver, index, defaultValue) { - var tmp$; - if (Kotlin.isType($receiver, List)) { - return index >= 0 && index <= get_lastIndex_12($receiver) ? $receiver.get_za3lpa$(index) : defaultValue(index); - } - if (index < 0) - return defaultValue(index); - var iterator = $receiver.iterator(); - var count = 0; - while (iterator.hasNext()) { - var element = iterator.next(); - if (index === (tmp$ = count, count = tmp$ + 1 | 0, tmp$)) - return element; - } - return defaultValue(index); - } - var elementAtOrElse_9 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_q7vxk6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_55thoc$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - function elementAtOrNull_8($receiver, index) { - var tmp$; - if (Kotlin.isType($receiver, List)) - return getOrNull_8($receiver, index); - if (index < 0) - return null; - var iterator = $receiver.iterator(); - var count = 0; - while (iterator.hasNext()) { - var element = iterator.next(); - if (index === (tmp$ = count, count = tmp$ + 1 | 0, tmp$)) - return element; - } - return null; - } - var elementAtOrNull_9 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_yzln2o$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_yzln2o$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var find_8 = defineInlineFunction('kotlin.kotlin.collections.find_6jwkkr$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var findLast_8 = defineInlineFunction('kotlin.kotlin.collections.findLast_6jwkkr$', function ($receiver, predicate) { - var tmp$; - var last = null; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - last = element; - } - } - return last; - }); - var findLast_9 = defineInlineFunction('kotlin.kotlin.collections.findLast_dmm9ex$', function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - var element = iterator.previous(); - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }); - function first_17($receiver) { - if (Kotlin.isType($receiver, List)) - return first_18($receiver); - else { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw new NoSuchElementException('Collection is empty.'); - return iterator.next(); - } - } - function first_18($receiver) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('List is empty.'); - return $receiver.get_za3lpa$(0); - } - var first_19 = defineInlineFunction('kotlin.kotlin.collections.first_6jwkkr$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Collection contains no element matching the predicate.'); - }; - })); - function firstOrNull_17($receiver) { - if (Kotlin.isType($receiver, List)) - if ($receiver.isEmpty()) - return null; - else - return $receiver.get_za3lpa$(0); - else { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - return iterator.next(); - } - } - function firstOrNull_18($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$(0); - } - var firstOrNull_19 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_6jwkkr$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - return null; - }); - var getOrElse_8 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_q7vxk6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_55thoc$; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - function getOrNull_8($receiver, index) { - return index >= 0 && index <= get_lastIndex_12($receiver) ? $receiver.get_za3lpa$(index) : null; - } - function indexOf_8($receiver, element) { - var tmp$; - if (Kotlin.isType($receiver, List)) - return $receiver.indexOf_11rb$(element); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (equals(element, item)) - return index; - index = index + 1 | 0; - } - return -1; - } - function indexOf_9($receiver, element) { - return $receiver.indexOf_11rb$(element); - } - var indexOfFirst_8 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_6jwkkr$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, predicate) { - var tmp$; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (predicate(item)) - return index; - index = index + 1 | 0; - } - return -1; - }; - })); - var indexOfFirst_9 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_dmm9ex$', function ($receiver, predicate) { - var tmp$; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate(item)) - return index; - index = index + 1 | 0; - } - return -1; - }); - var indexOfLast_8 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_6jwkkr$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, predicate) { - var tmp$; - var lastIndex = -1; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (predicate(item)) - lastIndex = index; - index = index + 1 | 0; - } - return lastIndex; - }; - })); - var indexOfLast_9 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_dmm9ex$', function ($receiver, predicate) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - if (predicate(iterator.previous())) { - return iterator.nextIndex(); - } - } - return -1; - }); - function last_17($receiver) { - if (Kotlin.isType($receiver, List)) - return last_18($receiver); - else { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw new NoSuchElementException('Collection is empty.'); - var last = iterator.next(); - while (iterator.hasNext()) - last = iterator.next(); - return last; - } - } - function last_18($receiver) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('List is empty.'); - return $receiver.get_za3lpa$(get_lastIndex_12($receiver)); - } - var last_19 = defineInlineFunction('kotlin.kotlin.collections.last_6jwkkr$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var last = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - last = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Collection contains no element matching the predicate.'); - return (tmp$_0 = last) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(); - }; - })); - var last_20 = defineInlineFunction('kotlin.kotlin.collections.last_dmm9ex$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - var element = iterator.previous(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('List contains no element matching the predicate.'); - }; - })); - function lastIndexOf_8($receiver, element) { - var tmp$; - if (Kotlin.isType($receiver, List)) - return $receiver.lastIndexOf_11rb$(element); - var lastIndex = -1; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (equals(element, item)) - lastIndex = index; - index = index + 1 | 0; - } - return lastIndex; - } - function lastIndexOf_9($receiver, element) { - return $receiver.lastIndexOf_11rb$(element); - } - function lastOrNull_17($receiver) { - if (Kotlin.isType($receiver, List)) - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$($receiver.size - 1 | 0); - else { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var last = iterator.next(); - while (iterator.hasNext()) - last = iterator.next(); - return last; - } - } - function lastOrNull_18($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$($receiver.size - 1 | 0); - } - var lastOrNull_19 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_6jwkkr$', function ($receiver, predicate) { - var tmp$; - var last = null; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - last = element; - } - } - return last; - }); - var lastOrNull_20 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_dmm9ex$', function ($receiver, predicate) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - var element = iterator.previous(); - if (predicate(element)) - return element; - } - return null; - }); - var random_17 = defineInlineFunction('kotlin.kotlin.collections.random_4c7yge$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_iscd7z$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - function random_18($receiver, random) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('Collection is empty.'); - return elementAt($receiver, random.nextInt_za3lpa$($receiver.size)); - } - function single_17($receiver) { - if (Kotlin.isType($receiver, List)) - return single_18($receiver); - else { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw new NoSuchElementException('Collection is empty.'); - var single = iterator.next(); - if (iterator.hasNext()) - throw IllegalArgumentException_init_0('Collection has more than one element.'); - return single; - } - } - function single_18($receiver) { - var tmp$; - switch ($receiver.size) { - case 0: - throw new NoSuchElementException('List is empty.'); - case 1: - tmp$ = $receiver.get_za3lpa$(0); - break; - default:throw IllegalArgumentException_init_0('List has more than one element.'); - } - return tmp$; - } - var single_19 = defineInlineFunction('kotlin.kotlin.collections.single_6jwkkr$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Collection contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Collection contains no element matching the predicate.'); - return (tmp$_0 = single) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(); - }; - })); - function singleOrNull_17($receiver) { - if (Kotlin.isType($receiver, List)) - return $receiver.size === 1 ? $receiver.get_za3lpa$(0) : null; - else { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var single = iterator.next(); - if (iterator.hasNext()) - return null; - return single; - } - } - function singleOrNull_18($receiver) { - return $receiver.size === 1 ? $receiver.get_za3lpa$(0) : null; - } - var singleOrNull_19 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_6jwkkr$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - function drop_8($receiver, n) { - var tmp$, tmp$_0, tmp$_1; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return toList_8($receiver); - var list; - if (Kotlin.isType($receiver, Collection)) { - var resultSize = $receiver.size - n | 0; - if (resultSize <= 0) - return emptyList(); - if (resultSize === 1) - return listOf(last_17($receiver)); - list = ArrayList_init_0(resultSize); - if (Kotlin.isType($receiver, List)) { - if (Kotlin.isType($receiver, RandomAccess)) { - tmp$ = $receiver.size; - for (var index = n; index < tmp$; index++) - list.add_11rb$($receiver.get_za3lpa$(index)); - } - else { - tmp$_0 = $receiver.listIterator_za3lpa$(n); - while (tmp$_0.hasNext()) { - var item = tmp$_0.next(); - list.add_11rb$(item); - } - } - return list; - } - } - else { - list = ArrayList_init(); - } - var count = 0; - tmp$_1 = $receiver.iterator(); - while (tmp$_1.hasNext()) { - var item_0 = tmp$_1.next(); - if (count >= n) - list.add_11rb$(item_0); - else - count = count + 1 | 0; - } - return optimizeReadOnlyList(list); - } - function dropLast_8($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_8($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - var dropLastWhile_8 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_dmm9ex$', wrapFunction(function () { - var take = _.kotlin.collections.take_ba2ldo$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver, predicate) { - if (!$receiver.isEmpty()) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - if (!predicate(iterator.previous())) { - return take($receiver, iterator.nextIndex() + 1 | 0); - } - } - } - return emptyList(); - }; - })); - var dropWhile_8 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_6jwkkr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var filter_8 = defineInlineFunction('kotlin.kotlin.collections.filter_6jwkkr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_p81qtj$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexedTo_8 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_i2yxnm$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIsInstance_0 = defineInlineFunction('kotlin.kotlin.collections.filterIsInstance_6nw4pr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function (R_0, isR, $receiver) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (isR(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterIsInstanceTo_0 = defineInlineFunction('kotlin.kotlin.collections.filterIsInstanceTo_v8wdbu$', function (R_0, isR, $receiver, destination) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (isR(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNot_8 = defineInlineFunction('kotlin.kotlin.collections.filterNot_6jwkkr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - function filterNotNull_0($receiver) { - return filterNotNullTo_0($receiver, ArrayList_init()); - } - function filterNotNullTo_0($receiver, destination) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (element != null) - destination.add_11rb$(element); - } - return destination; - } - var filterNotTo_8 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_cslyey$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_8 = defineInlineFunction('kotlin.kotlin.collections.filterTo_cslyey$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - function slice_17($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return toList_8($receiver.subList_vux9f0$(indices.start, indices.endInclusive + 1 | 0)); - } - function slice_18($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver.get_za3lpa$(index)); - } - return list; - } - function take_8($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (Kotlin.isType($receiver, Collection)) { - if (n >= $receiver.size) - return toList_8($receiver); - if (n === 1) - return listOf(first_17($receiver)); - } - var count = 0; - var list = ArrayList_init_0(n); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return optimizeReadOnlyList(list); - } - function takeLast_8($receiver, n) { - var tmp$; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.size; - if (n >= size) - return toList_8($receiver); - if (n === 1) - return listOf(last_18($receiver)); - var list = ArrayList_init_0(n); - if (Kotlin.isType($receiver, RandomAccess)) { - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver.get_za3lpa$(index)); - } - else { - tmp$ = $receiver.listIterator_za3lpa$(size - n | 0); - while (tmp$.hasNext()) { - var item = tmp$.next(); - list.add_11rb$(item); - } - } - return list; - } - var takeLastWhile_8 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_dmm9ex$', wrapFunction(function () { - var emptyList = _.kotlin.collections.emptyList_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toList = _.kotlin.collections.toList_7wnvza$; - return function ($receiver, predicate) { - if ($receiver.isEmpty()) - return emptyList(); - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - if (!predicate(iterator.previous())) { - iterator.next(); - var expectedSize = $receiver.size - iterator.nextIndex() | 0; - if (expectedSize === 0) - return emptyList(); - var $receiver_0 = ArrayList_init(expectedSize); - while (iterator.hasNext()) - $receiver_0.add_11rb$(iterator.next()); - return $receiver_0; - } - } - return toList($receiver); - }; - })); - var takeWhile_8 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_6jwkkr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - function reversed_8($receiver) { - if (Kotlin.isType($receiver, Collection) && $receiver.size <= 1) - return toList_8($receiver); - var list = toMutableList_8($receiver); - reverse_12(list); - return list; - } - var sortBy_0 = defineInlineFunction('kotlin.kotlin.collections.sortBy_yag3x6$', wrapFunction(function () { - var sortWith = _.kotlin.collections.sortWith_nqfjgj$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - if ($receiver.size > 1) { - sortWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - } - }; - })); - var sortByDescending_0 = defineInlineFunction('kotlin.kotlin.collections.sortByDescending_yag3x6$', wrapFunction(function () { - var sortWith = _.kotlin.collections.sortWith_nqfjgj$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - if ($receiver.size > 1) { - sortWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - } - }; - })); - function sortDescending_7($receiver) { - sortWith_0($receiver, reverseOrder()); - } - function sorted_7($receiver) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) { - if ($receiver.size <= 1) - return toList_8($receiver); - var $receiver_0 = Kotlin.isArray(tmp$ = copyToArray($receiver)) ? tmp$ : throwCCE_0(); - sort_5($receiver_0); - return asList($receiver_0); - } - var $receiver_1 = toMutableList_8($receiver); - sort_14($receiver_1); - return $receiver_1; - } - var sortedBy_8 = defineInlineFunction('kotlin.kotlin.collections.sortedBy_nd8ern$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_eknfly$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedByDescending_8 = defineInlineFunction('kotlin.kotlin.collections.sortedByDescending_nd8ern$', wrapFunction(function () { - var sortedWith = _.kotlin.collections.sortedWith_eknfly$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - function sortedDescending_7($receiver) { - return sortedWith_8($receiver, reverseOrder()); - } - function sortedWith_8($receiver, comparator) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) { - if ($receiver.size <= 1) - return toList_8($receiver); - var $receiver_0 = Kotlin.isArray(tmp$ = copyToArray($receiver)) ? tmp$ : throwCCE_0(); - sortWith($receiver_0, comparator); - return asList($receiver_0); - } - var $receiver_1 = toMutableList_8($receiver); - sortWith_0($receiver_1, comparator); - return $receiver_1; - } - function toBooleanArray_0($receiver) { - var tmp$, tmp$_0; - var result = Kotlin.booleanArray($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toByteArray_0($receiver) { - var tmp$, tmp$_0; - var result = new Int8Array($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toCharArray_0($receiver) { - var tmp$, tmp$_0; - var result = Kotlin.charArray($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toDoubleArray_0($receiver) { - var tmp$, tmp$_0; - var result = new Float64Array($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toFloatArray_0($receiver) { - var tmp$, tmp$_0; - var result = new Float32Array($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toIntArray_0($receiver) { - var tmp$, tmp$_0; - var result = new Int32Array($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toLongArray_0($receiver) { - var tmp$, tmp$_0; - var result = Kotlin.longArray($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function toShortArray_0($receiver) { - var tmp$, tmp$_0; - var result = new Int16Array($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - var associate_8 = defineInlineFunction('kotlin.kotlin.collections.associate_wbhhmp$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault($receiver, 10)), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associateBy_17 = defineInlineFunction('kotlin.kotlin.collections.associateBy_dvm6j0$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault($receiver, 10)), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_18 = defineInlineFunction('kotlin.kotlin.collections.associateBy_6kgnfi$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity(collectionSizeOrDefault($receiver, 10)), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateByTo_17 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_q9k9lv$', function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_18 = defineInlineFunction('kotlin.kotlin.collections.associateByTo_5s21dh$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateTo_8 = defineInlineFunction('kotlin.kotlin.collections.associateTo_tp6zhs$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateWith = defineInlineFunction('kotlin.kotlin.collections.associateWith_dvm6j0$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, valueSelector) { - var result = LinkedHashMap_init(coerceAtLeast(mapCapacity(collectionSizeOrDefault($receiver, 10)), 16)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result.put_xwzc9p$(element, valueSelector(element)); - } - return result; - }; - })); - var associateWithTo = defineInlineFunction('kotlin.kotlin.collections.associateWithTo_u35i63$', function ($receiver, destination, valueSelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(element, valueSelector(element)); - } - return destination; - }); - function toCollection_8($receiver, destination) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(item); - } - return destination; - } - function toHashSet_8($receiver) { - return toCollection_8($receiver, HashSet_init_2(mapCapacity(collectionSizeOrDefault($receiver, 12)))); - } - function toList_8($receiver) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) { - switch ($receiver.size) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf(Kotlin.isType($receiver, List) ? $receiver.get_za3lpa$(0) : $receiver.iterator().next()); - break; - default:tmp$ = toMutableList_9($receiver); - break; - } - return tmp$; - } - return optimizeReadOnlyList(toMutableList_8($receiver)); - } - function toMutableList_8($receiver) { - if (Kotlin.isType($receiver, Collection)) - return toMutableList_9($receiver); - return toCollection_8($receiver, ArrayList_init()); - } - function toMutableList_9($receiver) { - return ArrayList_init_1($receiver); - } - function toSet_8($receiver) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) { - switch ($receiver.size) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf(Kotlin.isType($receiver, List) ? $receiver.get_za3lpa$(0) : $receiver.iterator().next()); - break; - default:tmp$ = toCollection_8($receiver, LinkedHashSet_init_3(mapCapacity($receiver.size))); - break; - } - return tmp$; - } - return optimizeReadOnlySet(toCollection_8($receiver, LinkedHashSet_init_0())); - } - var flatMap_8 = defineInlineFunction('kotlin.kotlin.collections.flatMap_en2w03$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_8 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_farraf$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var groupBy_17 = defineInlineFunction('kotlin.kotlin.collections.groupBy_dvm6j0$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_18 = defineInlineFunction('kotlin.kotlin.collections.groupBy_6kgnfi$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_17 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_2nn80$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_18 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_spnc2q$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupingBy_0 = defineInlineFunction('kotlin.kotlin.collections.groupingBy_dvm6j0$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Grouping = _.kotlin.collections.Grouping; - function groupingBy$ObjectLiteral(this$groupingBy, closure$keySelector) { - this.this$groupingBy = this$groupingBy; - this.closure$keySelector = closure$keySelector; - } - groupingBy$ObjectLiteral.prototype.sourceIterator = function () { - return this.this$groupingBy.iterator(); - }; - groupingBy$ObjectLiteral.prototype.keyOf_11rb$ = function (element) { - return this.closure$keySelector(element); - }; - groupingBy$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Grouping]}; - return function ($receiver, keySelector) { - return new groupingBy$ObjectLiteral($receiver, keySelector); - }; - })); - var map_8 = defineInlineFunction('kotlin.kotlin.collections.map_dvm6j0$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var mapIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_yigmvk$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, transform) { - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)); - } - return destination; - }; - })); - var mapIndexedNotNull_0 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedNotNull_aw5p9p$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_1; - if ((tmp$_1 = transform(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedNotNullTo_0 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedNotNullTo_s7kjlj$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_1; - if ((tmp$_1 = transform(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedTo_8 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_qixlg$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)); - } - return destination; - }; - })); - var mapNotNull_0 = defineInlineFunction('kotlin.kotlin.collections.mapNotNull_3fhhkf$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapNotNullTo_0 = defineInlineFunction('kotlin.kotlin.collections.mapNotNullTo_p5b1il$', wrapFunction(function () { - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapTo_8 = defineInlineFunction('kotlin.kotlin.collections.mapTo_h3il0w$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - function withIndex$lambda_8(this$withIndex) { - return function () { - return this$withIndex.iterator(); - }; - } - function withIndex_8($receiver) { - return new IndexingIterable(withIndex$lambda_8($receiver)); - } - function distinct_8($receiver) { - return toList_8(toMutableSet_8($receiver)); - } - var distinctBy_8 = defineInlineFunction('kotlin.kotlin.collections.distinctBy_dvm6j0$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, selector) { - var tmp$; - var set = HashSet_init(); - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = selector(e); - if (set.add_11rb$(key)) - list.add_11rb$(e); - } - return list; - }; - })); - function intersect_8($receiver, other) { - var set = toMutableSet_8($receiver); - retainAll_2(set, other); - return set; - } - function subtract_8($receiver, other) { - var set = toMutableSet_8($receiver); - removeAll_2(set, other); - return set; - } - function toMutableSet_8($receiver) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) - tmp$ = LinkedHashSet_init_1($receiver); - else - tmp$ = toCollection_8($receiver, LinkedHashSet_init_0()); - return tmp$; - } - function union_8($receiver, other) { - var set = toMutableSet_8($receiver); - addAll(set, other); - return set; - } - var all_8 = defineInlineFunction('kotlin.kotlin.collections.all_6jwkkr$', wrapFunction(function () { - var Collection = _.kotlin.collections.Collection; - return function ($receiver, predicate) { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) - return true; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }; - })); - function any_17($receiver) { - if (Kotlin.isType($receiver, Collection)) - return !$receiver.isEmpty(); - return $receiver.iterator().hasNext(); - } - var any_18 = defineInlineFunction('kotlin.kotlin.collections.any_6jwkkr$', wrapFunction(function () { - var Collection = _.kotlin.collections.Collection; - return function ($receiver, predicate) { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) - return false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }; - })); - function count_17($receiver) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) - return $receiver.size; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - checkCountOverflow((count = count + 1 | 0, count)); - } - return count; - } - var count_18 = defineInlineFunction('kotlin.kotlin.collections.count_4c7yge$', function ($receiver) { - return $receiver.size; - }); - var count_19 = defineInlineFunction('kotlin.kotlin.collections.count_6jwkkr$', wrapFunction(function () { - var Collection = _.kotlin.collections.Collection; - var checkCountOverflow = _.kotlin.collections.checkCountOverflow_za3lpa$; - return function ($receiver, predicate) { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) - return 0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - checkCountOverflow((count = count + 1 | 0, count)); - } - return count; - }; - })); - var fold_8 = defineInlineFunction('kotlin.kotlin.collections.fold_l1hrho$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var foldIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_a080b4$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), accumulator, element); - } - return accumulator; - }; - })); - var foldRight_8 = defineInlineFunction('kotlin.kotlin.collections.foldRight_flo3fi$', function ($receiver, initial, operation) { - var accumulator = initial; - if (!$receiver.isEmpty()) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - accumulator = operation(iterator.previous(), accumulator); - } - } - return accumulator; - }); - var foldRightIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_nj6056$', function ($receiver, initial, operation) { - var accumulator = initial; - if (!$receiver.isEmpty()) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - while (iterator.hasPrevious()) { - var index = iterator.previousIndex(); - accumulator = operation(index, iterator.previous(), accumulator); - } - } - return accumulator; - }); - var forEach_8 = defineInlineFunction('kotlin.kotlin.collections.forEach_i7id1t$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var forEachIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_g8ms6t$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - action(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item); - } - }; - })); - function max_9($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - if (isNaN_0(max)) - return max; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_0(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_10($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - if (isNaN_1(max)) - return max; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_1(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_11($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (Kotlin.compareTo(max, e) < 0) - max = e; - } - return max; - } - var maxBy_8 = defineInlineFunction('kotlin.kotlin.collections.maxBy_nd8ern$', function ($receiver, selector) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var maxElem = iterator.next(); - if (!iterator.hasNext()) - return maxElem; - var maxValue = selector(maxElem); - do { - var e = iterator.next(); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - while (iterator.hasNext()); - return maxElem; - }); - function maxWith_8($receiver, comparator) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function min_9($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - if (isNaN_0(min)) - return min; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_0(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_10($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - if (isNaN_1(min)) - return min; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_1(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_11($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (Kotlin.compareTo(min, e) > 0) - min = e; - } - return min; - } - var minBy_8 = defineInlineFunction('kotlin.kotlin.collections.minBy_nd8ern$', function ($receiver, selector) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var minElem = iterator.next(); - if (!iterator.hasNext()) - return minElem; - var minValue = selector(minElem); - do { - var e = iterator.next(); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - while (iterator.hasNext()); - return minElem; - }); - function minWith_8($receiver, comparator) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function none_17($receiver) { - if (Kotlin.isType($receiver, Collection)) - return $receiver.isEmpty(); - return !$receiver.iterator().hasNext(); - } - var none_18 = defineInlineFunction('kotlin.kotlin.collections.none_6jwkkr$', wrapFunction(function () { - var Collection = _.kotlin.collections.Collection; - return function ($receiver, predicate) { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) - return true; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }; - })); - var onEach = defineInlineFunction('kotlin.kotlin.collections.onEach_w8vc4v$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - return $receiver; - }); - var reduce_8 = defineInlineFunction('kotlin.kotlin.collections.reduce_lrrcxv$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw UnsupportedOperationException_init("Empty collection can't be reduced."); - var accumulator = iterator.next(); - while (iterator.hasNext()) { - accumulator = operation(accumulator, iterator.next()); - } - return accumulator; - }; - })); - var reduceIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_8txfjb$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, operation) { - var tmp$; - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw UnsupportedOperationException_init("Empty collection can't be reduced."); - var index = 1; - var accumulator = iterator.next(); - while (iterator.hasNext()) { - accumulator = operation(checkIndexOverflow((tmp$ = index, index = tmp$ + 1 | 0, tmp$)), accumulator, iterator.next()); - } - return accumulator; - }; - })); - var reduceRight_8 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_y5l5zf$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - if (!iterator.hasPrevious()) - throw UnsupportedOperationException_init("Empty list can't be reduced."); - var accumulator = iterator.previous(); - while (iterator.hasPrevious()) { - accumulator = operation(iterator.previous(), accumulator); - } - return accumulator; - }; - })); - var reduceRightIndexed_8 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_1a67zb$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var iterator = $receiver.listIterator_za3lpa$($receiver.size); - if (!iterator.hasPrevious()) - throw UnsupportedOperationException_init("Empty list can't be reduced."); - var accumulator = iterator.previous(); - while (iterator.hasPrevious()) { - var index = iterator.previousIndex(); - accumulator = operation(index, iterator.previous(), accumulator); - } - return accumulator; - }; - })); - var sumBy_8 = defineInlineFunction('kotlin.kotlin.collections.sumBy_1nckxa$', function ($receiver, selector) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumByDouble_8 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_k0tf9a$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += selector(element); - } - return sum; - }); - function requireNoNulls_0($receiver) { - var tmp$, tmp$_0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (element == null) { - throw IllegalArgumentException_init_0('null element found in ' + $receiver + '.'); - } - } - return Kotlin.isType(tmp$_0 = $receiver, Iterable) ? tmp$_0 : throwCCE_0(); - } - function requireNoNulls_1($receiver) { - var tmp$, tmp$_0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (element == null) { - throw IllegalArgumentException_init_0('null element found in ' + $receiver + '.'); - } - } - return Kotlin.isType(tmp$_0 = $receiver, List) ? tmp$_0 : throwCCE_0(); - } - function chunked($receiver, size) { - return windowed($receiver, size, size, true); - } - function chunked_0($receiver, size, transform) { - return windowed_0($receiver, size, size, true, transform); - } - function minus($receiver, element) { - var result = ArrayList_init_0(collectionSizeOrDefault($receiver, 10)); - var removed = {v: false}; - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element_0 = tmp$.next(); - var predicate$result; - if (!removed.v && equals(element_0, element)) { - removed.v = true; - predicate$result = false; - } - else { - predicate$result = true; - } - if (predicate$result) - result.add_11rb$(element_0); - } - return result; - } - function minus_0($receiver, elements) { - if (elements.length === 0) - return toList_8($receiver); - var other = toHashSet(elements); - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!other.contains_11rb$(element)) - destination.add_11rb$(element); - } - return destination; - } - function minus_1($receiver, elements) { - var other = convertToSetForSetOperationWith(elements, $receiver); - if (other.isEmpty()) - return toList_8($receiver); - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!other.contains_11rb$(element)) - destination.add_11rb$(element); - } - return destination; - } - function minus_2($receiver, elements) { - var other = toHashSet_9(elements); - if (other.isEmpty()) - return toList_8($receiver); - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!other.contains_11rb$(element)) - destination.add_11rb$(element); - } - return destination; - } - var minusElement = defineInlineFunction('kotlin.kotlin.collections.minusElement_2ws7j4$', wrapFunction(function () { - var minus = _.kotlin.collections.minus_2ws7j4$; - return function ($receiver, element) { - return minus($receiver, element); - }; - })); - var partition_8 = defineInlineFunction('kotlin.kotlin.collections.partition_6jwkkr$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - function plus($receiver, element) { - if (Kotlin.isType($receiver, Collection)) - return plus_0($receiver, element); - var result = ArrayList_init(); - addAll(result, $receiver); - result.add_11rb$(element); - return result; - } - function plus_0($receiver, element) { - var result = ArrayList_init_0($receiver.size + 1 | 0); - result.addAll_brywnq$($receiver); - result.add_11rb$(element); - return result; - } - function plus_1($receiver, elements) { - if (Kotlin.isType($receiver, Collection)) - return plus_2($receiver, elements); - var result = ArrayList_init(); - addAll(result, $receiver); - addAll_1(result, elements); - return result; - } - function plus_2($receiver, elements) { - var result = ArrayList_init_0($receiver.size + elements.length | 0); - result.addAll_brywnq$($receiver); - addAll_1(result, elements); - return result; - } - function plus_3($receiver, elements) { - if (Kotlin.isType($receiver, Collection)) - return plus_4($receiver, elements); - var result = ArrayList_init(); - addAll(result, $receiver); - addAll(result, elements); - return result; - } - function plus_4($receiver, elements) { - if (Kotlin.isType(elements, Collection)) { - var result = ArrayList_init_0($receiver.size + elements.size | 0); - result.addAll_brywnq$($receiver); - result.addAll_brywnq$(elements); - return result; - } - else { - var result_0 = ArrayList_init_1($receiver); - addAll(result_0, elements); - return result_0; - } - } - function plus_5($receiver, elements) { - var result = ArrayList_init(); - addAll(result, $receiver); - addAll_0(result, elements); - return result; - } - function plus_6($receiver, elements) { - var result = ArrayList_init_0($receiver.size + 10 | 0); - result.addAll_brywnq$($receiver); - addAll_0(result, elements); - return result; - } - var plusElement = defineInlineFunction('kotlin.kotlin.collections.plusElement_2ws7j4$', wrapFunction(function () { - var plus = _.kotlin.collections.plus_2ws7j4$; - return function ($receiver, element) { - return plus($receiver, element); - }; - })); - var plusElement_0 = defineInlineFunction('kotlin.kotlin.collections.plusElement_qloxvw$', wrapFunction(function () { - var plus = _.kotlin.collections.plus_qloxvw$; - return function ($receiver, element) { - return plus($receiver, element); - }; - })); - function windowed($receiver, size, step, partialWindows) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - checkWindowSizeStep(size, step); - if (Kotlin.isType($receiver, RandomAccess) && Kotlin.isType($receiver, List)) { - var thisSize = $receiver.size; - var result = ArrayList_init_0((thisSize + step - 1 | 0) / step | 0); - var index = {v: 0}; - while (index.v < thisSize) { - var windowSize = coerceAtMost_2(size, thisSize - index.v | 0); - if (windowSize < size && !partialWindows) - break; - var list = ArrayList_init_0(windowSize); - for (var index_0 = 0; index_0 < windowSize; index_0++) { - list.add_11rb$($receiver.get_za3lpa$(index_0 + index.v | 0)); - } - result.add_11rb$(list); - index.v = index.v + step | 0; - } - return result; - } - var result_0 = ArrayList_init(); - var $receiver_0 = windowedIterator($receiver.iterator(), size, step, partialWindows, false); - while ($receiver_0.hasNext()) { - var element = $receiver_0.next(); - result_0.add_11rb$(element); - } - return result_0; - } - function windowed_0($receiver, size, step, partialWindows, transform) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - checkWindowSizeStep(size, step); - if (Kotlin.isType($receiver, RandomAccess) && Kotlin.isType($receiver, List)) { - var thisSize = $receiver.size; - var result = ArrayList_init_0((thisSize + step - 1 | 0) / step | 0); - var window_0 = new MovingSubList($receiver); - var index = 0; - while (index < thisSize) { - window_0.move_vux9f0$(index, coerceAtMost_2(index + size | 0, thisSize)); - if (!partialWindows && window_0.size < size) - break; - result.add_11rb$(transform(window_0)); - index = index + step | 0; - } - return result; - } - var result_0 = ArrayList_init(); - var $receiver_0 = windowedIterator($receiver.iterator(), size, step, partialWindows, true); - while ($receiver_0.hasNext()) { - var element = $receiver_0.next(); - result_0.add_11rb$(transform(element)); - } - return result_0; - } - function zip_51($receiver, other) { - var tmp$, tmp$_0; - var arraySize = other.length; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault($receiver, 10), arraySize)); - var i = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to(element, other[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0])); - } - return list; - } - var zip_52 = defineInlineFunction('kotlin.kotlin.collections.zip_curaua$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = other.length; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault($receiver, 10), arraySize)); - var i = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform(element, other[tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0])); - } - return list; - }; - })); - function zip_53($receiver, other) { - var first = $receiver.iterator(); - var second = other.iterator(); - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault($receiver, 10), collectionSizeOrDefault(other, 10))); - while (first.hasNext() && second.hasNext()) { - list.add_11rb$(to(first.next(), second.next())); - } - return list; - } - var zip_54 = defineInlineFunction('kotlin.kotlin.collections.zip_3h9v02$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var first = $receiver.iterator(); - var second = other.iterator(); - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault($receiver, 10), collectionSizeOrDefault(other, 10))); - while (first.hasNext() && second.hasNext()) { - list.add_11rb$(transform(first.next(), second.next())); - } - return list; - }; - })); - function zipWithNext($receiver) { - var zipWithNext$result; - zipWithNext$break: do { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) { - zipWithNext$result = emptyList(); - break zipWithNext$break; - } - var result = ArrayList_init(); - var current = iterator.next(); - while (iterator.hasNext()) { - var next = iterator.next(); - result.add_11rb$(to(current, next)); - current = next; - } - zipWithNext$result = result; - } - while (false); - return zipWithNext$result; - } - var zipWithNext_0 = defineInlineFunction('kotlin.kotlin.collections.zipWithNext_kvcuaw$', wrapFunction(function () { - var emptyList = _.kotlin.collections.emptyList_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, transform) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return emptyList(); - var result = ArrayList_init(); - var current = iterator.next(); - while (iterator.hasNext()) { - var next = iterator.next(); - result.add_11rb$(transform(current, next)); - current = next; - } - return result; - }; - })); - function joinTo_8($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - appendElement_0(buffer, element, transform); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinToString_8($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_8($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - var asIterable_8 = defineInlineFunction('kotlin.kotlin.collections.asIterable_7wnvza$', function ($receiver) { - return $receiver; - }); - function asSequence$lambda_8(this$asSequence) { - return function () { - return this$asSequence.iterator(); - }; - } - function asSequence_8($receiver) { - return new Sequence$ObjectLiteral_0(asSequence$lambda_8($receiver)); - } - function average_11($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_12($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_13($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_14($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_15($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_16($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function sum_11($receiver) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + element; - } - return sum; - } - function sum_12($receiver) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + element; - } - return sum; - } - function sum_13($receiver) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + element | 0; - } - return sum; - } - function sum_14($receiver) { - var tmp$; - var sum = L0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum.add(element); - } - return sum; - } - function sum_15($receiver) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - } - return sum; - } - function sum_16($receiver) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - } - return sum; - } - function maxOf(a, b, c, comparator) { - return maxOf_0(a, maxOf_0(b, c, comparator), comparator); - } - function maxOf_0(a, b, comparator) { - return comparator.compare(a, b) >= 0 ? a : b; - } - function minOf(a, b, c, comparator) { - return minOf_0(a, minOf_0(b, c, comparator), comparator); - } - function minOf_0(a, b, comparator) { - return comparator.compare(a, b) <= 0 ? a : b; - } - function toList_9($receiver) { - if ($receiver.size === 0) - return emptyList(); - var iterator = $receiver.entries.iterator(); - if (!iterator.hasNext()) - return emptyList(); - var first = iterator.next(); - if (!iterator.hasNext()) { - return listOf(new Pair(first.key, first.value)); - } - var result = ArrayList_init_0($receiver.size); - result.add_11rb$(new Pair(first.key, first.value)); - do { - var $receiver_0 = iterator.next(); - result.add_11rb$(new Pair($receiver_0.key, $receiver_0.value)); - } - while (iterator.hasNext()); - return result; - } - var flatMap_9 = defineInlineFunction('kotlin.kotlin.collections.flatMap_2r9935$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_9 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_qdz8ho$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var map_9 = defineInlineFunction('kotlin.kotlin.collections.map_8169ik$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var mapNotNull_1 = defineInlineFunction('kotlin.kotlin.collections.mapNotNull_9b72hb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapNotNullTo_1 = defineInlineFunction('kotlin.kotlin.collections.mapNotNullTo_ir6y9a$', wrapFunction(function () { - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapTo_9 = defineInlineFunction('kotlin.kotlin.collections.mapTo_qxe4nl$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - var all_9 = defineInlineFunction('kotlin.kotlin.collections.all_9peqz9$', function ($receiver, predicate) { - var tmp$; - if ($receiver.isEmpty()) - return true; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }); - function any_19($receiver) { - return !$receiver.isEmpty(); - } - var any_20 = defineInlineFunction('kotlin.kotlin.collections.any_9peqz9$', function ($receiver, predicate) { - var tmp$; - if ($receiver.isEmpty()) - return false; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }); - var count_20 = defineInlineFunction('kotlin.kotlin.collections.count_abgq59$', function ($receiver) { - return $receiver.size; - }); - var count_21 = defineInlineFunction('kotlin.kotlin.collections.count_9peqz9$', function ($receiver, predicate) { - var tmp$; - if ($receiver.isEmpty()) - return 0; - var count = 0; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var forEach_9 = defineInlineFunction('kotlin.kotlin.collections.forEach_62casv$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var maxBy_9 = defineInlineFunction('kotlin.kotlin.collections.maxBy_44nibo$', function ($receiver, selector) { - var $receiver_0 = $receiver.entries; - var maxBy$result; - maxBy$break: do { - var iterator = $receiver_0.iterator(); - if (!iterator.hasNext()) { - maxBy$result = null; - break maxBy$break; - } - var maxElem = iterator.next(); - if (!iterator.hasNext()) { - maxBy$result = maxElem; - break maxBy$break; - } - var maxValue = selector(maxElem); - do { - var e = iterator.next(); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - while (iterator.hasNext()); - maxBy$result = maxElem; - } - while (false); - return maxBy$result; - }); - var maxWith_9 = defineInlineFunction('kotlin.kotlin.collections.maxWith_e3q53g$', wrapFunction(function () { - var maxWith = _.kotlin.collections.maxWith_eknfly$; - return function ($receiver, comparator) { - return maxWith($receiver.entries, comparator); - }; - })); - var minBy_9 = defineInlineFunction('kotlin.kotlin.collections.minBy_44nibo$', function ($receiver, selector) { - var $receiver_0 = $receiver.entries; - var minBy$result; - minBy$break: do { - var iterator = $receiver_0.iterator(); - if (!iterator.hasNext()) { - minBy$result = null; - break minBy$break; - } - var minElem = iterator.next(); - if (!iterator.hasNext()) { - minBy$result = minElem; - break minBy$break; - } - var minValue = selector(minElem); - do { - var e = iterator.next(); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - while (iterator.hasNext()); - minBy$result = minElem; - } - while (false); - return minBy$result; - }); - function minWith_9($receiver, comparator) { - return minWith_8($receiver.entries, comparator); - } - function none_19($receiver) { - return $receiver.isEmpty(); - } - var none_20 = defineInlineFunction('kotlin.kotlin.collections.none_9peqz9$', function ($receiver, predicate) { - var tmp$; - if ($receiver.isEmpty()) - return true; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }); - var onEach_0 = defineInlineFunction('kotlin.kotlin.collections.onEach_bdwhnn$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - return $receiver; - }); - var asIterable_9 = defineInlineFunction('kotlin.kotlin.collections.asIterable_abgq59$', function ($receiver) { - return $receiver.entries; - }); - function asSequence_9($receiver) { - return asSequence_8($receiver.entries); - } - var random_19 = defineInlineFunction('kotlin.kotlin.ranges.random_9tsm8a$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.ranges.random_xmiyix$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_20 = defineInlineFunction('kotlin.kotlin.ranges.random_37ivyf$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.ranges.random_6753zu$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_21 = defineInlineFunction('kotlin.kotlin.ranges.random_m1hxcj$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.ranges.random_bx1m1g$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - function random_22($receiver, random) { - try { - return nextInt(random, $receiver); - } - catch (e) { - if (Kotlin.isType(e, IllegalArgumentException)) { - throw new NoSuchElementException(e.message); - } - else - throw e; - } - } - function random_23($receiver, random) { - try { - return nextLong(random, $receiver); - } - catch (e) { - if (Kotlin.isType(e, IllegalArgumentException)) { - throw new NoSuchElementException(e.message); - } - else - throw e; - } - } - function random_24($receiver, random) { - try { - return toChar(random.nextInt_vux9f0$($receiver.first | 0, ($receiver.last | 0) + 1 | 0)); - } - catch (e) { - if (Kotlin.isType(e, IllegalArgumentException)) { - throw new NoSuchElementException(e.message); - } - else - throw e; - } - } - var contains_9 = defineInlineFunction('kotlin.kotlin.ranges.contains_j7m49l$', function ($receiver, element) { - return element != null && $receiver.contains_mef7kx$(element); - }); - var contains_10 = defineInlineFunction('kotlin.kotlin.ranges.contains_zgs5kf$', function ($receiver, element) { - return element != null && $receiver.contains_mef7kx$(element); - }); - var contains_11 = defineInlineFunction('kotlin.kotlin.ranges.contains_zdvzsf$', function ($receiver, element) { - return element != null && $receiver.contains_mef7kx$(element); - }); - function contains_12($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_13($receiver, value) { - return $receiver.contains_mef7kx$(Kotlin.Long.fromInt(value)); - } - function contains_14($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_15($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_16($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_17($receiver, value) { - var it = toIntExactOrNull_0(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_18($receiver, value) { - var it = toLongExactOrNull(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_19($receiver, value) { - var it = toByteExactOrNull_2(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_20($receiver, value) { - var it = toShortExactOrNull_1(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_21($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_22($receiver, value) { - var it = toIntExactOrNull_1(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_23($receiver, value) { - var it = toLongExactOrNull_0(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_24($receiver, value) { - var it = toByteExactOrNull_3(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_25($receiver, value) { - var it = toShortExactOrNull_2(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_26($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_27($receiver, value) { - return $receiver.contains_mef7kx$(Kotlin.Long.fromInt(value)); - } - function contains_28($receiver, value) { - var it = toByteExactOrNull(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_29($receiver, value) { - var it = toShortExactOrNull(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_30($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_31($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_32($receiver, value) { - var it = toIntExactOrNull(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_33($receiver, value) { - var it = toByteExactOrNull_0(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_34($receiver, value) { - var it = toShortExactOrNull_0(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_35($receiver, value) { - return $receiver.contains_mef7kx$(value.toNumber()); - } - function contains_36($receiver, value) { - return $receiver.contains_mef7kx$(value.toNumber()); - } - function contains_37($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_38($receiver, value) { - return $receiver.contains_mef7kx$(Kotlin.Long.fromInt(value)); - } - function contains_39($receiver, value) { - var it = toByteExactOrNull_1(value); - return it != null ? $receiver.contains_mef7kx$(it) : false; - } - function contains_40($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function contains_41($receiver, value) { - return $receiver.contains_mef7kx$(value); - } - function downTo($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_0($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$($receiver, Kotlin.Long.fromInt(to), L_1); - } - function downTo_1($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_2($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_3($receiver, to) { - return CharProgression$Companion_getInstance().fromClosedRange_ayra44$($receiver, to, -1); - } - function downTo_4($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_5($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$($receiver, Kotlin.Long.fromInt(to), L_1); - } - function downTo_6($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_7($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_8($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$(Kotlin.Long.fromInt($receiver), to, L_1); - } - function downTo_9($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$($receiver, to, L_1); - } - function downTo_10($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$(Kotlin.Long.fromInt($receiver), to, L_1); - } - function downTo_11($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$(Kotlin.Long.fromInt($receiver), to, L_1); - } - function downTo_12($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_13($receiver, to) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$($receiver, Kotlin.Long.fromInt(to), L_1); - } - function downTo_14($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function downTo_15($receiver, to) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver, to, -1); - } - function reversed_9($receiver) { - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver.last, $receiver.first, -$receiver.step | 0); - } - function reversed_10($receiver) { - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$($receiver.last, $receiver.first, $receiver.step.unaryMinus()); - } - function reversed_11($receiver) { - return CharProgression$Companion_getInstance().fromClosedRange_ayra44$($receiver.last, $receiver.first, -$receiver.step | 0); - } - function step($receiver, step) { - checkStepIsPositive(step > 0, step); - return IntProgression$Companion_getInstance().fromClosedRange_qt1dr2$($receiver.first, $receiver.last, $receiver.step > 0 ? step : -step | 0); - } - function step_0($receiver, step) { - checkStepIsPositive(step.toNumber() > 0, step); - return LongProgression$Companion_getInstance().fromClosedRange_b9bd0d$($receiver.first, $receiver.last, $receiver.step.toNumber() > 0 ? step : step.unaryMinus()); - } - function step_1($receiver, step) { - checkStepIsPositive(step > 0, step); - return CharProgression$Companion_getInstance().fromClosedRange_ayra44$($receiver.first, $receiver.last, $receiver.step > 0 ? step : -step | 0); - } - function toByteExactOrNull($receiver) { - return -128 <= $receiver && $receiver <= 127 ? toByte($receiver) : null; - } - function toByteExactOrNull_0($receiver) { - return L_128.lessThanOrEqual($receiver) && $receiver.lessThanOrEqual(L127) ? toByte($receiver.toInt()) : null; - } - function toByteExactOrNull_1($receiver) { - return contains_37(new IntRange(kotlin_js_internal_ByteCompanionObject.MIN_VALUE, kotlin_js_internal_ByteCompanionObject.MAX_VALUE), $receiver) ? toByte($receiver) : null; - } - function toByteExactOrNull_2($receiver) { - return rangeTo_1(kotlin_js_internal_ByteCompanionObject.MIN_VALUE, kotlin_js_internal_ByteCompanionObject.MAX_VALUE).contains_mef7kx$($receiver) ? toByte(numberToInt($receiver)) : null; - } - function toByteExactOrNull_3($receiver) { - return rangeTo_1(kotlin_js_internal_ByteCompanionObject.MIN_VALUE, kotlin_js_internal_ByteCompanionObject.MAX_VALUE).contains_mef7kx$($receiver) ? toByte(numberToInt($receiver)) : null; - } - function toIntExactOrNull($receiver) { - return L_2147483648.lessThanOrEqual($receiver) && $receiver.lessThanOrEqual(L2147483647) ? $receiver.toInt() : null; - } - function toIntExactOrNull_0($receiver) { - return rangeTo_1(-2147483648, 2147483647).contains_mef7kx$($receiver) ? numberToInt($receiver) : null; - } - function toIntExactOrNull_1($receiver) { - return rangeTo_1(-2147483648, 2147483647).contains_mef7kx$($receiver) ? numberToInt($receiver) : null; - } - function toLongExactOrNull($receiver) { - return rangeTo_1(Long$Companion$MIN_VALUE.toNumber(), Long$Companion$MAX_VALUE.toNumber()).contains_mef7kx$($receiver) ? Kotlin.Long.fromNumber($receiver) : null; - } - function toLongExactOrNull_0($receiver) { - return rangeTo_1(Long$Companion$MIN_VALUE.toNumber(), Long$Companion$MAX_VALUE.toNumber()).contains_mef7kx$($receiver) ? Kotlin.Long.fromNumber($receiver) : null; - } - function toShortExactOrNull($receiver) { - return -32768 <= $receiver && $receiver <= 32767 ? toShort($receiver) : null; - } - function toShortExactOrNull_0($receiver) { - return L_32768.lessThanOrEqual($receiver) && $receiver.lessThanOrEqual(L32767) ? toShort($receiver.toInt()) : null; - } - function toShortExactOrNull_1($receiver) { - return rangeTo_1(kotlin_js_internal_ShortCompanionObject.MIN_VALUE, kotlin_js_internal_ShortCompanionObject.MAX_VALUE).contains_mef7kx$($receiver) ? toShort(numberToInt($receiver)) : null; - } - function toShortExactOrNull_2($receiver) { - return rangeTo_1(kotlin_js_internal_ShortCompanionObject.MIN_VALUE, kotlin_js_internal_ShortCompanionObject.MAX_VALUE).contains_mef7kx$($receiver) ? toShort(numberToInt($receiver)) : null; - } - function until($receiver, to) { - return new IntRange($receiver, to - 1 | 0); - } - function until_0($receiver, to) { - return $receiver.rangeTo(Kotlin.Long.fromInt(to).subtract(Kotlin.Long.fromInt(1))); - } - function until_1($receiver, to) { - return new IntRange($receiver, to - 1 | 0); - } - function until_2($receiver, to) { - return new IntRange($receiver, to - 1 | 0); - } - function until_3($receiver, to) { - if (to <= 0) - return CharRange$Companion_getInstance().EMPTY; - return new CharRange($receiver, toChar(to - 1)); - } - function until_4($receiver, to) { - if (to <= -2147483648) - return IntRange$Companion_getInstance().EMPTY; - return new IntRange($receiver, to - 1 | 0); - } - function until_5($receiver, to) { - return $receiver.rangeTo(Kotlin.Long.fromInt(to).subtract(Kotlin.Long.fromInt(1))); - } - function until_6($receiver, to) { - if (to <= -2147483648) - return IntRange$Companion_getInstance().EMPTY; - return new IntRange($receiver, to - 1 | 0); - } - function until_7($receiver, to) { - if (to <= -2147483648) - return IntRange$Companion_getInstance().EMPTY; - return new IntRange($receiver, to - 1 | 0); - } - function until_8($receiver, to) { - if (to.compareTo_11rb$(Long$Companion$MIN_VALUE) <= 0) - return LongRange$Companion_getInstance().EMPTY; - return Kotlin.Long.fromInt($receiver).rangeTo(to.subtract(Kotlin.Long.fromInt(1))); - } - function until_9($receiver, to) { - if (to.compareTo_11rb$(Long$Companion$MIN_VALUE) <= 0) - return LongRange$Companion_getInstance().EMPTY; - return $receiver.rangeTo(to.subtract(Kotlin.Long.fromInt(1))); - } - function until_10($receiver, to) { - if (to.compareTo_11rb$(Long$Companion$MIN_VALUE) <= 0) - return LongRange$Companion_getInstance().EMPTY; - return Kotlin.Long.fromInt($receiver).rangeTo(to.subtract(Kotlin.Long.fromInt(1))); - } - function until_11($receiver, to) { - if (to.compareTo_11rb$(Long$Companion$MIN_VALUE) <= 0) - return LongRange$Companion_getInstance().EMPTY; - return Kotlin.Long.fromInt($receiver).rangeTo(to.subtract(Kotlin.Long.fromInt(1))); - } - function until_12($receiver, to) { - return new IntRange($receiver, to - 1 | 0); - } - function until_13($receiver, to) { - return $receiver.rangeTo(Kotlin.Long.fromInt(to).subtract(Kotlin.Long.fromInt(1))); - } - function until_14($receiver, to) { - return new IntRange($receiver, to - 1 | 0); - } - function until_15($receiver, to) { - return new IntRange($receiver, to - 1 | 0); - } - function coerceAtLeast($receiver, minimumValue) { - return Kotlin.compareTo($receiver, minimumValue) < 0 ? minimumValue : $receiver; - } - function coerceAtLeast_0($receiver, minimumValue) { - return $receiver < minimumValue ? minimumValue : $receiver; - } - function coerceAtLeast_1($receiver, minimumValue) { - return $receiver < minimumValue ? minimumValue : $receiver; - } - function coerceAtLeast_2($receiver, minimumValue) { - return $receiver < minimumValue ? minimumValue : $receiver; - } - function coerceAtLeast_3($receiver, minimumValue) { - return $receiver.compareTo_11rb$(minimumValue) < 0 ? minimumValue : $receiver; - } - function coerceAtLeast_4($receiver, minimumValue) { - return $receiver < minimumValue ? minimumValue : $receiver; - } - function coerceAtLeast_5($receiver, minimumValue) { - return $receiver < minimumValue ? minimumValue : $receiver; - } - function coerceAtMost($receiver, maximumValue) { - return Kotlin.compareTo($receiver, maximumValue) > 0 ? maximumValue : $receiver; - } - function coerceAtMost_0($receiver, maximumValue) { - return $receiver > maximumValue ? maximumValue : $receiver; - } - function coerceAtMost_1($receiver, maximumValue) { - return $receiver > maximumValue ? maximumValue : $receiver; - } - function coerceAtMost_2($receiver, maximumValue) { - return $receiver > maximumValue ? maximumValue : $receiver; - } - function coerceAtMost_3($receiver, maximumValue) { - return $receiver.compareTo_11rb$(maximumValue) > 0 ? maximumValue : $receiver; - } - function coerceAtMost_4($receiver, maximumValue) { - return $receiver > maximumValue ? maximumValue : $receiver; - } - function coerceAtMost_5($receiver, maximumValue) { - return $receiver > maximumValue ? maximumValue : $receiver; - } - function coerceIn($receiver, minimumValue, maximumValue) { - if (minimumValue !== null && maximumValue !== null) { - if (Kotlin.compareTo(minimumValue, maximumValue) > 0) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + toString(maximumValue) + ' is less than minimum ' + toString(minimumValue) + '.'); - if (Kotlin.compareTo($receiver, minimumValue) < 0) - return minimumValue; - if (Kotlin.compareTo($receiver, maximumValue) > 0) - return maximumValue; - } - else { - if (minimumValue !== null && Kotlin.compareTo($receiver, minimumValue) < 0) - return minimumValue; - if (maximumValue !== null && Kotlin.compareTo($receiver, maximumValue) > 0) - return maximumValue; - } - return $receiver; - } - function coerceIn_0($receiver, minimumValue, maximumValue) { - if (minimumValue > maximumValue) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if ($receiver < minimumValue) - return minimumValue; - if ($receiver > maximumValue) - return maximumValue; - return $receiver; - } - function coerceIn_1($receiver, minimumValue, maximumValue) { - if (minimumValue > maximumValue) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if ($receiver < minimumValue) - return minimumValue; - if ($receiver > maximumValue) - return maximumValue; - return $receiver; - } - function coerceIn_2($receiver, minimumValue, maximumValue) { - if (minimumValue > maximumValue) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if ($receiver < minimumValue) - return minimumValue; - if ($receiver > maximumValue) - return maximumValue; - return $receiver; - } - function coerceIn_3($receiver, minimumValue, maximumValue) { - if (minimumValue.compareTo_11rb$(maximumValue) > 0) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue.toString() + ' is less than minimum ' + minimumValue.toString() + '.'); - if ($receiver.compareTo_11rb$(minimumValue) < 0) - return minimumValue; - if ($receiver.compareTo_11rb$(maximumValue) > 0) - return maximumValue; - return $receiver; - } - function coerceIn_4($receiver, minimumValue, maximumValue) { - if (minimumValue > maximumValue) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if ($receiver < minimumValue) - return minimumValue; - if ($receiver > maximumValue) - return maximumValue; - return $receiver; - } - function coerceIn_5($receiver, minimumValue, maximumValue) { - if (minimumValue > maximumValue) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if ($receiver < minimumValue) - return minimumValue; - if ($receiver > maximumValue) - return maximumValue; - return $receiver; - } - function coerceIn_6($receiver, range) { - var tmp$; - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: ' + range + '.'); - if (range.lessThanOrEquals_n65qkk$($receiver, range.start) && !range.lessThanOrEquals_n65qkk$(range.start, $receiver)) - tmp$ = range.start; - else if (range.lessThanOrEquals_n65qkk$(range.endInclusive, $receiver) && !range.lessThanOrEquals_n65qkk$($receiver, range.endInclusive)) - tmp$ = range.endInclusive; - else - tmp$ = $receiver; - return tmp$; - } - function coerceIn_7($receiver, range) { - var tmp$; - if (Kotlin.isType(range, ClosedFloatingPointRange)) { - return coerceIn_6($receiver, range); - } - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: ' + range + '.'); - if (Kotlin.compareTo($receiver, range.start) < 0) - tmp$ = range.start; - else if (Kotlin.compareTo($receiver, range.endInclusive) > 0) - tmp$ = range.endInclusive; - else - tmp$ = $receiver; - return tmp$; - } - function coerceIn_8($receiver, range) { - var tmp$; - if (Kotlin.isType(range, ClosedFloatingPointRange)) { - return coerceIn_6($receiver, range); - } - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: ' + range + '.'); - if ($receiver < range.start) - tmp$ = range.start; - else if ($receiver > range.endInclusive) - tmp$ = range.endInclusive; - else - tmp$ = $receiver; - return tmp$; - } - function coerceIn_9($receiver, range) { - var tmp$; - if (Kotlin.isType(range, ClosedFloatingPointRange)) { - return coerceIn_6($receiver, range); - } - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: ' + range + '.'); - if ($receiver.compareTo_11rb$(range.start) < 0) - tmp$ = range.start; - else if ($receiver.compareTo_11rb$(range.endInclusive) > 0) - tmp$ = range.endInclusive; - else - tmp$ = $receiver; - return tmp$; - } - function Iterable$ObjectLiteral_0(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Iterable$ObjectLiteral_0.prototype.iterator = function () { - return this.closure$iterator(); - }; - Iterable$ObjectLiteral_0.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterable]}; - function contains_42($receiver, element) { - return indexOf_10($receiver, element) >= 0; - } - function elementAt$lambda_0(closure$index) { - return function (it) { - throw new IndexOutOfBoundsException("Sequence doesn't contain element at index " + closure$index + '.'); - }; - } - function elementAt_1($receiver, index) { - return elementAtOrElse_10($receiver, index, elementAt$lambda_0(index)); - } - function elementAtOrElse_10($receiver, index, defaultValue) { - var tmp$; - if (index < 0) - return defaultValue(index); - var iterator = $receiver.iterator(); - var count = 0; - while (iterator.hasNext()) { - var element = iterator.next(); - if (index === (tmp$ = count, count = tmp$ + 1 | 0, tmp$)) - return element; - } - return defaultValue(index); - } - function elementAtOrNull_10($receiver, index) { - var tmp$; - if (index < 0) - return null; - var iterator = $receiver.iterator(); - var count = 0; - while (iterator.hasNext()) { - var element = iterator.next(); - if (index === (tmp$ = count, count = tmp$ + 1 | 0, tmp$)) - return element; - } - return null; - } - var find_9 = defineInlineFunction('kotlin.kotlin.sequences.find_euau3h$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var findLast_10 = defineInlineFunction('kotlin.kotlin.sequences.findLast_euau3h$', function ($receiver, predicate) { - var tmp$; - var last = null; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - last = element; - } - } - return last; - }); - function first_20($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw new NoSuchElementException('Sequence is empty.'); - return iterator.next(); - } - var first_21 = defineInlineFunction('kotlin.kotlin.sequences.first_euau3h$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Sequence contains no element matching the predicate.'); - }; - })); - function firstOrNull_20($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - return iterator.next(); - } - var firstOrNull_21 = defineInlineFunction('kotlin.kotlin.sequences.firstOrNull_euau3h$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - return null; - }); - function indexOf_10($receiver, element) { - var tmp$; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (equals(element, item)) - return index; - index = index + 1 | 0; - } - return -1; - } - var indexOfFirst_10 = defineInlineFunction('kotlin.kotlin.sequences.indexOfFirst_euau3h$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, predicate) { - var tmp$; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (predicate(item)) - return index; - index = index + 1 | 0; - } - return -1; - }; - })); - var indexOfLast_10 = defineInlineFunction('kotlin.kotlin.sequences.indexOfLast_euau3h$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, predicate) { - var tmp$; - var lastIndex = -1; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (predicate(item)) - lastIndex = index; - index = index + 1 | 0; - } - return lastIndex; - }; - })); - function last_21($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw new NoSuchElementException('Sequence is empty.'); - var last = iterator.next(); - while (iterator.hasNext()) - last = iterator.next(); - return last; - } - var last_22 = defineInlineFunction('kotlin.kotlin.sequences.last_euau3h$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var last = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - last = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Sequence contains no element matching the predicate.'); - return (tmp$_0 = last) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(); - }; - })); - function lastIndexOf_10($receiver, element) { - var tmp$; - var lastIndex = -1; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - checkIndexOverflow(index); - if (equals(element, item)) - lastIndex = index; - index = index + 1 | 0; - } - return lastIndex; - } - function lastOrNull_21($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var last = iterator.next(); - while (iterator.hasNext()) - last = iterator.next(); - return last; - } - var lastOrNull_22 = defineInlineFunction('kotlin.kotlin.sequences.lastOrNull_euau3h$', function ($receiver, predicate) { - var tmp$; - var last = null; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - last = element; - } - } - return last; - }); - function single_20($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw new NoSuchElementException('Sequence is empty.'); - var single = iterator.next(); - if (iterator.hasNext()) - throw IllegalArgumentException_init_0('Sequence has more than one element.'); - return single; - } - var single_21 = defineInlineFunction('kotlin.kotlin.sequences.single_euau3h$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Sequence contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Sequence contains no element matching the predicate.'); - return (tmp$_0 = single) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(); - }; - })); - function singleOrNull_20($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var single = iterator.next(); - if (iterator.hasNext()) - return null; - return single; - } - var singleOrNull_21 = defineInlineFunction('kotlin.kotlin.sequences.singleOrNull_euau3h$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - function drop_9($receiver, n) { - var tmp$; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - tmp$ = $receiver; - else if (Kotlin.isType($receiver, DropTakeSequence)) - tmp$ = $receiver.drop_za3lpa$(n); - else - tmp$ = new DropSequence($receiver, n); - return tmp$; - } - function dropWhile_9($receiver, predicate) { - return new DropWhileSequence($receiver, predicate); - } - function filter_9($receiver, predicate) { - return new FilteringSequence($receiver, true, predicate); - } - function filterIndexed$lambda(closure$predicate) { - return function (it) { - return closure$predicate(it.index, it.value); - }; - } - function filterIndexed$lambda_0(it) { - return it.value; - } - function filterIndexed_9($receiver, predicate) { - return new TransformingSequence(new FilteringSequence(new IndexingSequence($receiver), true, filterIndexed$lambda(predicate)), filterIndexed$lambda_0); - } - var filterIndexedTo_9 = defineInlineFunction('kotlin.kotlin.sequences.filterIndexedTo_t68vbo$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIsInstance_1 = defineInlineFunction('kotlin.kotlin.sequences.filterIsInstance_1ivc31$', wrapFunction(function () { - var filter = _.kotlin.sequences.filter_euau3h$; - var Sequence = _.kotlin.sequences.Sequence; - var throwCCE = Kotlin.throwCCE; - function filterIsInstance$lambda(typeClosure$R, isR) { - return function (it) { - return isR(it); - }; - } - return function (R_0, isR, $receiver) { - var tmp$; - return Kotlin.isType(tmp$ = filter($receiver, filterIsInstance$lambda(R_0, isR)), Sequence) ? tmp$ : throwCCE(); - }; - })); - var filterIsInstanceTo_1 = defineInlineFunction('kotlin.kotlin.sequences.filterIsInstanceTo_e33yd4$', function (R_0, isR, $receiver, destination) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (isR(element)) - destination.add_11rb$(element); - } - return destination; - }); - function filterNot_9($receiver, predicate) { - return new FilteringSequence($receiver, false, predicate); - } - function filterNotNull$lambda(it) { - return it == null; - } - function filterNotNull_1($receiver) { - var tmp$; - return Kotlin.isType(tmp$ = filterNot_9($receiver, filterNotNull$lambda), Sequence) ? tmp$ : throwCCE_0(); - } - function filterNotNullTo_1($receiver, destination) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (element != null) - destination.add_11rb$(element); - } - return destination; - } - var filterNotTo_9 = defineInlineFunction('kotlin.kotlin.sequences.filterNotTo_zemxx4$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_9 = defineInlineFunction('kotlin.kotlin.sequences.filterTo_zemxx4$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - function take_9($receiver, n) { - var tmp$; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - tmp$ = emptySequence(); - else if (Kotlin.isType($receiver, DropTakeSequence)) - tmp$ = $receiver.take_za3lpa$(n); - else - tmp$ = new TakeSequence($receiver, n); - return tmp$; - } - function takeWhile_9($receiver, predicate) { - return new TakeWhileSequence($receiver, predicate); - } - function sorted$ObjectLiteral(this$sorted) { - this.this$sorted = this$sorted; - } - sorted$ObjectLiteral.prototype.iterator = function () { - var sortedList = toMutableList_10(this.this$sorted); - sort_14(sortedList); - return sortedList.iterator(); - }; - sorted$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function sorted_8($receiver) { - return new sorted$ObjectLiteral($receiver); - } - var sortedBy_9 = defineInlineFunction('kotlin.kotlin.sequences.sortedBy_aht3pn$', wrapFunction(function () { - var sortedWith = _.kotlin.sequences.sortedWith_vjgqpk$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareBy$lambda(selector))); - }; - })); - var sortedByDescending_9 = defineInlineFunction('kotlin.kotlin.sequences.sortedByDescending_aht3pn$', wrapFunction(function () { - var sortedWith = _.kotlin.sequences.sortedWith_vjgqpk$; - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function ($receiver, selector) { - return sortedWith($receiver, new Comparator$ObjectLiteral(compareByDescending$lambda(selector))); - }; - })); - function sortedDescending_8($receiver) { - return sortedWith_9($receiver, reverseOrder()); - } - function sortedWith$ObjectLiteral(this$sortedWith, closure$comparator) { - this.this$sortedWith = this$sortedWith; - this.closure$comparator = closure$comparator; - } - sortedWith$ObjectLiteral.prototype.iterator = function () { - var sortedList = toMutableList_10(this.this$sortedWith); - sortWith_0(sortedList, this.closure$comparator); - return sortedList.iterator(); - }; - sortedWith$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function sortedWith_9($receiver, comparator) { - return new sortedWith$ObjectLiteral($receiver, comparator); - } - var associate_9 = defineInlineFunction('kotlin.kotlin.sequences.associate_ohgugh$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, transform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associateBy_19 = defineInlineFunction('kotlin.kotlin.sequences.associateBy_z5avom$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }; - })); - var associateBy_20 = defineInlineFunction('kotlin.kotlin.sequences.associateBy_rpj48c$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }; - })); - var associateByTo_19 = defineInlineFunction('kotlin.kotlin.sequences.associateByTo_pdrkj5$', function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), element); - } - return destination; - }); - var associateByTo_20 = defineInlineFunction('kotlin.kotlin.sequences.associateByTo_vqogar$', function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(keySelector(element), valueTransform(element)); - } - return destination; - }); - var associateTo_9 = defineInlineFunction('kotlin.kotlin.sequences.associateTo_xiiici$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var pair = transform(element); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }); - var associateWith_0 = defineInlineFunction('kotlin.kotlin.sequences.associateWith_z5avom$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, valueSelector) { - var result = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result.put_xwzc9p$(element, valueSelector(element)); - } - return result; - }; - })); - var associateWithTo_0 = defineInlineFunction('kotlin.kotlin.sequences.associateWithTo_uyy78t$', function ($receiver, destination, valueSelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(element, valueSelector(element)); - } - return destination; - }); - function toCollection_9($receiver, destination) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(item); - } - return destination; - } - function toHashSet_9($receiver) { - return toCollection_9($receiver, HashSet_init()); - } - function toList_10($receiver) { - return optimizeReadOnlyList(toMutableList_10($receiver)); - } - function toMutableList_10($receiver) { - return toCollection_9($receiver, ArrayList_init()); - } - function toSet_9($receiver) { - return optimizeReadOnlySet(toCollection_9($receiver, LinkedHashSet_init_0())); - } - function flatMap$lambda(it) { - return it.iterator(); - } - function flatMap_10($receiver, transform) { - return new FlatteningSequence($receiver, transform, flatMap$lambda); - } - var flatMapTo_10 = defineInlineFunction('kotlin.kotlin.sequences.flatMapTo_skhdnd$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_tj7pfx$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var groupBy_19 = defineInlineFunction('kotlin.kotlin.sequences.groupBy_z5avom$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_20 = defineInlineFunction('kotlin.kotlin.sequences.groupBy_rpj48c$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_19 = defineInlineFunction('kotlin.kotlin.sequences.groupByTo_m5ds0u$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_20 = defineInlineFunction('kotlin.kotlin.sequences.groupByTo_r8laog$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupingBy_1 = defineInlineFunction('kotlin.kotlin.sequences.groupingBy_z5avom$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Grouping = _.kotlin.collections.Grouping; - function groupingBy$ObjectLiteral(this$groupingBy, closure$keySelector) { - this.this$groupingBy = this$groupingBy; - this.closure$keySelector = closure$keySelector; - } - groupingBy$ObjectLiteral.prototype.sourceIterator = function () { - return this.this$groupingBy.iterator(); - }; - groupingBy$ObjectLiteral.prototype.keyOf_11rb$ = function (element) { - return this.closure$keySelector(element); - }; - groupingBy$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Grouping]}; - return function ($receiver, keySelector) { - return new groupingBy$ObjectLiteral($receiver, keySelector); - }; - })); - function map_10($receiver, transform) { - return new TransformingSequence($receiver, transform); - } - function mapIndexed_9($receiver, transform) { - return new TransformingIndexedSequence($receiver, transform); - } - function mapIndexedNotNull_1($receiver, transform) { - return filterNotNull_1(new TransformingIndexedSequence($receiver, transform)); - } - var mapIndexedNotNullTo_1 = defineInlineFunction('kotlin.kotlin.sequences.mapIndexedNotNullTo_eyjglh$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_1; - if ((tmp$_1 = transform(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedTo_9 = defineInlineFunction('kotlin.kotlin.sequences.mapIndexedTo_49r4ke$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item)); - } - return destination; - }; - })); - function mapNotNull_2($receiver, transform) { - return filterNotNull_1(new TransformingSequence($receiver, transform)); - } - var mapNotNullTo_2 = defineInlineFunction('kotlin.kotlin.sequences.mapNotNullTo_u5l3of$', wrapFunction(function () { - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var tmp$_0; - if ((tmp$_0 = transform(element)) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapTo_10 = defineInlineFunction('kotlin.kotlin.sequences.mapTo_kntv26$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - function withIndex_9($receiver) { - return new IndexingSequence($receiver); - } - function distinct$lambda(it) { - return it; - } - function distinct_9($receiver) { - return distinctBy_9($receiver, distinct$lambda); - } - function distinctBy_9($receiver, selector) { - return new DistinctSequence($receiver, selector); - } - function toMutableSet_9($receiver) { - var tmp$; - var set = LinkedHashSet_init_0(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - set.add_11rb$(item); - } - return set; - } - var all_10 = defineInlineFunction('kotlin.kotlin.sequences.all_euau3h$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }); - function any_21($receiver) { - return $receiver.iterator().hasNext(); - } - var any_22 = defineInlineFunction('kotlin.kotlin.sequences.any_euau3h$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }); - function count_22($receiver) { - var tmp$; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - checkCountOverflow((count = count + 1 | 0, count)); - } - return count; - } - var count_23 = defineInlineFunction('kotlin.kotlin.sequences.count_euau3h$', wrapFunction(function () { - var checkCountOverflow = _.kotlin.collections.checkCountOverflow_za3lpa$; - return function ($receiver, predicate) { - var tmp$; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - checkCountOverflow((count = count + 1 | 0, count)); - } - return count; - }; - })); - var fold_9 = defineInlineFunction('kotlin.kotlin.sequences.fold_azbry2$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var foldIndexed_9 = defineInlineFunction('kotlin.kotlin.sequences.foldIndexed_wxmp26$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), accumulator, element); - } - return accumulator; - }; - })); - var forEach_10 = defineInlineFunction('kotlin.kotlin.sequences.forEach_o41pun$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var forEachIndexed_9 = defineInlineFunction('kotlin.kotlin.sequences.forEachIndexed_iyis71$', wrapFunction(function () { - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - action(checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)), item); - } - }; - })); - function max_12($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - if (isNaN_0(max)) - return max; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_0(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_13($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - if (isNaN_1(max)) - return max; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_1(e)) - return e; - if (max < e) - max = e; - } - return max; - } - function max_14($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (Kotlin.compareTo(max, e) < 0) - max = e; - } - return max; - } - var maxBy_10 = defineInlineFunction('kotlin.kotlin.sequences.maxBy_aht3pn$', function ($receiver, selector) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var maxElem = iterator.next(); - if (!iterator.hasNext()) - return maxElem; - var maxValue = selector(maxElem); - do { - var e = iterator.next(); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - while (iterator.hasNext()); - return maxElem; - }); - function maxWith_10($receiver, comparator) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var max = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function min_12($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - if (isNaN_0(min)) - return min; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_0(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_13($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - if (isNaN_1(min)) - return min; - while (iterator.hasNext()) { - var e = iterator.next(); - if (isNaN_1(e)) - return e; - if (min > e) - min = e; - } - return min; - } - function min_14($receiver) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (Kotlin.compareTo(min, e) > 0) - min = e; - } - return min; - } - var minBy_10 = defineInlineFunction('kotlin.kotlin.sequences.minBy_aht3pn$', function ($receiver, selector) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var minElem = iterator.next(); - if (!iterator.hasNext()) - return minElem; - var minValue = selector(minElem); - do { - var e = iterator.next(); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - while (iterator.hasNext()); - return minElem; - }); - function minWith_10($receiver, comparator) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - return null; - var min = iterator.next(); - while (iterator.hasNext()) { - var e = iterator.next(); - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function none_21($receiver) { - return !$receiver.iterator().hasNext(); - } - var none_22 = defineInlineFunction('kotlin.kotlin.sequences.none_euau3h$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }); - function onEach$lambda(closure$action) { - return function (it) { - closure$action(it); - return it; - }; - } - function onEach_1($receiver, action) { - return map_10($receiver, onEach$lambda(action)); - } - var reduce_9 = defineInlineFunction('kotlin.kotlin.sequences.reduce_linb1r$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function ($receiver, operation) { - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw UnsupportedOperationException_init("Empty sequence can't be reduced."); - var accumulator = iterator.next(); - while (iterator.hasNext()) { - accumulator = operation(accumulator, iterator.next()); - } - return accumulator; - }; - })); - var reduceIndexed_9 = defineInlineFunction('kotlin.kotlin.sequences.reduceIndexed_8denzp$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, operation) { - var tmp$; - var iterator = $receiver.iterator(); - if (!iterator.hasNext()) - throw UnsupportedOperationException_init("Empty sequence can't be reduced."); - var index = 1; - var accumulator = iterator.next(); - while (iterator.hasNext()) { - accumulator = operation(checkIndexOverflow((tmp$ = index, index = tmp$ + 1 | 0, tmp$)), accumulator, iterator.next()); - } - return accumulator; - }; - })); - var sumBy_9 = defineInlineFunction('kotlin.kotlin.sequences.sumBy_gvemys$', function ($receiver, selector) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + selector(element) | 0; - } - return sum; - }); - var sumByDouble_9 = defineInlineFunction('kotlin.kotlin.sequences.sumByDouble_b4hqx8$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += selector(element); - } - return sum; - }); - function requireNoNulls$lambda(this$requireNoNulls) { - return function (it) { - if (it == null) { - throw IllegalArgumentException_init_0('null element found in ' + this$requireNoNulls + '.'); - } - return it; - }; - } - function requireNoNulls_2($receiver) { - return map_10($receiver, requireNoNulls$lambda($receiver)); - } - function chunked_1($receiver, size) { - return windowed_1($receiver, size, size, true); - } - function chunked_2($receiver, size, transform) { - return windowed_2($receiver, size, size, true, transform); - } - function minus$ObjectLiteral(this$minus, closure$element) { - this.this$minus = this$minus; - this.closure$element = closure$element; - } - function minus$ObjectLiteral$iterator$lambda(closure$removed, closure$element) { - return function (it) { - if (!closure$removed.v && equals(it, closure$element)) { - closure$removed.v = true; - return false; - } - else - return true; - }; - } - minus$ObjectLiteral.prototype.iterator = function () { - var removed = {v: false}; - return filter_9(this.this$minus, minus$ObjectLiteral$iterator$lambda(removed, this.closure$element)).iterator(); - }; - minus$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function minus_3($receiver, element) { - return new minus$ObjectLiteral($receiver, element); - } - function minus$ObjectLiteral_0(closure$elements, this$minus) { - this.closure$elements = closure$elements; - this.this$minus = this$minus; - } - function minus$ObjectLiteral$iterator$lambda_0(closure$other) { - return function (it) { - return closure$other.contains_11rb$(it); - }; - } - minus$ObjectLiteral_0.prototype.iterator = function () { - var other = toHashSet(this.closure$elements); - return filterNot_9(this.this$minus, minus$ObjectLiteral$iterator$lambda_0(other)).iterator(); - }; - minus$ObjectLiteral_0.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function minus_4($receiver, elements) { - if (elements.length === 0) - return $receiver; - return new minus$ObjectLiteral_0(elements, $receiver); - } - function minus$ObjectLiteral_1(closure$elements, this$minus) { - this.closure$elements = closure$elements; - this.this$minus = this$minus; - } - function minus$ObjectLiteral$iterator$lambda_1(closure$other) { - return function (it) { - return closure$other.contains_11rb$(it); - }; - } - minus$ObjectLiteral_1.prototype.iterator = function () { - var other = convertToSetForSetOperation(this.closure$elements); - if (other.isEmpty()) - return this.this$minus.iterator(); - else - return filterNot_9(this.this$minus, minus$ObjectLiteral$iterator$lambda_1(other)).iterator(); - }; - minus$ObjectLiteral_1.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function minus_5($receiver, elements) { - return new minus$ObjectLiteral_1(elements, $receiver); - } - function minus$ObjectLiteral_2(closure$elements, this$minus) { - this.closure$elements = closure$elements; - this.this$minus = this$minus; - } - function minus$ObjectLiteral$iterator$lambda_2(closure$other) { - return function (it) { - return closure$other.contains_11rb$(it); - }; - } - minus$ObjectLiteral_2.prototype.iterator = function () { - var other = toHashSet_9(this.closure$elements); - if (other.isEmpty()) - return this.this$minus.iterator(); - else - return filterNot_9(this.this$minus, minus$ObjectLiteral$iterator$lambda_2(other)).iterator(); - }; - minus$ObjectLiteral_2.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function minus_6($receiver, elements) { - return new minus$ObjectLiteral_2(elements, $receiver); - } - var minusElement_0 = defineInlineFunction('kotlin.kotlin.sequences.minusElement_9h40j2$', wrapFunction(function () { - var minus = _.kotlin.sequences.minus_9h40j2$; - return function ($receiver, element) { - return minus($receiver, element); - }; - })); - var partition_9 = defineInlineFunction('kotlin.kotlin.sequences.partition_euau3h$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = ArrayList_init(); - var second = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - first.add_11rb$(element); - } - else { - second.add_11rb$(element); - } - } - return new Pair_init(first, second); - }; - })); - function plus_7($receiver, element) { - return flatten_1(sequenceOf([$receiver, sequenceOf([element])])); - } - function plus_8($receiver, elements) { - return plus_9($receiver, asList(elements)); - } - function plus_9($receiver, elements) { - return flatten_1(sequenceOf([$receiver, asSequence_8(elements)])); - } - function plus_10($receiver, elements) { - return flatten_1(sequenceOf([$receiver, elements])); - } - var plusElement_1 = defineInlineFunction('kotlin.kotlin.sequences.plusElement_9h40j2$', wrapFunction(function () { - var plus = _.kotlin.sequences.plus_9h40j2$; - return function ($receiver, element) { - return plus($receiver, element); - }; - })); - function windowed_1($receiver, size, step, partialWindows) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - return windowedSequence_1($receiver, size, step, partialWindows, false); - } - function windowed_2($receiver, size, step, partialWindows, transform) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - return map_10(windowedSequence_1($receiver, size, step, partialWindows, true), transform); - } - function zip$lambda(t1, t2) { - return to(t1, t2); - } - function zip_55($receiver, other) { - return new MergingSequence($receiver, other, zip$lambda); - } - function zip_56($receiver, other, transform) { - return new MergingSequence($receiver, other, transform); - } - function zipWithNext$lambda(a, b) { - return to(a, b); - } - function zipWithNext_1($receiver) { - return zipWithNext_2($receiver, zipWithNext$lambda); - } - function Coroutine$zipWithNext$lambda(this$zipWithNext_0, closure$transform_0, $receiver_0, controller, continuation_0) { - CoroutineImpl.call(this, continuation_0); - this.$controller = controller; - this.exceptionState_0 = 1; - this.local$this$zipWithNext = this$zipWithNext_0; - this.local$closure$transform = closure$transform_0; - this.local$iterator = void 0; - this.local$current = void 0; - this.local$next = void 0; - this.local$$receiver = $receiver_0; - } - Coroutine$zipWithNext$lambda.$metadata$ = {kind: Kotlin.Kind.CLASS, simpleName: null, interfaces: [CoroutineImpl]}; - Coroutine$zipWithNext$lambda.prototype = Object.create(CoroutineImpl.prototype); - Coroutine$zipWithNext$lambda.prototype.constructor = Coroutine$zipWithNext$lambda; - Coroutine$zipWithNext$lambda.prototype.doResume = function () { - do - try { - switch (this.state_0) { - case 0: - this.local$iterator = this.local$this$zipWithNext.iterator(); - if (!this.local$iterator.hasNext()) { - return; - } - else { - this.state_0 = 2; - continue; - } - - case 1: - throw this.exception_0; - case 2: - this.local$current = this.local$iterator.next(); - this.state_0 = 3; - continue; - case 3: - if (!this.local$iterator.hasNext()) { - this.state_0 = 5; - continue; - } - - this.local$next = this.local$iterator.next(); - this.state_0 = 4; - this.result_0 = this.local$$receiver.yield_11rb$(this.local$closure$transform(this.local$current, this.local$next), this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - case 4: - this.local$current = this.local$next; - this.state_0 = 3; - continue; - case 5: - return Unit; - default:this.state_0 = 1; - throw new Error('State Machine Unreachable execution'); - } - } - catch (e) { - if (this.state_0 === 1) { - this.exceptionState_0 = this.state_0; - throw e; - } - else { - this.state_0 = this.exceptionState_0; - this.exception_0 = e; - } - } - while (true); - }; - function zipWithNext$lambda_0(this$zipWithNext_0, closure$transform_0) { - return function ($receiver_0, continuation_0, suspended) { - var instance = new Coroutine$zipWithNext$lambda(this$zipWithNext_0, closure$transform_0, $receiver_0, this, continuation_0); - if (suspended) - return instance; - else - return instance.doResume(null); - }; - } - function zipWithNext_2($receiver, transform) { - return sequence(zipWithNext$lambda_0($receiver, transform)); - } - function joinTo_9($receiver, buffer, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - var tmp$; - buffer.append_gw00v9$(prefix); - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if ((count = count + 1 | 0, count) > 1) - buffer.append_gw00v9$(separator); - if (limit < 0 || count <= limit) { - appendElement_0(buffer, element, transform); - } - else - break; - } - if (limit >= 0 && count > limit) - buffer.append_gw00v9$(truncated); - buffer.append_gw00v9$(postfix); - return buffer; - } - function joinToString_9($receiver, separator, prefix, postfix, limit, truncated, transform) { - if (separator === void 0) - separator = ', '; - if (prefix === void 0) - prefix = ''; - if (postfix === void 0) - postfix = ''; - if (limit === void 0) - limit = -1; - if (truncated === void 0) - truncated = '...'; - if (transform === void 0) - transform = null; - return joinTo_9($receiver, StringBuilder_init_1(), separator, prefix, postfix, limit, truncated, transform).toString(); - } - function asIterable$lambda_8(this$asIterable) { - return function () { - return this$asIterable.iterator(); - }; - } - function asIterable_10($receiver) { - return new Iterable$ObjectLiteral_0(asIterable$lambda_8($receiver)); - } - var asSequence_10 = defineInlineFunction('kotlin.kotlin.sequences.asSequence_veqyi0$', function ($receiver) { - return $receiver; - }); - function average_17($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_18($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_19($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_20($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_21($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function average_22($receiver) { - var tmp$; - var sum = 0.0; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - checkCountOverflow((count = count + 1 | 0, count)); - } - return count === 0 ? kotlin_js_internal_DoubleCompanionObject.NaN : sum / count; - } - function sum_17($receiver) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + element; - } - return sum; - } - function sum_18($receiver) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + element; - } - return sum; - } - function sum_19($receiver) { - var tmp$; - var sum = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum + element | 0; - } - return sum; - } - function sum_20($receiver) { - var tmp$; - var sum = L0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = sum.add(element); - } - return sum; - } - function sum_21($receiver) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - } - return sum; - } - function sum_22($receiver) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += element; - } - return sum; - } - function minus_7($receiver, element) { - var result = LinkedHashSet_init_3(mapCapacity($receiver.size)); - var removed = {v: false}; - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element_0 = tmp$.next(); - var predicate$result; - if (!removed.v && equals(element_0, element)) { - removed.v = true; - predicate$result = false; - } - else { - predicate$result = true; - } - if (predicate$result) - result.add_11rb$(element_0); - } - return result; - } - function minus_8($receiver, elements) { - var result = LinkedHashSet_init_1($receiver); - removeAll_4(result, elements); - return result; - } - function minus_9($receiver, elements) { - var other = convertToSetForSetOperationWith(elements, $receiver); - if (other.isEmpty()) - return toSet_8($receiver); - if (Kotlin.isType(other, Set)) { - var destination = LinkedHashSet_init_0(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!other.contains_11rb$(element)) - destination.add_11rb$(element); - } - return destination; - } - var result = LinkedHashSet_init_1($receiver); - result.removeAll_brywnq$(other); - return result; - } - function minus_10($receiver, elements) { - var result = LinkedHashSet_init_1($receiver); - removeAll_3(result, elements); - return result; - } - var minusElement_1 = defineInlineFunction('kotlin.kotlin.collections.minusElement_xfiyik$', wrapFunction(function () { - var minus = _.kotlin.collections.minus_xfiyik$; - return function ($receiver, element) { - return minus($receiver, element); - }; - })); - function plus_11($receiver, element) { - var result = LinkedHashSet_init_3(mapCapacity($receiver.size + 1 | 0)); - result.addAll_brywnq$($receiver); - result.add_11rb$(element); - return result; - } - function plus_12($receiver, elements) { - var result = LinkedHashSet_init_3(mapCapacity($receiver.size + elements.length | 0)); - result.addAll_brywnq$($receiver); - addAll_1(result, elements); - return result; - } - function plus_13($receiver, elements) { - var tmp$, tmp$_0; - var result = LinkedHashSet_init_3(mapCapacity((tmp$_0 = (tmp$ = collectionSizeOrNull(elements)) != null ? $receiver.size + tmp$ | 0 : null) != null ? tmp$_0 : $receiver.size * 2 | 0)); - result.addAll_brywnq$($receiver); - addAll(result, elements); - return result; - } - function plus_14($receiver, elements) { - var result = LinkedHashSet_init_3(mapCapacity($receiver.size * 2 | 0)); - result.addAll_brywnq$($receiver); - addAll_0(result, elements); - return result; - } - var plusElement_2 = defineInlineFunction('kotlin.kotlin.collections.plusElement_xfiyik$', wrapFunction(function () { - var plus = _.kotlin.collections.plus_xfiyik$; - return function ($receiver, element) { - return plus($receiver, element); - }; - })); - function Iterable$ObjectLiteral_1(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Iterable$ObjectLiteral_1.prototype.iterator = function () { - return this.closure$iterator(); - }; - Iterable$ObjectLiteral_1.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterable]}; - function Sequence$ObjectLiteral_1(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral_1.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral_1.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - var elementAtOrElse_11 = defineInlineFunction('kotlin.kotlin.text.elementAtOrElse_qdauc8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver.charCodeAt(index) : unboxChar(defaultValue(index)); - }; - })); - var elementAtOrNull_11 = defineInlineFunction('kotlin.kotlin.text.elementAtOrNull_94bcnn$', wrapFunction(function () { - var getOrNull = _.kotlin.text.getOrNull_94bcnn$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var find_10 = defineInlineFunction('kotlin.kotlin.text.find_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }; - })); - var findLast_11 = defineInlineFunction('kotlin.kotlin.text.findLast_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.charCodeAt(index); - if (predicate(toBoxedChar(element))) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - function first_22($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Char sequence is empty.'); - return $receiver.charCodeAt(0); - } - var first_23 = defineInlineFunction('kotlin.kotlin.text.first_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) - return element; - } - throw new NoSuchElementException_init('Char sequence contains no character matching the predicate.'); - }; - })); - function firstOrNull_22($receiver) { - return $receiver.length === 0 ? null : $receiver.charCodeAt(0); - } - var firstOrNull_23 = defineInlineFunction('kotlin.kotlin.text.firstOrNull_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) - return element; - } - return null; - }; - })); - var getOrElse_9 = defineInlineFunction('kotlin.kotlin.text.getOrElse_qdauc8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, index, defaultValue) { - return index >= 0 && index <= get_lastIndex($receiver) ? $receiver.charCodeAt(index) : unboxChar(defaultValue(index)); - }; - })); - function getOrNull_9($receiver, index) { - return index >= 0 && index <= get_lastIndex_13($receiver) ? $receiver.charCodeAt(index) : null; - } - var indexOfFirst_11 = defineInlineFunction('kotlin.kotlin.text.indexOfFirst_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) { - if (predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return index; - } - } - return -1; - }; - })); - var indexOfLast_11 = defineInlineFunction('kotlin.kotlin.text.indexOfLast_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return index; - } - } - return -1; - }; - })); - function last_23($receiver) { - if ($receiver.length === 0) - throw new NoSuchElementException('Char sequence is empty.'); - return $receiver.charCodeAt(get_lastIndex_13($receiver)); - } - var last_24 = defineInlineFunction('kotlin.kotlin.text.last_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.charCodeAt(index); - if (predicate(toBoxedChar(element))) - return element; - } - throw new NoSuchElementException_init('Char sequence contains no character matching the predicate.'); - }; - })); - function lastOrNull_23($receiver) { - return $receiver.length === 0 ? null : $receiver.charCodeAt($receiver.length - 1 | 0); - } - var lastOrNull_24 = defineInlineFunction('kotlin.kotlin.text.lastOrNull_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.charCodeAt(index); - if (predicate(toBoxedChar(element))) - return element; - } - return null; - }; - })); - var random_25 = defineInlineFunction('kotlin.kotlin.text.random_gw00vp$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.text.random_kewcp8$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - function random_26($receiver, random) { - if ($receiver.length === 0) - throw new NoSuchElementException('Char sequence is empty.'); - return $receiver.charCodeAt(random.nextInt_za3lpa$($receiver.length)); - } - function single_22($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - throw new NoSuchElementException('Char sequence is empty.'); - case 1: - tmp$ = $receiver.charCodeAt(0); - break; - default:throw IllegalArgumentException_init_0('Char sequence has more than one element.'); - } - return tmp$; - } - var single_23 = defineInlineFunction('kotlin.kotlin.text.single_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var unboxChar = Kotlin.unboxChar; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) { - if (found) - throw IllegalArgumentException_init('Char sequence contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Char sequence contains no character matching the predicate.'); - return unboxChar(Kotlin.isChar(tmp$_0 = toBoxedChar(single)) ? tmp$_0 : throwCCE()); - }; - })); - function singleOrNull_22($receiver) { - return $receiver.length === 1 ? $receiver.charCodeAt(0) : null; - } - var singleOrNull_23 = defineInlineFunction('kotlin.kotlin.text.singleOrNull_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }; - })); - function drop_10($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return Kotlin.subSequence($receiver, coerceAtMost_2(n, $receiver.length), $receiver.length); - } - function drop_11($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return $receiver.substring(coerceAtMost_2(n, $receiver.length)); - } - function dropLast_9($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_10($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - function dropLast_10($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_11($receiver, coerceAtLeast_2($receiver.length - n | 0, 0)); - } - var dropLastWhile_9 = defineInlineFunction('kotlin.kotlin.text.dropLastWhile_2pivbd$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) - return Kotlin.subSequence($receiver, 0, index + 1 | 0); - return ''; - }; - })); - var dropLastWhile_10 = defineInlineFunction('kotlin.kotlin.text.dropLastWhile_ouje1d$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return $receiver.substring(0, index + 1 | 0); - } - return ''; - }; - })); - var dropWhile_10 = defineInlineFunction('kotlin.kotlin.text.dropWhile_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) - return Kotlin.subSequence($receiver, index, $receiver.length); - return ''; - }; - })); - var dropWhile_11 = defineInlineFunction('kotlin.kotlin.text.dropWhile_ouje1d$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return $receiver.substring(index); - } - return ''; - }; - })); - var filter_10 = defineInlineFunction('kotlin.kotlin.text.filter_2pivbd$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var destination = StringBuilder_init(); - var tmp$; - tmp$ = $receiver.length; - for (var index = 0; index < tmp$; index++) { - var element = $receiver.charCodeAt(index); - if (predicate(toBoxedChar(element))) - destination.append_s8itvh$(element); - } - return destination; - }; - })); - var filter_11 = defineInlineFunction('kotlin.kotlin.text.filter_ouje1d$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var destination = StringBuilder_init(); - var tmp$; - tmp$ = $receiver.length; - for (var index = 0; index < tmp$; index++) { - var element = $receiver.charCodeAt(index); - if (predicate(toBoxedChar(element))) - destination.append_s8itvh$(element); - } - return destination.toString(); - }; - })); - var filterIndexed_10 = defineInlineFunction('kotlin.kotlin.text.filterIndexed_3xan9v$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var destination = StringBuilder_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - var index_0 = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var element = toBoxedChar(item); - if (predicate(index_0, element)) - destination.append_s8itvh$(unboxChar(element)); - } - return destination; - }; - })); - var filterIndexed_11 = defineInlineFunction('kotlin.kotlin.text.filterIndexed_4cgdv1$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var destination = StringBuilder_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - var index_0 = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var element = toBoxedChar(item); - if (predicate(index_0, element)) - destination.append_s8itvh$(unboxChar(element)); - } - return destination.toString(); - }; - })); - var filterIndexedTo_10 = defineInlineFunction('kotlin.kotlin.text.filterIndexedTo_2omorh$', wrapFunction(function () { - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - var index_0 = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var element = toBoxedChar(item); - if (predicate(index_0, element)) - destination.append_s8itvh$(unboxChar(element)); - } - return destination; - }; - })); - var filterNot_10 = defineInlineFunction('kotlin.kotlin.text.filterNot_2pivbd$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var destination = StringBuilder_init(); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (!predicate(toBoxedChar(element))) - destination.append_s8itvh$(element); - } - return destination; - }; - })); - var filterNot_11 = defineInlineFunction('kotlin.kotlin.text.filterNot_ouje1d$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var destination = StringBuilder_init(); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (!predicate(toBoxedChar(element))) - destination.append_s8itvh$(element); - } - return destination.toString(); - }; - })); - var filterNotTo_10 = defineInlineFunction('kotlin.kotlin.text.filterNotTo_2vcf41$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, predicate) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (!predicate(toBoxedChar(element))) - destination.append_s8itvh$(element); - } - return destination; - }; - })); - var filterTo_10 = defineInlineFunction('kotlin.kotlin.text.filterTo_2vcf41$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.length; - for (var index = 0; index < tmp$; index++) { - var element = $receiver.charCodeAt(index); - if (predicate(toBoxedChar(element))) - destination.append_s8itvh$(element); - } - return destination; - }; - })); - function slice_19($receiver, indices) { - if (indices.isEmpty()) - return ''; - return subSequence_0($receiver, indices); - } - function slice_20($receiver, indices) { - if (indices.isEmpty()) - return ''; - return substring_1($receiver, indices); - } - function slice_21($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return ''; - var result = StringBuilder_init(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var i = tmp$.next(); - result.append_s8itvh$($receiver.charCodeAt(i)); - } - return result; - } - var slice_22 = defineInlineFunction('kotlin.kotlin.text.slice_djwhei$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var slice = _.kotlin.text.slice_ymrxhc$; - return function ($receiver, indices) { - var tmp$; - return slice(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(), indices).toString(); - }; - })); - function take_10($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return Kotlin.subSequence($receiver, 0, coerceAtMost_2(n, $receiver.length)); - } - function take_11($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return $receiver.substring(0, coerceAtMost_2(n, $receiver.length)); - } - function takeLast_9($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var length = $receiver.length; - return Kotlin.subSequence($receiver, length - coerceAtMost_2(n, length) | 0, length); - } - function takeLast_10($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested character count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var length = $receiver.length; - return $receiver.substring(length - coerceAtMost_2(n, length) | 0); - } - var takeLastWhile_9 = defineInlineFunction('kotlin.kotlin.text.takeLastWhile_2pivbd$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return Kotlin.subSequence($receiver, index + 1 | 0, $receiver.length); - } - } - return Kotlin.subSequence($receiver, 0, $receiver.length); - }; - })); - var takeLastWhile_10 = defineInlineFunction('kotlin.kotlin.text.takeLastWhile_ouje1d$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver); index >= 0; index--) { - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return $receiver.substring(index + 1 | 0); - } - } - return $receiver; - }; - })); - var takeWhile_10 = defineInlineFunction('kotlin.kotlin.text.takeWhile_2pivbd$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.length; - for (var index = 0; index < tmp$; index++) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return Kotlin.subSequence($receiver, 0, index); - } - return Kotlin.subSequence($receiver, 0, $receiver.length); - }; - })); - var takeWhile_11 = defineInlineFunction('kotlin.kotlin.text.takeWhile_ouje1d$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.length; - for (var index = 0; index < tmp$; index++) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) { - return $receiver.substring(0, index); - } - return $receiver; - }; - })); - function reversed_12($receiver) { - return StringBuilder_init_0($receiver).reverse(); - } - var reversed_13 = defineInlineFunction('kotlin.kotlin.text.reversed_pdl1vz$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var reversed = _.kotlin.text.reversed_gw00vp$; - return function ($receiver) { - var tmp$; - return reversed(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE()).toString(); - }; - })); - var associate_10 = defineInlineFunction('kotlin.kotlin.text.associate_b3xl1f$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var pair = transform(toBoxedChar(element)); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associateBy_21 = defineInlineFunction('kotlin.kotlin.text.associateBy_16h5q4$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), toBoxedChar(element)); - } - return destination; - }; - })); - var associateBy_22 = defineInlineFunction('kotlin.kotlin.text.associateBy_m7aj6v$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector, valueTransform) { - var capacity = coerceAtLeast(mapCapacity($receiver.length), 16); - var destination = LinkedHashMap_init(capacity); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var associateByTo_21 = defineInlineFunction('kotlin.kotlin.text.associateByTo_lm6k0r$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), toBoxedChar(element)); - } - return destination; - }; - })); - var associateByTo_22 = defineInlineFunction('kotlin.kotlin.text.associateByTo_woixqq$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - destination.put_xwzc9p$(keySelector(toBoxedChar(element)), valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var associateTo_10 = defineInlineFunction('kotlin.kotlin.text.associateTo_1pzh9q$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var pair = transform(toBoxedChar(element)); - destination.put_xwzc9p$(pair.first, pair.second); - } - return destination; - }; - })); - var associateWith_1 = defineInlineFunction('kotlin.kotlin.text.associateWith_16h5q4$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var coerceAtLeast = _.kotlin.ranges.coerceAtLeast_dqglrj$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, valueSelector) { - var result = LinkedHashMap_init(coerceAtLeast(mapCapacity($receiver.length), 16)); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - result.put_xwzc9p$(toBoxedChar(element), valueSelector(toBoxedChar(element))); - } - return result; - }; - })); - var associateWithTo_1 = defineInlineFunction('kotlin.kotlin.text.associateWithTo_dykjl$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, valueSelector) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - destination.put_xwzc9p$(toBoxedChar(element), valueSelector(toBoxedChar(element))); - } - return destination; - }; - })); - function toCollection_10($receiver, destination) { - var tmp$; - tmp$ = iterator_4($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - destination.add_11rb$(toBoxedChar(item)); - } - return destination; - } - function toHashSet_10($receiver) { - return toCollection_10($receiver, HashSet_init_2(mapCapacity($receiver.length))); - } - function toList_11($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptyList(); - break; - case 1: - tmp$ = listOf(toBoxedChar($receiver.charCodeAt(0))); - break; - default:tmp$ = toMutableList_11($receiver); - break; - } - return tmp$; - } - function toMutableList_11($receiver) { - return toCollection_10($receiver, ArrayList_init_0($receiver.length)); - } - function toSet_10($receiver) { - var tmp$; - switch ($receiver.length) { - case 0: - tmp$ = emptySet(); - break; - case 1: - tmp$ = setOf(toBoxedChar($receiver.charCodeAt(0))); - break; - default:tmp$ = toCollection_10($receiver, LinkedHashSet_init_3(mapCapacity($receiver.length))); - break; - } - return tmp$; - } - var flatMap_11 = defineInlineFunction('kotlin.kotlin.text.flatMap_83nucd$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var addAll = _.kotlin.collections.addAll_ipc267$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var list = transform(toBoxedChar(element)); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_11 = defineInlineFunction('kotlin.kotlin.text.flatMapTo_kg2lzy$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var addAll = _.kotlin.collections.addAll_ipc267$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var list = transform(toBoxedChar(element)); - addAll(destination, list); - } - return destination; - }; - })); - var groupBy_21 = defineInlineFunction('kotlin.kotlin.text.groupBy_16h5q4$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - var groupBy_22 = defineInlineFunction('kotlin.kotlin.text.groupBy_m7aj6v$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var groupByTo_21 = defineInlineFunction('kotlin.kotlin.text.groupByTo_mntg7c$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(toBoxedChar(element)); - } - return destination; - }; - })); - var groupByTo_22 = defineInlineFunction('kotlin.kotlin.text.groupByTo_dgnza9$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var key = keySelector(toBoxedChar(element)); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(toBoxedChar(element))); - } - return destination; - }; - })); - var groupingBy_2 = defineInlineFunction('kotlin.kotlin.text.groupingBy_16h5q4$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Grouping = _.kotlin.collections.Grouping; - function groupingBy$ObjectLiteral(this$groupingBy, closure$keySelector) { - this.this$groupingBy = this$groupingBy; - this.closure$keySelector = closure$keySelector; - } - groupingBy$ObjectLiteral.prototype.sourceIterator = function () { - return iterator(this.this$groupingBy); - }; - groupingBy$ObjectLiteral.prototype.keyOf_11rb$ = function (element) { - return this.closure$keySelector(toBoxedChar(element)); - }; - groupingBy$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Grouping]}; - return function ($receiver, keySelector) { - return new groupingBy$ObjectLiteral($receiver, keySelector); - }; - })); - var map_11 = defineInlineFunction('kotlin.kotlin.text.map_16h5q4$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - destination.add_11rb$(transform(toBoxedChar(item))); - } - return destination; - }; - })); - var mapIndexed_10 = defineInlineFunction('kotlin.kotlin.text.mapIndexed_bnyqco$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.length); - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item))); - } - return destination; - }; - })); - var mapIndexedNotNull_2 = defineInlineFunction('kotlin.kotlin.text.mapIndexedNotNull_iqd6dn$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - var tmp$_1; - if ((tmp$_1 = transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item))) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedNotNullTo_2 = defineInlineFunction('kotlin.kotlin.text.mapIndexedNotNullTo_cynlyo$', wrapFunction(function () { - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - var tmp$_1; - if ((tmp$_1 = transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item))) != null) { - destination.add_11rb$(tmp$_1); - } - } - return destination; - }; - })); - var mapIndexedTo_10 = defineInlineFunction('kotlin.kotlin.text.mapIndexedTo_4f8103$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item))); - } - return destination; - }; - })); - var mapNotNull_3 = defineInlineFunction('kotlin.kotlin.text.mapNotNull_10i1d3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var tmp$_0; - if ((tmp$_0 = transform(toBoxedChar(element))) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapNotNullTo_3 = defineInlineFunction('kotlin.kotlin.text.mapNotNullTo_jcwsr8$', wrapFunction(function () { - var unboxChar = Kotlin.unboxChar; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - var tmp$_0; - if ((tmp$_0 = transform(toBoxedChar(element))) != null) { - destination.add_11rb$(tmp$_0); - } - } - return destination; - }; - })); - var mapTo_11 = defineInlineFunction('kotlin.kotlin.text.mapTo_wrnknd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - destination.add_11rb$(transform(toBoxedChar(item))); - } - return destination; - }; - })); - function withIndex$lambda_9(this$withIndex) { - return function () { - return iterator_4(this$withIndex); - }; - } - function withIndex_10($receiver) { - return new IndexingIterable(withIndex$lambda_9($receiver)); - } - var all_11 = defineInlineFunction('kotlin.kotlin.text.all_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (!predicate(toBoxedChar(element))) - return false; - } - return true; - }; - })); - function any_23($receiver) { - return !($receiver.length === 0); - } - var any_24 = defineInlineFunction('kotlin.kotlin.text.any_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) - return true; - } - return false; - }; - })); - var count_24 = defineInlineFunction('kotlin.kotlin.text.count_gw00vp$', function ($receiver) { - return $receiver.length; - }); - var count_25 = defineInlineFunction('kotlin.kotlin.text.count_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - var count = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) - count = count + 1 | 0; - } - return count; - }; - })); - var fold_10 = defineInlineFunction('kotlin.kotlin.text.fold_riyz04$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - accumulator = operation(accumulator, toBoxedChar(element)); - } - return accumulator; - }; - })); - var foldIndexed_10 = defineInlineFunction('kotlin.kotlin.text.foldIndexed_l9i73k$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, toBoxedChar(element)); - } - return accumulator; - }; - })); - var foldRight_9 = defineInlineFunction('kotlin.kotlin.text.foldRight_xy5j5e$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(toBoxedChar($receiver.charCodeAt((tmp$ = index, index = tmp$ - 1 | 0, tmp$))), accumulator); - } - return accumulator; - }; - })); - var foldRightIndexed_9 = defineInlineFunction('kotlin.kotlin.text.foldRightIndexed_bpin9y$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, toBoxedChar($receiver.charCodeAt(index)), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var forEach_11 = defineInlineFunction('kotlin.kotlin.text.forEach_57f55l$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, action) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - action(toBoxedChar(element)); - } - }; - })); - var forEachIndexed_10 = defineInlineFunction('kotlin.kotlin.text.forEachIndexed_q254al$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var item = unboxChar(tmp$.next()); - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), toBoxedChar(item)); - } - }; - })); - function max_15($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver.charCodeAt(0); - tmp$ = get_lastIndex_13($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.charCodeAt(i); - if (max < e) - max = e; - } - return max; - } - var maxBy_11 = defineInlineFunction('kotlin.kotlin.text.maxBy_lwkw4q$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var maxElem = $receiver.charCodeAt(0); - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(toBoxedChar(maxElem)); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.charCodeAt(i); - var v = selector(toBoxedChar(e)); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - function maxWith_11($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var max = $receiver.charCodeAt(0); - tmp$ = get_lastIndex_13($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.charCodeAt(i); - if (comparator.compare(toBoxedChar(max), toBoxedChar(e)) < 0) - max = e; - } - return max; - } - function min_15($receiver) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver.charCodeAt(0); - tmp$ = get_lastIndex_13($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.charCodeAt(i); - if (min > e) - min = e; - } - return min; - } - var minBy_11 = defineInlineFunction('kotlin.kotlin.text.minBy_lwkw4q$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, selector) { - if ($receiver.length === 0) - return null; - var minElem = $receiver.charCodeAt(0); - var lastIndex = get_lastIndex($receiver); - if (lastIndex === 0) - return minElem; - var minValue = selector(toBoxedChar(minElem)); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.charCodeAt(i); - var v = selector(toBoxedChar(e)); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - function minWith_11($receiver, comparator) { - var tmp$; - if ($receiver.length === 0) - return null; - var min = $receiver.charCodeAt(0); - tmp$ = get_lastIndex_13($receiver); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.charCodeAt(i); - if (comparator.compare(toBoxedChar(min), toBoxedChar(e)) > 0) - min = e; - } - return min; - } - function none_23($receiver) { - return $receiver.length === 0; - } - var none_24 = defineInlineFunction('kotlin.kotlin.text.none_2pivbd$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) - return false; - } - return true; - }; - })); - var onEach_2 = defineInlineFunction('kotlin.kotlin.text.onEach_jdhw1f$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, action) { - var tmp$; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - action(toBoxedChar(element)); - } - return $receiver; - }; - })); - var reduce_10 = defineInlineFunction('kotlin.kotlin.text.reduce_bc19pa$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty char sequence can't be reduced."); - var accumulator = $receiver.charCodeAt(0); - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = unboxChar(operation(toBoxedChar(accumulator), toBoxedChar($receiver.charCodeAt(index)))); - } - return accumulator; - }; - })); - var reduceIndexed_10 = defineInlineFunction('kotlin.kotlin.text.reduceIndexed_8uyn22$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$; - if ($receiver.length === 0) - throw UnsupportedOperationException_init("Empty char sequence can't be reduced."); - var accumulator = $receiver.charCodeAt(0); - tmp$ = get_lastIndex($receiver); - for (var index = 1; index <= tmp$; index++) { - accumulator = unboxChar(operation(index, toBoxedChar(accumulator), toBoxedChar($receiver.charCodeAt(index)))); - } - return accumulator; - }; - })); - var reduceRight_9 = defineInlineFunction('kotlin.kotlin.text.reduceRight_bc19pa$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty char sequence can't be reduced."); - var accumulator = $receiver.charCodeAt((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = unboxChar(operation(toBoxedChar($receiver.charCodeAt((tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0))), toBoxedChar(accumulator))); - } - return accumulator; - }; - })); - var reduceRightIndexed_9 = defineInlineFunction('kotlin.kotlin.text.reduceRightIndexed_8uyn22$', wrapFunction(function () { - var get_lastIndex = _.kotlin.text.get_lastIndex_gw00vp$; - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver); - if (index < 0) - throw UnsupportedOperationException_init("Empty char sequence can't be reduced."); - var accumulator = $receiver.charCodeAt((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = unboxChar(operation(index, toBoxedChar($receiver.charCodeAt(index)), toBoxedChar(accumulator))); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var sumBy_10 = defineInlineFunction('kotlin.kotlin.text.sumBy_kg4n8i$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, selector) { - var tmp$; - var sum = 0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - sum = sum + selector(toBoxedChar(element)) | 0; - } - return sum; - }; - })); - var sumByDouble_10 = defineInlineFunction('kotlin.kotlin.text.sumByDouble_4bpanu$', wrapFunction(function () { - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - return function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - sum += selector(toBoxedChar(element)); - } - return sum; - }; - })); - function chunked_3($receiver, size) { - return windowed_3($receiver, size, size, true); - } - function chunked_4($receiver, size, transform) { - return windowed_4($receiver, size, size, true, transform); - } - function chunkedSequence$lambda(it) { - return it.toString(); - } - function chunkedSequence($receiver, size) { - return chunkedSequence_0($receiver, size, chunkedSequence$lambda); - } - function chunkedSequence_0($receiver, size, transform) { - return windowedSequence_0($receiver, size, size, true, transform); - } - var partition_10 = defineInlineFunction('kotlin.kotlin.text.partition_2pivbd$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = StringBuilder_init(); - var second = StringBuilder_init(); - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) { - first.append_s8itvh$(element); - } - else { - second.append_s8itvh$(element); - } - } - return new Pair_init(first, second); - }; - })); - var partition_11 = defineInlineFunction('kotlin.kotlin.text.partition_ouje1d$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - var iterator = _.kotlin.text.iterator_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - var unboxChar = Kotlin.unboxChar; - var Pair_init = _.kotlin.Pair; - return function ($receiver, predicate) { - var tmp$; - var first = StringBuilder_init(); - var second = StringBuilder_init(); - tmp$ = iterator($receiver); - while (tmp$.hasNext()) { - var element = unboxChar(tmp$.next()); - if (predicate(toBoxedChar(element))) { - first.append_s8itvh$(element); - } - else { - second.append_s8itvh$(element); - } - } - return new Pair_init(first.toString(), second.toString()); - }; - })); - function windowed$lambda(it) { - return it.toString(); - } - function windowed_3($receiver, size, step, partialWindows) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - return windowed_4($receiver, size, step, partialWindows, windowed$lambda); - } - function windowed_4($receiver, size, step, partialWindows, transform) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - var tmp$; - checkWindowSizeStep(size, step); - var thisSize = $receiver.length; - var result = ArrayList_init_0((thisSize + step - 1 | 0) / step | 0); - var index = 0; - while (index < thisSize) { - var end = index + size | 0; - if (end > thisSize) { - if (partialWindows) - tmp$ = thisSize; - else - break; - } - else - tmp$ = end; - var coercedEnd = tmp$; - result.add_11rb$(transform(Kotlin.subSequence($receiver, index, coercedEnd))); - index = index + step | 0; - } - return result; - } - function windowedSequence$lambda(it) { - return it.toString(); - } - function windowedSequence($receiver, size, step, partialWindows) { - if (step === void 0) - step = 1; - if (partialWindows === void 0) - partialWindows = false; - return windowedSequence_0($receiver, size, step, partialWindows, windowedSequence$lambda); - } - function windowedSequence$lambda_0(closure$transform, closure$size, this$windowedSequence) { - return function (index) { - return closure$transform(Kotlin.subSequence(this$windowedSequence, index, coerceAtMost_2(index + closure$size | 0, this$windowedSequence.length))); - }; - } - function windowedSequence_0($receiver, size, step_0, partialWindows, transform) { - if (step_0 === void 0) - step_0 = 1; - if (partialWindows === void 0) - partialWindows = false; - checkWindowSizeStep(size, step_0); - var windows = step(partialWindows ? get_indices_13($receiver) : until_4(0, $receiver.length - size + 1 | 0), step_0); - return map_10(asSequence_8(windows), windowedSequence$lambda_0(transform, size, $receiver)); - } - function zip_57($receiver, other) { - var length = Math_0.min($receiver.length, other.length); - var list = ArrayList_init_0(length); - for (var i = 0; i < length; i++) { - list.add_11rb$(to(toBoxedChar($receiver.charCodeAt(i)), toBoxedChar(other.charCodeAt(i)))); - } - return list; - } - var zip_58 = defineInlineFunction('kotlin.kotlin.text.zip_tac5w1$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - var Math_0 = Math; - return function ($receiver, other, transform) { - var length = Math_0.min($receiver.length, other.length); - var list = ArrayList_init(length); - for (var i = 0; i < length; i++) { - list.add_11rb$(transform(toBoxedChar($receiver.charCodeAt(i)), toBoxedChar(other.charCodeAt(i)))); - } - return list; - }; - })); - function zipWithNext_3($receiver) { - var zipWithNext$result; - zipWithNext$break: do { - var size = $receiver.length - 1 | 0; - if (size < 1) { - zipWithNext$result = emptyList(); - break zipWithNext$break; - } - var result = ArrayList_init_0(size); - for (var index = 0; index < size; index++) { - result.add_11rb$(to(toBoxedChar($receiver.charCodeAt(index)), toBoxedChar($receiver.charCodeAt(index + 1 | 0)))); - } - zipWithNext$result = result; - } - while (false); - return zipWithNext$result; - } - var zipWithNext_4 = defineInlineFunction('kotlin.kotlin.text.zipWithNext_hf4kax$', wrapFunction(function () { - var emptyList = _.kotlin.collections.emptyList_287e2$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, transform) { - var size = $receiver.length - 1 | 0; - if (size < 1) - return emptyList(); - var result = ArrayList_init(size); - for (var index = 0; index < size; index++) { - result.add_11rb$(transform(toBoxedChar($receiver.charCodeAt(index)), toBoxedChar($receiver.charCodeAt(index + 1 | 0)))); - } - return result; - }; - })); - function asIterable$lambda_9(this$asIterable) { - return function () { - return iterator_4(this$asIterable); - }; - } - function asIterable_11($receiver) { - var tmp$ = typeof $receiver === 'string'; - if (tmp$) { - tmp$ = $receiver.length === 0; - } - if (tmp$) - return emptyList(); - return new Iterable$ObjectLiteral_1(asIterable$lambda_9($receiver)); - } - function asSequence$lambda_9(this$asSequence) { - return function () { - return iterator_4(this$asSequence); - }; - } - function asSequence_11($receiver) { - var tmp$ = typeof $receiver === 'string'; - if (tmp$) { - tmp$ = $receiver.length === 0; - } - if (tmp$) - return emptySequence(); - return new Sequence$ObjectLiteral_1(asSequence$lambda_9($receiver)); - } - function UByteArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - function UIntArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - function ULongArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - function UShortArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - var component1_9 = defineInlineFunction('kotlin.kotlin.collections.component1_9hsmwz$', function ($receiver) { - return $receiver.get_za3lpa$(0); - }); - var component1_10 = defineInlineFunction('kotlin.kotlin.collections.component1_rnn80q$', function ($receiver) { - return $receiver.get_za3lpa$(0); - }); - var component1_11 = defineInlineFunction('kotlin.kotlin.collections.component1_o5f02i$', function ($receiver) { - return $receiver.get_za3lpa$(0); - }); - var component1_12 = defineInlineFunction('kotlin.kotlin.collections.component1_k4ndbq$', function ($receiver) { - return $receiver.get_za3lpa$(0); - }); - var component2_9 = defineInlineFunction('kotlin.kotlin.collections.component2_9hsmwz$', function ($receiver) { - return $receiver.get_za3lpa$(1); - }); - var component2_10 = defineInlineFunction('kotlin.kotlin.collections.component2_rnn80q$', function ($receiver) { - return $receiver.get_za3lpa$(1); - }); - var component2_11 = defineInlineFunction('kotlin.kotlin.collections.component2_o5f02i$', function ($receiver) { - return $receiver.get_za3lpa$(1); - }); - var component2_12 = defineInlineFunction('kotlin.kotlin.collections.component2_k4ndbq$', function ($receiver) { - return $receiver.get_za3lpa$(1); - }); - var component3_9 = defineInlineFunction('kotlin.kotlin.collections.component3_9hsmwz$', function ($receiver) { - return $receiver.get_za3lpa$(2); - }); - var component3_10 = defineInlineFunction('kotlin.kotlin.collections.component3_rnn80q$', function ($receiver) { - return $receiver.get_za3lpa$(2); - }); - var component3_11 = defineInlineFunction('kotlin.kotlin.collections.component3_o5f02i$', function ($receiver) { - return $receiver.get_za3lpa$(2); - }); - var component3_12 = defineInlineFunction('kotlin.kotlin.collections.component3_k4ndbq$', function ($receiver) { - return $receiver.get_za3lpa$(2); - }); - var component4_9 = defineInlineFunction('kotlin.kotlin.collections.component4_9hsmwz$', function ($receiver) { - return $receiver.get_za3lpa$(3); - }); - var component4_10 = defineInlineFunction('kotlin.kotlin.collections.component4_rnn80q$', function ($receiver) { - return $receiver.get_za3lpa$(3); - }); - var component4_11 = defineInlineFunction('kotlin.kotlin.collections.component4_o5f02i$', function ($receiver) { - return $receiver.get_za3lpa$(3); - }); - var component4_12 = defineInlineFunction('kotlin.kotlin.collections.component4_k4ndbq$', function ($receiver) { - return $receiver.get_za3lpa$(3); - }); - var component5_9 = defineInlineFunction('kotlin.kotlin.collections.component5_9hsmwz$', function ($receiver) { - return $receiver.get_za3lpa$(4); - }); - var component5_10 = defineInlineFunction('kotlin.kotlin.collections.component5_rnn80q$', function ($receiver) { - return $receiver.get_za3lpa$(4); - }); - var component5_11 = defineInlineFunction('kotlin.kotlin.collections.component5_o5f02i$', function ($receiver) { - return $receiver.get_za3lpa$(4); - }); - var component5_12 = defineInlineFunction('kotlin.kotlin.collections.component5_k4ndbq$', function ($receiver) { - return $receiver.get_za3lpa$(4); - }); - var elementAtOrElse_12 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_kot4le$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var elementAtOrElse_13 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_rzo8b8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var elementAtOrElse_14 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_e4wdik$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var elementAtOrElse_15 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrElse_9sv3bs$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var elementAtOrNull_12 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_h8io69$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_h8io69$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_13 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_k9lyrg$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_k9lyrg$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_14 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_hlz5c8$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_hlz5c8$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var elementAtOrNull_15 = defineInlineFunction('kotlin.kotlin.collections.elementAtOrNull_7156lo$', wrapFunction(function () { - var getOrNull = _.kotlin.collections.getOrNull_7156lo$; - return function ($receiver, index) { - return getOrNull($receiver, index); - }; - })); - var find_11 = defineInlineFunction('kotlin.kotlin.collections.find_qooazb$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_12 = defineInlineFunction('kotlin.kotlin.collections.find_xmet5j$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_13 = defineInlineFunction('kotlin.kotlin.collections.find_khxg6n$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var find_14 = defineInlineFunction('kotlin.kotlin.collections.find_zbhqtl$', function ($receiver, predicate) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }); - var findLast_12 = defineInlineFunction('kotlin.kotlin.collections.findLast_qooazb$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_13 = defineInlineFunction('kotlin.kotlin.collections.findLast_xmet5j$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_14 = defineInlineFunction('kotlin.kotlin.collections.findLast_khxg6n$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_964n91$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var findLast_15 = defineInlineFunction('kotlin.kotlin.collections.findLast_zbhqtl$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - return function ($receiver, predicate) { - var lastOrNull$result; - lastOrNull$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) { - lastOrNull$result = element; - break lastOrNull$break; - } - } - lastOrNull$result = null; - } - while (false); - return lastOrNull$result; - }; - })); - var first_24 = defineInlineFunction('kotlin.kotlin.collections.first_9hsmwz$', wrapFunction(function () { - var first = _.kotlin.collections.first_tmsbgo$; - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init(first($receiver.storage)); - }; - })); - var first_25 = defineInlineFunction('kotlin.kotlin.collections.first_rnn80q$', wrapFunction(function () { - var first = _.kotlin.collections.first_se6h4x$; - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(first($receiver.storage)); - }; - })); - var first_26 = defineInlineFunction('kotlin.kotlin.collections.first_o5f02i$', wrapFunction(function () { - var first = _.kotlin.collections.first_964n91$; - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init(first($receiver.storage)); - }; - })); - var first_27 = defineInlineFunction('kotlin.kotlin.collections.first_k4ndbq$', wrapFunction(function () { - var first = _.kotlin.collections.first_i2lc79$; - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init(first($receiver.storage)); - }; - })); - var first_28 = defineInlineFunction('kotlin.kotlin.collections.first_qooazb$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_29 = defineInlineFunction('kotlin.kotlin.collections.first_xmet5j$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_30 = defineInlineFunction('kotlin.kotlin.collections.first_khxg6n$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var first_31 = defineInlineFunction('kotlin.kotlin.collections.first_zbhqtl$', wrapFunction(function () { - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - return function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - function firstOrNull_24($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$(0); - } - function firstOrNull_25($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$(0); - } - function firstOrNull_26($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$(0); - } - function firstOrNull_27($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$(0); - } - var firstOrNull_28 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_qooazb$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_29 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_xmet5j$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_30 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_khxg6n$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - return null; - }); - var firstOrNull_31 = defineInlineFunction('kotlin.kotlin.collections.firstOrNull_zbhqtl$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return element; - } - return null; - }); - var getOrElse_10 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_kot4le$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var getOrElse_11 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_rzo8b8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var getOrElse_12 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_e4wdik$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - var getOrElse_13 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_9sv3bs$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, index, defaultValue) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : defaultValue(index); - }; - })); - function getOrNull_10($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_2($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : null; - } - function getOrNull_11($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_3($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : null; - } - function getOrNull_12($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_0($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : null; - } - function getOrNull_13($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_1($receiver.storage); - } - return tmp$ ? $receiver.get_za3lpa$(index) : null; - } - var indexOf_11 = defineInlineFunction('kotlin.kotlin.collections.indexOf_xx0iru$', wrapFunction(function () { - var indexOf = _.kotlin.collections.indexOf_c03ot6$; - return function ($receiver, element) { - return indexOf($receiver.storage, element.data); - }; - })); - var indexOf_12 = defineInlineFunction('kotlin.kotlin.collections.indexOf_e8hpy6$', wrapFunction(function () { - var indexOf = _.kotlin.collections.indexOf_uxdaoa$; - return function ($receiver, element) { - return indexOf($receiver.storage, element.data); - }; - })); - var indexOf_13 = defineInlineFunction('kotlin.kotlin.collections.indexOf_iga3ee$', wrapFunction(function () { - var indexOf = _.kotlin.collections.indexOf_jlnu8a$; - return function ($receiver, element) { - return indexOf($receiver.storage, element.data); - }; - })); - var indexOf_14 = defineInlineFunction('kotlin.kotlin.collections.indexOf_iss4kq$', wrapFunction(function () { - var indexOf = _.kotlin.collections.indexOf_s7ir3o$; - return function ($receiver, element) { - return indexOf($receiver.storage, element.data); - }; - })); - var indexOfFirst_12 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_qooazb$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var UInt_init = _.kotlin.UInt; - var indexOfFirst$lambda = wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new UInt_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfFirst$result; - indexOfFirst$break: do { - for (var index = 0; index !== $receiver_0.length; ++index) { - if (predicate(new UInt_init($receiver_0[index]))) { - indexOfFirst$result = index; - break indexOfFirst$break; - } - } - indexOfFirst$result = -1; - } - while (false); - return indexOfFirst$result; - }; - })); - var indexOfFirst_13 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_xmet5j$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var ULong_init = _.kotlin.ULong; - var indexOfFirst$lambda = wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new ULong_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfFirst$result; - indexOfFirst$break: do { - for (var index = 0; index !== $receiver_0.length; ++index) { - if (predicate(new ULong_init($receiver_0[index]))) { - indexOfFirst$result = index; - break indexOfFirst$break; - } - } - indexOfFirst$result = -1; - } - while (false); - return indexOfFirst$result; - }; - })); - var indexOfFirst_14 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_khxg6n$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var UByte_init = _.kotlin.UByte; - var indexOfFirst$lambda = wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new UByte_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfFirst$result; - indexOfFirst$break: do { - for (var index = 0; index !== $receiver_0.length; ++index) { - if (predicate(new UByte_init($receiver_0[index]))) { - indexOfFirst$result = index; - break indexOfFirst$break; - } - } - indexOfFirst$result = -1; - } - while (false); - return indexOfFirst$result; - }; - })); - var indexOfFirst_15 = defineInlineFunction('kotlin.kotlin.collections.indexOfFirst_zbhqtl$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var UShort_init = _.kotlin.UShort; - var indexOfFirst$lambda = wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new UShort_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfFirst$result; - indexOfFirst$break: do { - for (var index = 0; index !== $receiver_0.length; ++index) { - if (predicate(new UShort_init($receiver_0[index]))) { - indexOfFirst$result = index; - break indexOfFirst$break; - } - } - indexOfFirst$result = -1; - } - while (false); - return indexOfFirst$result; - }; - })); - var indexOfLast_12 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_qooazb$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var UInt_init = _.kotlin.UInt; - var indexOfLast$lambda = wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new UInt_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfLast$result; - indexOfLast$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver_0)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate(new UInt_init($receiver_0[index]))) { - indexOfLast$result = index; - break indexOfLast$break; - } - } - indexOfLast$result = -1; - } - while (false); - return indexOfLast$result; - }; - })); - var indexOfLast_13 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_xmet5j$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var ULong_init = _.kotlin.ULong; - var indexOfLast$lambda = wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new ULong_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfLast$result; - indexOfLast$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver_0)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate(new ULong_init($receiver_0[index]))) { - indexOfLast$result = index; - break indexOfLast$break; - } - } - indexOfLast$result = -1; - } - while (false); - return indexOfLast$result; - }; - })); - var indexOfLast_14 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_khxg6n$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var get_indices = _.kotlin.collections.get_indices_964n91$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var UByte_init = _.kotlin.UByte; - var indexOfLast$lambda = wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new UByte_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfLast$result; - indexOfLast$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver_0)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate(new UByte_init($receiver_0[index]))) { - indexOfLast$result = index; - break indexOfLast$break; - } - } - indexOfLast$result = -1; - } - while (false); - return indexOfLast$result; - }; - })); - var indexOfLast_15 = defineInlineFunction('kotlin.kotlin.collections.indexOfLast_zbhqtl$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var UShort_init = _.kotlin.UShort; - var indexOfLast$lambda = wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - return function (closure$predicate) { - return function (it) { - return closure$predicate(new UShort_init(it)); - }; - }; - }); - return function ($receiver, predicate) { - var $receiver_0 = $receiver.storage; - var indexOfLast$result; - indexOfLast$break: do { - var tmp$; - tmp$ = reversed(get_indices($receiver_0)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (predicate(new UShort_init($receiver_0[index]))) { - indexOfLast$result = index; - break indexOfLast$break; - } - } - indexOfLast$result = -1; - } - while (false); - return indexOfLast$result; - }; - })); - var last_25 = defineInlineFunction('kotlin.kotlin.collections.last_9hsmwz$', wrapFunction(function () { - var last = _.kotlin.collections.last_tmsbgo$; - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init(last($receiver.storage)); - }; - })); - var last_26 = defineInlineFunction('kotlin.kotlin.collections.last_rnn80q$', wrapFunction(function () { - var last = _.kotlin.collections.last_se6h4x$; - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(last($receiver.storage)); - }; - })); - var last_27 = defineInlineFunction('kotlin.kotlin.collections.last_o5f02i$', wrapFunction(function () { - var last = _.kotlin.collections.last_964n91$; - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init(last($receiver.storage)); - }; - })); - var last_28 = defineInlineFunction('kotlin.kotlin.collections.last_k4ndbq$', wrapFunction(function () { - var last = _.kotlin.collections.last_i2lc79$; - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init(last($receiver.storage)); - }; - })); - var last_29 = defineInlineFunction('kotlin.kotlin.collections.last_qooazb$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_30 = defineInlineFunction('kotlin.kotlin.collections.last_xmet5j$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_31 = defineInlineFunction('kotlin.kotlin.collections.last_khxg6n$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var get_indices = _.kotlin.collections.get_indices_964n91$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var last_32 = defineInlineFunction('kotlin.kotlin.collections.last_zbhqtl$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - }; - })); - var lastIndexOf_11 = defineInlineFunction('kotlin.kotlin.collections.lastIndexOf_xx0iru$', wrapFunction(function () { - var lastIndexOf = _.kotlin.collections.lastIndexOf_c03ot6$; - return function ($receiver, element) { - return lastIndexOf($receiver.storage, element.data); - }; - })); - var lastIndexOf_12 = defineInlineFunction('kotlin.kotlin.collections.lastIndexOf_e8hpy6$', wrapFunction(function () { - var lastIndexOf = _.kotlin.collections.lastIndexOf_uxdaoa$; - return function ($receiver, element) { - return lastIndexOf($receiver.storage, element.data); - }; - })); - var lastIndexOf_13 = defineInlineFunction('kotlin.kotlin.collections.lastIndexOf_iga3ee$', wrapFunction(function () { - var lastIndexOf = _.kotlin.collections.lastIndexOf_jlnu8a$; - return function ($receiver, element) { - return lastIndexOf($receiver.storage, element.data); - }; - })); - var lastIndexOf_14 = defineInlineFunction('kotlin.kotlin.collections.lastIndexOf_iss4kq$', wrapFunction(function () { - var lastIndexOf = _.kotlin.collections.lastIndexOf_s7ir3o$; - return function ($receiver, element) { - return lastIndexOf($receiver.storage, element.data); - }; - })); - function lastOrNull_25($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$($receiver.size - 1 | 0); - } - function lastOrNull_26($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$($receiver.size - 1 | 0); - } - function lastOrNull_27($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$($receiver.size - 1 | 0); - } - function lastOrNull_28($receiver) { - return $receiver.isEmpty() ? null : $receiver.get_za3lpa$($receiver.size - 1 | 0); - } - var lastOrNull_29 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_qooazb$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_30 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_xmet5j$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_31 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_khxg6n$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_964n91$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - return null; - }; - })); - var lastOrNull_32 = defineInlineFunction('kotlin.kotlin.collections.lastOrNull_zbhqtl$', wrapFunction(function () { - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver.storage)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - var element = $receiver.get_za3lpa$(index); - if (predicate(element)) - return element; - } - return null; - }; - })); - var random_27 = defineInlineFunction('kotlin.kotlin.collections.random_9hsmwz$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_b7l3ya$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_28 = defineInlineFunction('kotlin.kotlin.collections.random_rnn80q$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_2qnwpx$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_29 = defineInlineFunction('kotlin.kotlin.collections.random_o5f02i$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_i3mfo9$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_30 = defineInlineFunction('kotlin.kotlin.collections.random_k4ndbq$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.collections.random_7icwln$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - function random_31($receiver, random) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('Array is empty.'); - return $receiver.get_za3lpa$(random.nextInt_za3lpa$($receiver.size)); - } - function random_32($receiver, random) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('Array is empty.'); - return $receiver.get_za3lpa$(random.nextInt_za3lpa$($receiver.size)); - } - function random_33($receiver, random) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('Array is empty.'); - return $receiver.get_za3lpa$(random.nextInt_za3lpa$($receiver.size)); - } - function random_34($receiver, random) { - if ($receiver.isEmpty()) - throw new NoSuchElementException('Array is empty.'); - return $receiver.get_za3lpa$(random.nextInt_za3lpa$($receiver.size)); - } - var single_24 = defineInlineFunction('kotlin.kotlin.collections.single_9hsmwz$', wrapFunction(function () { - var single = _.kotlin.collections.single_tmsbgo$; - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init(single($receiver.storage)); - }; - })); - var single_25 = defineInlineFunction('kotlin.kotlin.collections.single_rnn80q$', wrapFunction(function () { - var single = _.kotlin.collections.single_se6h4x$; - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(single($receiver.storage)); - }; - })); - var single_26 = defineInlineFunction('kotlin.kotlin.collections.single_o5f02i$', wrapFunction(function () { - var single = _.kotlin.collections.single_964n91$; - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init(single($receiver.storage)); - }; - })); - var single_27 = defineInlineFunction('kotlin.kotlin.collections.single_k4ndbq$', wrapFunction(function () { - var single = _.kotlin.collections.single_i2lc79$; - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init(single($receiver.storage)); - }; - })); - var single_28 = defineInlineFunction('kotlin.kotlin.collections.single_qooazb$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var UInt = _.kotlin.UInt; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return Kotlin.isType(tmp$_0 = single, UInt) ? tmp$_0 : throwCCE(); - }; - })); - var single_29 = defineInlineFunction('kotlin.kotlin.collections.single_xmet5j$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var ULong = _.kotlin.ULong; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return Kotlin.isType(tmp$_0 = single, ULong) ? tmp$_0 : throwCCE(); - }; - })); - var single_30 = defineInlineFunction('kotlin.kotlin.collections.single_khxg6n$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var UByte = _.kotlin.UByte; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return Kotlin.isType(tmp$_0 = single, UByte) ? tmp$_0 : throwCCE(); - }; - })); - var single_31 = defineInlineFunction('kotlin.kotlin.collections.single_zbhqtl$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - var NoSuchElementException_init = _.kotlin.NoSuchElementException; - var UShort = _.kotlin.UShort; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, predicate) { - var tmp$, tmp$_0; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - throw IllegalArgumentException_init('Array contains more than one matching element.'); - single = element; - found = true; - } - } - if (!found) - throw new NoSuchElementException_init('Array contains no element matching the predicate.'); - return Kotlin.isType(tmp$_0 = single, UShort) ? tmp$_0 : throwCCE(); - }; - })); - function singleOrNull_24($receiver) { - return $receiver.size === 1 ? $receiver.get_za3lpa$(0) : null; - } - function singleOrNull_25($receiver) { - return $receiver.size === 1 ? $receiver.get_za3lpa$(0) : null; - } - function singleOrNull_26($receiver) { - return $receiver.size === 1 ? $receiver.get_za3lpa$(0) : null; - } - function singleOrNull_27($receiver) { - return $receiver.size === 1 ? $receiver.get_za3lpa$(0) : null; - } - var singleOrNull_28 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_qooazb$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_29 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_xmet5j$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_30 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_khxg6n$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - var singleOrNull_31 = defineInlineFunction('kotlin.kotlin.collections.singleOrNull_zbhqtl$', function ($receiver, predicate) { - var tmp$; - var single = null; - var found = false; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - if (found) - return null; - single = element; - found = true; - } - } - if (!found) - return null; - return single; - }); - function drop_12($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_11($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function drop_13($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_12($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function drop_14($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_13($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function drop_15($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return takeLast_14($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function dropLast_11($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_12($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function dropLast_12($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_13($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function dropLast_13($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_14($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - function dropLast_14($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return take_15($receiver, coerceAtLeast_2($receiver.size - n | 0, 0)); - } - var dropLastWhile_11 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_qooazb$', wrapFunction(function () { - var take = _.kotlin.collections.take_h8io69$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_12 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_xmet5j$', wrapFunction(function () { - var take = _.kotlin.collections.take_k9lyrg$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_13 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_khxg6n$', wrapFunction(function () { - var take = _.kotlin.collections.take_hlz5c8$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropLastWhile_14 = defineInlineFunction('kotlin.kotlin.collections.dropLastWhile_zbhqtl$', wrapFunction(function () { - var take = _.kotlin.collections.take_7156lo$; - var emptyList = _.kotlin.collections.emptyList_287e2$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return take($receiver, index + 1 | 0); - } - } - return emptyList(); - }; - })); - var dropWhile_12 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_qooazb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_13 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_xmet5j$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_14 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_khxg6n$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var dropWhile_15 = defineInlineFunction('kotlin.kotlin.collections.dropWhile_zbhqtl$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var yielding = false; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (yielding) - list.add_11rb$(item); - else if (!predicate(item)) { - list.add_11rb$(item); - yielding = true; - } - } - return list; - }; - })); - var filter_12 = defineInlineFunction('kotlin.kotlin.collections.filter_qooazb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_13 = defineInlineFunction('kotlin.kotlin.collections.filter_xmet5j$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_14 = defineInlineFunction('kotlin.kotlin.collections.filter_khxg6n$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filter_15 = defineInlineFunction('kotlin.kotlin.collections.filter_zbhqtl$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_b50w5$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_qk9l51$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_14 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_flgcod$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexed_15 = defineInlineFunction('kotlin.kotlin.collections.filterIndexed_nbkmjf$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }; - })); - var filterIndexedTo_11 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_ku9oc1$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_12 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_6qz3q4$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_13 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_6ojnv4$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterIndexedTo_14 = defineInlineFunction('kotlin.kotlin.collections.filterIndexedTo_v5t4zi$', function ($receiver, destination, predicate) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (predicate((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)) - destination.add_11rb$(item); - } - return destination; - }); - var filterNot_12 = defineInlineFunction('kotlin.kotlin.collections.filterNot_qooazb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_13 = defineInlineFunction('kotlin.kotlin.collections.filterNot_xmet5j$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_14 = defineInlineFunction('kotlin.kotlin.collections.filterNot_khxg6n$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNot_15 = defineInlineFunction('kotlin.kotlin.collections.filterNot_zbhqtl$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }; - })); - var filterNotTo_11 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_gqevbp$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_12 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_xxeg5c$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_13 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_9jj6to$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterNotTo_14 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_z9kluq$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_11 = defineInlineFunction('kotlin.kotlin.collections.filterTo_gqevbp$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_12 = defineInlineFunction('kotlin.kotlin.collections.filterTo_xxeg5c$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_13 = defineInlineFunction('kotlin.kotlin.collections.filterTo_9jj6to$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - var filterTo_14 = defineInlineFunction('kotlin.kotlin.collections.filterTo_z9kluq$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - destination.add_11rb$(element); - } - return destination; - }); - function slice_23($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList_8(new UIntArray(copyOfRange_6($receiver.storage, indices.start, indices.endInclusive + 1 | 0))); - } - function slice_24($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList_9(new ULongArray(copyOfRange_7($receiver.storage, indices.start, indices.endInclusive + 1 | 0))); - } - function slice_25($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList_10(new UByteArray(copyOfRange_4($receiver.storage, indices.start, indices.endInclusive + 1 | 0))); - } - function slice_26($receiver, indices) { - if (indices.isEmpty()) { - return emptyList(); - } - return asList_11(new UShortArray(copyOfRange_5($receiver.storage, indices.start, indices.endInclusive + 1 | 0))); - } - function slice_27($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver.get_za3lpa$(index)); - } - return list; - } - function slice_28($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver.get_za3lpa$(index)); - } - return list; - } - function slice_29($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver.get_za3lpa$(index)); - } - return list; - } - function slice_30($receiver, indices) { - var tmp$; - var size = collectionSizeOrDefault(indices, 10); - if (size === 0) - return emptyList(); - var list = ArrayList_init_0(size); - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - list.add_11rb$($receiver.get_za3lpa$(index)); - } - return list; - } - function sliceArray_17($receiver, indices) { - return new UIntArray(sliceArray_2($receiver.storage, indices)); - } - function sliceArray_18($receiver, indices) { - return new ULongArray(sliceArray_3($receiver.storage, indices)); - } - function sliceArray_19($receiver, indices) { - return new UByteArray(sliceArray_0($receiver.storage, indices)); - } - function sliceArray_20($receiver, indices) { - return new UShortArray(sliceArray_1($receiver.storage, indices)); - } - function sliceArray_21($receiver, indices) { - return new UIntArray(sliceArray_11($receiver.storage, indices)); - } - function sliceArray_22($receiver, indices) { - return new ULongArray(sliceArray_12($receiver.storage, indices)); - } - function sliceArray_23($receiver, indices) { - return new UByteArray(sliceArray_9($receiver.storage, indices)); - } - function sliceArray_24($receiver, indices) { - return new UShortArray(sliceArray_10($receiver.storage, indices)); - } - function take_12($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(0)); - var count = 0; - var list = ArrayList_init_0(n); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_13($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(0)); - var count = 0; - var list = ArrayList_init_0(n); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_14($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(0)); - var count = 0; - var list = ArrayList_init_0(n); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function take_15($receiver, n) { - var tmp$, tmp$_0; - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - if (n >= $receiver.size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(0)); - var count = 0; - var list = ArrayList_init_0(n); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ((tmp$_0 = count, count = tmp$_0 + 1 | 0, tmp$_0) === n) - break; - list.add_11rb$(item); - } - return list; - } - function takeLast_11($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.size; - if (n >= size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(size - 1 | 0)); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver.get_za3lpa$(index)); - return list; - } - function takeLast_12($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.size; - if (n >= size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(size - 1 | 0)); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver.get_za3lpa$(index)); - return list; - } - function takeLast_13($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.size; - if (n >= size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(size - 1 | 0)); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver.get_za3lpa$(index)); - return list; - } - function takeLast_14($receiver, n) { - if (!(n >= 0)) { - var message = 'Requested element count ' + n + ' is less than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - if (n === 0) - return emptyList(); - var size = $receiver.size; - if (n >= size) - return toList_8($receiver); - if (n === 1) - return listOf($receiver.get_za3lpa$(size - 1 | 0)); - var list = ArrayList_init_0(n); - for (var index = size - n | 0; index < size; index++) - list.add_11rb$($receiver.get_za3lpa$(index)); - return list; - } - var takeLastWhile_11 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_qooazb$', wrapFunction(function () { - var drop = _.kotlin.collections.drop_h8io69$; - var toList = _.kotlin.collections.toList_7wnvza$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_12 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_xmet5j$', wrapFunction(function () { - var drop = _.kotlin.collections.drop_k9lyrg$; - var toList = _.kotlin.collections.toList_7wnvza$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_13 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_khxg6n$', wrapFunction(function () { - var drop = _.kotlin.collections.drop_hlz5c8$; - var toList = _.kotlin.collections.toList_7wnvza$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeLastWhile_14 = defineInlineFunction('kotlin.kotlin.collections.takeLastWhile_zbhqtl$', wrapFunction(function () { - var drop = _.kotlin.collections.drop_7156lo$; - var toList = _.kotlin.collections.toList_7wnvza$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, predicate) { - for (var index = get_lastIndex($receiver.storage); index >= 0; index--) { - if (!predicate($receiver.get_za3lpa$(index))) { - return drop($receiver, index + 1 | 0); - } - } - return toList($receiver); - }; - })); - var takeWhile_12 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_qooazb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_13 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_xmet5j$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_14 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_khxg6n$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var takeWhile_15 = defineInlineFunction('kotlin.kotlin.collections.takeWhile_zbhqtl$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, predicate) { - var tmp$; - var list = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (!predicate(item)) - break; - list.add_11rb$(item); - } - return list; - }; - })); - var reverse_8 = defineInlineFunction('kotlin.kotlin.collections.reverse_9hsmwz$', wrapFunction(function () { - var reverse = _.kotlin.collections.reverse_tmsbgo$; - return function ($receiver) { - reverse($receiver.storage); - }; - })); - var reverse_9 = defineInlineFunction('kotlin.kotlin.collections.reverse_rnn80q$', wrapFunction(function () { - var reverse = _.kotlin.collections.reverse_se6h4x$; - return function ($receiver) { - reverse($receiver.storage); - }; - })); - var reverse_10 = defineInlineFunction('kotlin.kotlin.collections.reverse_o5f02i$', wrapFunction(function () { - var reverse = _.kotlin.collections.reverse_964n91$; - return function ($receiver) { - reverse($receiver.storage); - }; - })); - var reverse_11 = defineInlineFunction('kotlin.kotlin.collections.reverse_k4ndbq$', wrapFunction(function () { - var reverse = _.kotlin.collections.reverse_i2lc79$; - return function ($receiver) { - reverse($receiver.storage); - }; - })); - function reversed_14($receiver) { - if ($receiver.isEmpty()) - return emptyList(); - var list = toMutableList_9($receiver); - reverse_12(list); - return list; - } - function reversed_15($receiver) { - if ($receiver.isEmpty()) - return emptyList(); - var list = toMutableList_9($receiver); - reverse_12(list); - return list; - } - function reversed_16($receiver) { - if ($receiver.isEmpty()) - return emptyList(); - var list = toMutableList_9($receiver); - reverse_12(list); - return list; - } - function reversed_17($receiver) { - if ($receiver.isEmpty()) - return emptyList(); - var list = toMutableList_9($receiver); - reverse_12(list); - return list; - } - var reversedArray_8 = defineInlineFunction('kotlin.kotlin.collections.reversedArray_9hsmwz$', wrapFunction(function () { - var reversedArray = _.kotlin.collections.reversedArray_tmsbgo$; - var UIntArray_init = _.kotlin.UIntArray; - return function ($receiver) { - return new UIntArray_init(reversedArray($receiver.storage)); - }; - })); - var reversedArray_9 = defineInlineFunction('kotlin.kotlin.collections.reversedArray_rnn80q$', wrapFunction(function () { - var reversedArray = _.kotlin.collections.reversedArray_se6h4x$; - var ULongArray_init = _.kotlin.ULongArray; - return function ($receiver) { - return new ULongArray_init(reversedArray($receiver.storage)); - }; - })); - var reversedArray_10 = defineInlineFunction('kotlin.kotlin.collections.reversedArray_o5f02i$', wrapFunction(function () { - var reversedArray = _.kotlin.collections.reversedArray_964n91$; - var UByteArray_init = _.kotlin.UByteArray; - return function ($receiver) { - return new UByteArray_init(reversedArray($receiver.storage)); - }; - })); - var reversedArray_11 = defineInlineFunction('kotlin.kotlin.collections.reversedArray_k4ndbq$', wrapFunction(function () { - var reversedArray = _.kotlin.collections.reversedArray_i2lc79$; - var UShortArray_init = _.kotlin.UShortArray; - return function ($receiver) { - return new UShortArray_init(reversedArray($receiver.storage)); - }; - })); - function sortDescending_8($receiver) { - if ($receiver.size > 1) { - sort_0($receiver); - reverse_2($receiver.storage); - } - } - function sortDescending_9($receiver) { - if ($receiver.size > 1) { - sort_1($receiver); - reverse_3($receiver.storage); - } - } - function sortDescending_10($receiver) { - if ($receiver.size > 1) { - sort_2($receiver); - reverse_0($receiver.storage); - } - } - function sortDescending_11($receiver) { - if ($receiver.size > 1) { - sort_3($receiver); - reverse_1($receiver.storage); - } - } - function sorted_9($receiver) { - var $receiver_0 = new UIntArray($receiver.storage.slice()); - sort_0($receiver_0); - return asList_8($receiver_0); - } - function sorted_10($receiver) { - var $receiver_0 = new ULongArray(copyOf_11($receiver.storage)); - sort_1($receiver_0); - return asList_9($receiver_0); - } - function sorted_11($receiver) { - var $receiver_0 = new UByteArray($receiver.storage.slice()); - sort_2($receiver_0); - return asList_10($receiver_0); - } - function sorted_12($receiver) { - var $receiver_0 = new UShortArray($receiver.storage.slice()); - sort_3($receiver_0); - return asList_11($receiver_0); - } - function sortedArray_7($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new UIntArray($receiver.storage.slice()); - sort_0($receiver_0); - return $receiver_0; - } - function sortedArray_8($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new ULongArray(copyOf_11($receiver.storage)); - sort_1($receiver_0); - return $receiver_0; - } - function sortedArray_9($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new UByteArray($receiver.storage.slice()); - sort_2($receiver_0); - return $receiver_0; - } - function sortedArray_10($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new UShortArray($receiver.storage.slice()); - sort_3($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_7($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new UIntArray($receiver.storage.slice()); - sortDescending_8($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_8($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new ULongArray(copyOf_11($receiver.storage)); - sortDescending_9($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_9($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new UByteArray($receiver.storage.slice()); - sortDescending_10($receiver_0); - return $receiver_0; - } - function sortedArrayDescending_10($receiver) { - if ($receiver.isEmpty()) - return $receiver; - var $receiver_0 = new UShortArray($receiver.storage.slice()); - sortDescending_11($receiver_0); - return $receiver_0; - } - function sortedDescending_9($receiver) { - var $receiver_0 = new UIntArray($receiver.storage.slice()); - sort_0($receiver_0); - return reversed_14($receiver_0); - } - function sortedDescending_10($receiver) { - var $receiver_0 = new ULongArray(copyOf_11($receiver.storage)); - sort_1($receiver_0); - return reversed_15($receiver_0); - } - function sortedDescending_11($receiver) { - var $receiver_0 = new UByteArray($receiver.storage.slice()); - sort_2($receiver_0); - return reversed_16($receiver_0); - } - function sortedDescending_12($receiver) { - var $receiver_0 = new UShortArray($receiver.storage.slice()); - sort_3($receiver_0); - return reversed_17($receiver_0); - } - var asByteArray = defineInlineFunction('kotlin.kotlin.collections.asByteArray_o5f02i$', function ($receiver) { - return $receiver.storage; - }); - var asIntArray = defineInlineFunction('kotlin.kotlin.collections.asIntArray_9hsmwz$', function ($receiver) { - return $receiver.storage; - }); - var asLongArray = defineInlineFunction('kotlin.kotlin.collections.asLongArray_rnn80q$', function ($receiver) { - return $receiver.storage; - }); - var asShortArray = defineInlineFunction('kotlin.kotlin.collections.asShortArray_k4ndbq$', function ($receiver) { - return $receiver.storage; - }); - var asUByteArray = defineInlineFunction('kotlin.kotlin.collections.asUByteArray_964n91$', wrapFunction(function () { - var UByteArray_init = _.kotlin.UByteArray; - return function ($receiver) { - return new UByteArray_init($receiver); - }; - })); - var asUIntArray = defineInlineFunction('kotlin.kotlin.collections.asUIntArray_tmsbgo$', wrapFunction(function () { - var UIntArray_init = _.kotlin.UIntArray; - return function ($receiver) { - return new UIntArray_init($receiver); - }; - })); - var asULongArray = defineInlineFunction('kotlin.kotlin.collections.asULongArray_se6h4x$', wrapFunction(function () { - var ULongArray_init = _.kotlin.ULongArray; - return function ($receiver) { - return new ULongArray_init($receiver); - }; - })); - var asUShortArray = defineInlineFunction('kotlin.kotlin.collections.asUShortArray_i2lc79$', wrapFunction(function () { - var UShortArray_init = _.kotlin.UShortArray; - return function ($receiver) { - return new UShortArray_init($receiver); - }; - })); - function contentEquals_0($receiver, other) { - return contentEquals($receiver.storage, other.storage); - } - function contentEquals_1($receiver, other) { - return contentEquals($receiver.storage, other.storage); - } - function contentEquals_2($receiver, other) { - return contentEquals($receiver.storage, other.storage); - } - function contentEquals_3($receiver, other) { - return contentEquals($receiver.storage, other.storage); - } - function contentHashCode_0($receiver) { - return contentHashCode($receiver.storage); - } - function contentHashCode_1($receiver) { - return contentHashCode($receiver.storage); - } - function contentHashCode_2($receiver) { - return contentHashCode($receiver.storage); - } - function contentHashCode_3($receiver) { - return contentHashCode($receiver.storage); - } - function contentToString($receiver) { - return joinToString_8($receiver, ', ', '[', ']'); - } - function contentToString_0($receiver) { - return joinToString_8($receiver, ', ', '[', ']'); - } - function contentToString_1($receiver) { - return joinToString_8($receiver, ', ', '[', ']'); - } - function contentToString_2($receiver) { - return joinToString_8($receiver, ', ', '[', ']'); - } - var copyInto = defineInlineFunction('kotlin.kotlin.collections.copyInto_obrcu7$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.size; - arrayCopy($receiver.storage, destination.storage, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_0 = defineInlineFunction('kotlin.kotlin.collections.copyInto_jkamab$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.size; - arrayCopy($receiver.storage, destination.storage, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_1 = defineInlineFunction('kotlin.kotlin.collections.copyInto_qvi9gr$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.size; - arrayCopy($receiver.storage, destination.storage, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_2 = defineInlineFunction('kotlin.kotlin.collections.copyInto_7fpan5$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.size; - arrayCopy($receiver.storage, destination.storage, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyOf = defineInlineFunction('kotlin.kotlin.collections.copyOf_9hsmwz$', wrapFunction(function () { - var UIntArray_init = _.kotlin.UIntArray; - return function ($receiver) { - return new UIntArray_init($receiver.storage.slice()); - }; - })); - var copyOf_0 = defineInlineFunction('kotlin.kotlin.collections.copyOf_rnn80q$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_se6h4x$; - var ULongArray_init = _.kotlin.ULongArray; - return function ($receiver) { - return new ULongArray_init(copyOf($receiver.storage)); - }; - })); - var copyOf_1 = defineInlineFunction('kotlin.kotlin.collections.copyOf_o5f02i$', wrapFunction(function () { - var UByteArray_init = _.kotlin.UByteArray; - return function ($receiver) { - return new UByteArray_init($receiver.storage.slice()); - }; - })); - var copyOf_2 = defineInlineFunction('kotlin.kotlin.collections.copyOf_k4ndbq$', wrapFunction(function () { - var UShortArray_init = _.kotlin.UShortArray; - return function ($receiver) { - return new UShortArray_init($receiver.storage.slice()); - }; - })); - var copyOf_3 = defineInlineFunction('kotlin.kotlin.collections.copyOf_h8io69$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_c03ot6$; - var UIntArray_init = _.kotlin.UIntArray; - return function ($receiver, newSize) { - return new UIntArray_init(copyOf($receiver.storage, newSize)); - }; - })); - var copyOf_4 = defineInlineFunction('kotlin.kotlin.collections.copyOf_k9lyrg$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_3aefkx$; - var ULongArray_init = _.kotlin.ULongArray; - return function ($receiver, newSize) { - return new ULongArray_init(copyOf($receiver.storage, newSize)); - }; - })); - var copyOf_5 = defineInlineFunction('kotlin.kotlin.collections.copyOf_hlz5c8$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_mrm5p$; - var UByteArray_init = _.kotlin.UByteArray; - return function ($receiver, newSize) { - return new UByteArray_init(copyOf($receiver.storage, newSize)); - }; - })); - var copyOf_6 = defineInlineFunction('kotlin.kotlin.collections.copyOf_7156lo$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_m2jy6x$; - var UShortArray_init = _.kotlin.UShortArray; - return function ($receiver, newSize) { - return new UShortArray_init(copyOf($receiver.storage, newSize)); - }; - })); - var copyOfRange = defineInlineFunction('kotlin.kotlin.collections.copyOfRange_cb631t$', wrapFunction(function () { - var copyOfRange = _.kotlin.collections.copyOfRange_6pxxqk$; - var UIntArray_init = _.kotlin.UIntArray; - return function ($receiver, fromIndex, toIndex) { - return new UIntArray_init(copyOfRange($receiver.storage, fromIndex, toIndex)); - }; - })); - var copyOfRange_0 = defineInlineFunction('kotlin.kotlin.collections.copyOfRange_xv12r2$', wrapFunction(function () { - var copyOfRange = _.kotlin.collections.copyOfRange_2n8m0j$; - var ULongArray_init = _.kotlin.ULongArray; - return function ($receiver, fromIndex, toIndex) { - return new ULongArray_init(copyOfRange($receiver.storage, fromIndex, toIndex)); - }; - })); - var copyOfRange_1 = defineInlineFunction('kotlin.kotlin.collections.copyOfRange_csz0hm$', wrapFunction(function () { - var copyOfRange = _.kotlin.collections.copyOfRange_ietg8x$; - var UByteArray_init = _.kotlin.UByteArray; - return function ($receiver, fromIndex, toIndex) { - return new UByteArray_init(copyOfRange($receiver.storage, fromIndex, toIndex)); - }; - })); - var copyOfRange_2 = defineInlineFunction('kotlin.kotlin.collections.copyOfRange_7s1pa$', wrapFunction(function () { - var copyOfRange = _.kotlin.collections.copyOfRange_qxueih$; - var UShortArray_init = _.kotlin.UShortArray; - return function ($receiver, fromIndex, toIndex) { - return new UShortArray_init(copyOfRange($receiver.storage, fromIndex, toIndex)); - }; - })); - var get_indices_8 = defineInlineFunction('kotlin.kotlin.collections.get_indices_9hsmwz$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_tmsbgo$; - return function ($receiver) { - return get_indices($receiver.storage); - }; - })); - var get_indices_9 = defineInlineFunction('kotlin.kotlin.collections.get_indices_rnn80q$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_se6h4x$; - return function ($receiver) { - return get_indices($receiver.storage); - }; - })); - var get_indices_10 = defineInlineFunction('kotlin.kotlin.collections.get_indices_o5f02i$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_964n91$; - return function ($receiver) { - return get_indices($receiver.storage); - }; - })); - var get_indices_11 = defineInlineFunction('kotlin.kotlin.collections.get_indices_k4ndbq$', wrapFunction(function () { - var get_indices = _.kotlin.collections.get_indices_i2lc79$; - return function ($receiver) { - return get_indices($receiver.storage); - }; - })); - var get_lastIndex_8 = defineInlineFunction('kotlin.kotlin.collections.get_lastIndex_9hsmwz$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver) { - return get_lastIndex($receiver.storage); - }; - })); - var get_lastIndex_9 = defineInlineFunction('kotlin.kotlin.collections.get_lastIndex_rnn80q$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver) { - return get_lastIndex($receiver.storage); - }; - })); - var get_lastIndex_10 = defineInlineFunction('kotlin.kotlin.collections.get_lastIndex_o5f02i$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver) { - return get_lastIndex($receiver.storage); - }; - })); - var get_lastIndex_11 = defineInlineFunction('kotlin.kotlin.collections.get_lastIndex_k4ndbq$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver) { - return get_lastIndex($receiver.storage); - }; - })); - var plus_15 = defineInlineFunction('kotlin.kotlin.collections.plus_xx0iru$', wrapFunction(function () { - var UIntArray_init = _.kotlin.UIntArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - var tmp$ = $receiver.storage; - var element_0 = element.data; - return new UIntArray_init(primitiveArrayConcat(tmp$, new Int32Array([element_0]))); - }; - })); - var plus_16 = defineInlineFunction('kotlin.kotlin.collections.plus_e8hpy6$', wrapFunction(function () { - var ULongArray_init = _.kotlin.ULongArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return new ULongArray_init(primitiveArrayConcat($receiver.storage, Kotlin.longArrayOf(element.data))); - }; - })); - var plus_17 = defineInlineFunction('kotlin.kotlin.collections.plus_iga3ee$', wrapFunction(function () { - var UByteArray_init = _.kotlin.UByteArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - var tmp$ = $receiver.storage; - var element_0 = element.data; - return new UByteArray_init(primitiveArrayConcat(tmp$, new Int8Array([element_0]))); - }; - })); - var plus_18 = defineInlineFunction('kotlin.kotlin.collections.plus_iss4kq$', wrapFunction(function () { - var UShortArray_init = _.kotlin.UShortArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - var tmp$ = $receiver.storage; - var element_0 = element.data; - return new UShortArray_init(primitiveArrayConcat(tmp$, new Int16Array([element_0]))); - }; - })); - function plus_19($receiver, elements) { - var tmp$, tmp$_0; - var index = $receiver.size; - var result = copyOf_18($receiver.storage, $receiver.size + elements.size | 0); - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element.data; - } - return new UIntArray(result); - } - function plus_20($receiver, elements) { - var tmp$, tmp$_0; - var index = $receiver.size; - var result = copyOf_19($receiver.storage, $receiver.size + elements.size | 0); - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element.data; - } - return new ULongArray(result); - } - function plus_21($receiver, elements) { - var tmp$, tmp$_0; - var index = $receiver.size; - var result = copyOf_16($receiver.storage, $receiver.size + elements.size | 0); - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element.data; - } - return new UByteArray(result); - } - function plus_22($receiver, elements) { - var tmp$, tmp$_0; - var index = $receiver.size; - var result = copyOf_17($receiver.storage, $receiver.size + elements.size | 0); - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element.data; - } - return new UShortArray(result); - } - var plus_23 = defineInlineFunction('kotlin.kotlin.collections.plus_yvstjl$', wrapFunction(function () { - var UIntArray_init = _.kotlin.UIntArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return new UIntArray_init(primitiveArrayConcat($receiver.storage, elements.storage)); - }; - })); - var plus_24 = defineInlineFunction('kotlin.kotlin.collections.plus_oi0tr9$', wrapFunction(function () { - var ULongArray_init = _.kotlin.ULongArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return new ULongArray_init(primitiveArrayConcat($receiver.storage, elements.storage)); - }; - })); - var plus_25 = defineInlineFunction('kotlin.kotlin.collections.plus_7u5a2r$', wrapFunction(function () { - var UByteArray_init = _.kotlin.UByteArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return new UByteArray_init(primitiveArrayConcat($receiver.storage, elements.storage)); - }; - })); - var plus_26 = defineInlineFunction('kotlin.kotlin.collections.plus_7t078x$', wrapFunction(function () { - var UShortArray_init = _.kotlin.UShortArray; - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return new UShortArray_init(primitiveArrayConcat($receiver.storage, elements.storage)); - }; - })); - function sort_0($receiver) { - if ($receiver.size > 1) - sortArray_2($receiver); - } - function sort_1($receiver) { - if ($receiver.size > 1) - sortArray_3($receiver); - } - function sort_2($receiver) { - if ($receiver.size > 1) - sortArray_0($receiver); - } - function sort_3($receiver) { - if ($receiver.size > 1) - sortArray_1($receiver); - } - var toByteArray_1 = defineInlineFunction('kotlin.kotlin.collections.toByteArray_o5f02i$', function ($receiver) { - return $receiver.storage.slice(); - }); - var toIntArray_1 = defineInlineFunction('kotlin.kotlin.collections.toIntArray_9hsmwz$', function ($receiver) { - return $receiver.storage.slice(); - }); - var toLongArray_1 = defineInlineFunction('kotlin.kotlin.collections.toLongArray_rnn80q$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_se6h4x$; - return function ($receiver) { - return copyOf($receiver.storage); - }; - })); - var toShortArray_1 = defineInlineFunction('kotlin.kotlin.collections.toShortArray_k4ndbq$', function ($receiver) { - return $receiver.storage.slice(); - }); - function toTypedArray$lambda(this$toTypedArray) { - return function (index) { - return this$toTypedArray.get_za3lpa$(index); - }; - } - function toTypedArray($receiver) { - return Kotlin.newArrayF($receiver.size, toTypedArray$lambda($receiver)); - } - function toTypedArray$lambda_0(this$toTypedArray) { - return function (index) { - return this$toTypedArray.get_za3lpa$(index); - }; - } - function toTypedArray_0($receiver) { - return Kotlin.newArrayF($receiver.size, toTypedArray$lambda_0($receiver)); - } - function toTypedArray$lambda_1(this$toTypedArray) { - return function (index) { - return this$toTypedArray.get_za3lpa$(index); - }; - } - function toTypedArray_1($receiver) { - return Kotlin.newArrayF($receiver.size, toTypedArray$lambda_1($receiver)); - } - function toTypedArray$lambda_2(this$toTypedArray) { - return function (index) { - return this$toTypedArray.get_za3lpa$(index); - }; - } - function toTypedArray_2($receiver) { - return Kotlin.newArrayF($receiver.size, toTypedArray$lambda_2($receiver)); - } - function toUByteArray$lambda(this$toUByteArray) { - return function (index) { - return this$toUByteArray[index]; - }; - } - function toUByteArray($receiver) { - return new UByteArray(Kotlin.fillArray(new Int8Array($receiver.length), UByteArray$lambda(toUByteArray$lambda($receiver)))); - } - var toUByteArray_0 = defineInlineFunction('kotlin.kotlin.collections.toUByteArray_964n91$', wrapFunction(function () { - var UByteArray_init = _.kotlin.UByteArray; - return function ($receiver) { - return new UByteArray_init($receiver.slice()); - }; - })); - function toUIntArray$lambda(this$toUIntArray) { - return function (index) { - return this$toUIntArray[index]; - }; - } - function toUIntArray($receiver) { - return new UIntArray(Kotlin.fillArray(new Int32Array($receiver.length), UIntArray$lambda(toUIntArray$lambda($receiver)))); - } - var toUIntArray_0 = defineInlineFunction('kotlin.kotlin.collections.toUIntArray_tmsbgo$', wrapFunction(function () { - var UIntArray_init = _.kotlin.UIntArray; - return function ($receiver) { - return new UIntArray_init($receiver.slice()); - }; - })); - function toULongArray$lambda(this$toULongArray) { - return function (index) { - return this$toULongArray[index]; - }; - } - function toULongArray($receiver) { - return new ULongArray(Kotlin.longArrayF($receiver.length, ULongArray$lambda(toULongArray$lambda($receiver)))); - } - var toULongArray_0 = defineInlineFunction('kotlin.kotlin.collections.toULongArray_se6h4x$', wrapFunction(function () { - var copyOf = _.kotlin.collections.copyOf_se6h4x$; - var ULongArray_init = _.kotlin.ULongArray; - return function ($receiver) { - return new ULongArray_init(copyOf($receiver)); - }; - })); - function toUShortArray$lambda(this$toUShortArray) { - return function (index) { - return this$toUShortArray[index]; - }; - } - function toUShortArray($receiver) { - return new UShortArray(Kotlin.fillArray(new Int16Array($receiver.length), UShortArray$lambda(toUShortArray$lambda($receiver)))); - } - var toUShortArray_0 = defineInlineFunction('kotlin.kotlin.collections.toUShortArray_i2lc79$', wrapFunction(function () { - var UShortArray_init = _.kotlin.UShortArray; - return function ($receiver) { - return new UShortArray_init($receiver.slice()); - }; - })); - var flatMap_12 = defineInlineFunction('kotlin.kotlin.collections.flatMap_9x3iol$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_13 = defineInlineFunction('kotlin.kotlin.collections.flatMap_kl1qv1$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_14 = defineInlineFunction('kotlin.kotlin.collections.flatMap_meox5n$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMap_15 = defineInlineFunction('kotlin.kotlin.collections.flatMap_qlvsvp$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, transform) { - var destination = ArrayList_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_12 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_2mlxn4$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_13 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_lr0q20$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_14 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_ks816o$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var flatMapTo_15 = defineInlineFunction('kotlin.kotlin.collections.flatMapTo_sj6bcg$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var list = transform(element); - addAll(destination, list); - } - return destination; - }; - })); - var groupBy_23 = defineInlineFunction('kotlin.kotlin.collections.groupBy_u4a5xu$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_24 = defineInlineFunction('kotlin.kotlin.collections.groupBy_zdbp9g$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_25 = defineInlineFunction('kotlin.kotlin.collections.groupBy_kzs0c$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_26 = defineInlineFunction('kotlin.kotlin.collections.groupBy_2isg0e$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupBy_27 = defineInlineFunction('kotlin.kotlin.collections.groupBy_gswmyr$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_28 = defineInlineFunction('kotlin.kotlin.collections.groupBy_9qm17u$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_29 = defineInlineFunction('kotlin.kotlin.collections.groupBy_th0ibu$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupBy_30 = defineInlineFunction('kotlin.kotlin.collections.groupBy_4blai2$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, keySelector, valueTransform) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_23 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_fcjoze$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_24 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_vtu9nb$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_25 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_ktjfzn$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_26 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_ce468p$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(element); - } - return destination; - }; - })); - var groupByTo_27 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_b5z689$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_28 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_rmnvm8$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_29 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_mp9yos$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var groupByTo_30 = defineInlineFunction('kotlin.kotlin.collections.groupByTo_7f472c$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function ($receiver, destination, keySelector, valueTransform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var key = keySelector(element); - var tmp$_0; - var value = destination.get_11rb$(key); - if (value == null) { - var answer = ArrayList_init(); - destination.put_xwzc9p$(key, answer); - tmp$_0 = answer; - } - else { - tmp$_0 = value; - } - var list = tmp$_0; - list.add_11rb$(valueTransform(element)); - } - return destination; - }; - })); - var map_12 = defineInlineFunction('kotlin.kotlin.collections.map_u4a5xu$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_13 = defineInlineFunction('kotlin.kotlin.collections.map_zdbp9g$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_14 = defineInlineFunction('kotlin.kotlin.collections.map_kzs0c$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var map_15 = defineInlineFunction('kotlin.kotlin.collections.map_2isg0e$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }; - })); - var mapIndexed_11 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_jouoa$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_395egw$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_49o2oo$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexed_14 = defineInlineFunction('kotlin.kotlin.collections.mapIndexed_ef33e$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function ($receiver, transform) { - var destination = ArrayList_init($receiver.size); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }; - })); - var mapIndexedTo_11 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_rvnxhh$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_12 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_9b7vob$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_13 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_goploj$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapIndexedTo_14 = defineInlineFunction('kotlin.kotlin.collections.mapIndexedTo_58tnad$', function ($receiver, destination, transform) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item)); - } - return destination; - }); - var mapTo_12 = defineInlineFunction('kotlin.kotlin.collections.mapTo_a7z7jd$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_13 = defineInlineFunction('kotlin.kotlin.collections.mapTo_pyoptr$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_14 = defineInlineFunction('kotlin.kotlin.collections.mapTo_8x217r$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - var mapTo_15 = defineInlineFunction('kotlin.kotlin.collections.mapTo_sq9iuv$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(transform(item)); - } - return destination; - }); - function withIndex$lambda_10(this$withIndex) { - return function () { - return this$withIndex.iterator(); - }; - } - function withIndex_11($receiver) { - return new IndexingIterable(withIndex$lambda_10($receiver)); - } - function withIndex$lambda_11(this$withIndex) { - return function () { - return this$withIndex.iterator(); - }; - } - function withIndex_12($receiver) { - return new IndexingIterable(withIndex$lambda_11($receiver)); - } - function withIndex$lambda_12(this$withIndex) { - return function () { - return this$withIndex.iterator(); - }; - } - function withIndex_13($receiver) { - return new IndexingIterable(withIndex$lambda_12($receiver)); - } - function withIndex$lambda_13(this$withIndex) { - return function () { - return this$withIndex.iterator(); - }; - } - function withIndex_14($receiver) { - return new IndexingIterable(withIndex$lambda_13($receiver)); - } - var all_12 = defineInlineFunction('kotlin.kotlin.collections.all_qooazb$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }); - var all_13 = defineInlineFunction('kotlin.kotlin.collections.all_xmet5j$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }); - var all_14 = defineInlineFunction('kotlin.kotlin.collections.all_khxg6n$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }); - var all_15 = defineInlineFunction('kotlin.kotlin.collections.all_zbhqtl$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) - return false; - } - return true; - }); - var any_25 = defineInlineFunction('kotlin.kotlin.collections.any_9hsmwz$', wrapFunction(function () { - var any = _.kotlin.collections.any_tmsbgo$; - return function ($receiver) { - return any($receiver.storage); - }; - })); - var any_26 = defineInlineFunction('kotlin.kotlin.collections.any_rnn80q$', wrapFunction(function () { - var any = _.kotlin.collections.any_se6h4x$; - return function ($receiver) { - return any($receiver.storage); - }; - })); - var any_27 = defineInlineFunction('kotlin.kotlin.collections.any_o5f02i$', wrapFunction(function () { - var any = _.kotlin.collections.any_964n91$; - return function ($receiver) { - return any($receiver.storage); - }; - })); - var any_28 = defineInlineFunction('kotlin.kotlin.collections.any_k4ndbq$', wrapFunction(function () { - var any = _.kotlin.collections.any_i2lc79$; - return function ($receiver) { - return any($receiver.storage); - }; - })); - var any_29 = defineInlineFunction('kotlin.kotlin.collections.any_qooazb$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }); - var any_30 = defineInlineFunction('kotlin.kotlin.collections.any_xmet5j$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }); - var any_31 = defineInlineFunction('kotlin.kotlin.collections.any_khxg6n$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }); - var any_32 = defineInlineFunction('kotlin.kotlin.collections.any_zbhqtl$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return true; - } - return false; - }); - var count_26 = defineInlineFunction('kotlin.kotlin.collections.count_qooazb$', function ($receiver, predicate) { - var tmp$; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_27 = defineInlineFunction('kotlin.kotlin.collections.count_xmet5j$', function ($receiver, predicate) { - var tmp$; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_28 = defineInlineFunction('kotlin.kotlin.collections.count_khxg6n$', function ($receiver, predicate) { - var tmp$; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var count_29 = defineInlineFunction('kotlin.kotlin.collections.count_zbhqtl$', function ($receiver, predicate) { - var tmp$; - var count = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - count = count + 1 | 0; - } - return count; - }); - var fold_11 = defineInlineFunction('kotlin.kotlin.collections.fold_cc7t7m$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_12 = defineInlineFunction('kotlin.kotlin.collections.fold_hnxoxe$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_13 = defineInlineFunction('kotlin.kotlin.collections.fold_108ycy$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var fold_14 = defineInlineFunction('kotlin.kotlin.collections.fold_yg11c4$', function ($receiver, initial, operation) { - var tmp$; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation(accumulator, element); - } - return accumulator; - }); - var foldIndexed_11 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_rqncna$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_qls2om$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_5t7keu$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldIndexed_14 = defineInlineFunction('kotlin.kotlin.collections.foldIndexed_p2uijk$', function ($receiver, initial, operation) { - var tmp$, tmp$_0; - var index = 0; - var accumulator = initial; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - accumulator = operation((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), accumulator, element); - } - return accumulator; - }); - var foldRight_10 = defineInlineFunction('kotlin.kotlin.collections.foldRight_5s0g0$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)), accumulator); - } - return accumulator; - }; - })); - var foldRight_11 = defineInlineFunction('kotlin.kotlin.collections.foldRight_lyd3s4$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)), accumulator); - } - return accumulator; - }; - })); - var foldRight_12 = defineInlineFunction('kotlin.kotlin.collections.foldRight_dta9x0$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)), accumulator); - } - return accumulator; - }; - })); - var foldRight_13 = defineInlineFunction('kotlin.kotlin.collections.foldRight_5zirmo$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, initial, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)), accumulator); - } - return accumulator; - }; - })); - var foldRightIndexed_10 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_fk7jvo$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_11 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_d0iq0w$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_im8vyw$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var foldRightIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.foldRightIndexed_fcpaf8$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, initial, operation) { - var index = get_lastIndex($receiver.storage); - var accumulator = initial; - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var forEach_12 = defineInlineFunction('kotlin.kotlin.collections.forEach_eawsih$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var forEach_13 = defineInlineFunction('kotlin.kotlin.collections.forEach_1whwah$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var forEach_14 = defineInlineFunction('kotlin.kotlin.collections.forEach_59pkyn$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var forEach_15 = defineInlineFunction('kotlin.kotlin.collections.forEach_k1g2rr$', function ($receiver, action) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - action(element); - } - }); - var forEachIndexed_11 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_xun1h1$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_domd91$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_dagzgd$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - var forEachIndexed_14 = defineInlineFunction('kotlin.kotlin.collections.forEachIndexed_kerkq3$', function ($receiver, action) { - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - action((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), item); - } - }); - function max_16($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_2($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (uintCompare(max.data, e.data) < 0) - max = e; - } - return max; - } - function max_17($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_3($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (ulongCompare(max.data, e.data) < 0) - max = e; - } - return max; - } - function max_18($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_0($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (Kotlin.primitiveCompareTo(max.data & 255, e.data & 255) < 0) - max = e; - } - return max; - } - function max_19($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_1($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (Kotlin.primitiveCompareTo(max.data & 65535, e.data & 65535) < 0) - max = e; - } - return max; - } - var maxBy_12 = defineInlineFunction('kotlin.kotlin.collections.maxBy_ds5w84$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var maxElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_13 = defineInlineFunction('kotlin.kotlin.collections.maxBy_j7uywm$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var maxElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_14 = defineInlineFunction('kotlin.kotlin.collections.maxBy_uuq3a6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var maxElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - var maxBy_15 = defineInlineFunction('kotlin.kotlin.collections.maxBy_k4xxks$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var maxElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return maxElem; - var maxValue = selector(maxElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(maxValue, v) < 0) { - maxElem = e; - maxValue = v; - } - } - return maxElem; - }; - })); - function maxWith_12($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_2($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_13($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_3($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_14($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_0($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function maxWith_15($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var max = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_1($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(max, e) < 0) - max = e; - } - return max; - } - function min_16($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_2($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (uintCompare(min.data, e.data) > 0) - min = e; - } - return min; - } - function min_17($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_3($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (ulongCompare(min.data, e.data) > 0) - min = e; - } - return min; - } - function min_18($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_0($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (Kotlin.primitiveCompareTo(min.data & 255, e.data & 255) > 0) - min = e; - } - return min; - } - function min_19($receiver) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_1($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (Kotlin.primitiveCompareTo(min.data & 65535, e.data & 65535) > 0) - min = e; - } - return min; - } - var minBy_12 = defineInlineFunction('kotlin.kotlin.collections.minBy_ds5w84$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var minElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_13 = defineInlineFunction('kotlin.kotlin.collections.minBy_j7uywm$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var minElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_14 = defineInlineFunction('kotlin.kotlin.collections.minBy_uuq3a6$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var minElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - var minBy_15 = defineInlineFunction('kotlin.kotlin.collections.minBy_k4xxks$', wrapFunction(function () { - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, selector) { - if ($receiver.isEmpty()) - return null; - var minElem = $receiver.get_za3lpa$(0); - var lastIndex = get_lastIndex($receiver.storage); - if (lastIndex === 0) - return minElem; - var minValue = selector(minElem); - for (var i = 1; i <= lastIndex; i++) { - var e = $receiver.get_za3lpa$(i); - var v = selector(e); - if (Kotlin.compareTo(minValue, v) > 0) { - minElem = e; - minValue = v; - } - } - return minElem; - }; - })); - function minWith_12($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_2($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_13($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_3($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_14($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_0($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - function minWith_15($receiver, comparator) { - var tmp$; - if ($receiver.isEmpty()) - return null; - var min = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex_1($receiver.storage); - for (var i = 1; i <= tmp$; i++) { - var e = $receiver.get_za3lpa$(i); - if (comparator.compare(min, e) > 0) - min = e; - } - return min; - } - var none_25 = defineInlineFunction('kotlin.kotlin.collections.none_9hsmwz$', function ($receiver) { - return $receiver.isEmpty(); - }); - var none_26 = defineInlineFunction('kotlin.kotlin.collections.none_rnn80q$', function ($receiver) { - return $receiver.isEmpty(); - }); - var none_27 = defineInlineFunction('kotlin.kotlin.collections.none_o5f02i$', function ($receiver) { - return $receiver.isEmpty(); - }); - var none_28 = defineInlineFunction('kotlin.kotlin.collections.none_k4ndbq$', function ($receiver) { - return $receiver.isEmpty(); - }); - var none_29 = defineInlineFunction('kotlin.kotlin.collections.none_qooazb$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }); - var none_30 = defineInlineFunction('kotlin.kotlin.collections.none_xmet5j$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }); - var none_31 = defineInlineFunction('kotlin.kotlin.collections.none_khxg6n$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }); - var none_32 = defineInlineFunction('kotlin.kotlin.collections.none_zbhqtl$', function ($receiver, predicate) { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) - return false; - } - return true; - }); - var reduce_11 = defineInlineFunction('kotlin.kotlin.collections.reduce_3r8egg$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduce_12 = defineInlineFunction('kotlin.kotlin.collections.reduce_753k0q$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduce_13 = defineInlineFunction('kotlin.kotlin.collections.reduce_go0zkm$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduce_14 = defineInlineFunction('kotlin.kotlin.collections.reduce_t1b21c$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduceIndexed_11 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_mwzc8c$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduceIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_ufwt8q$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduceIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_7gvi6e$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduceIndexed_14 = defineInlineFunction('kotlin.kotlin.collections.reduceIndexed_pd8rcc$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, operation) { - var tmp$; - if ($receiver.isEmpty()) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$(0); - tmp$ = get_lastIndex($receiver.storage); - for (var index = 1; index <= tmp$; index++) { - accumulator = operation(index, accumulator, $receiver.get_za3lpa$(index)); - } - return accumulator; - }; - })); - var reduceRight_10 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_3r8egg$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0)), accumulator); - } - return accumulator; - }; - })); - var reduceRight_11 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_753k0q$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0)), accumulator); - } - return accumulator; - }; - })); - var reduceRight_12 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_go0zkm$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0)), accumulator); - } - return accumulator; - }; - })); - var reduceRight_13 = defineInlineFunction('kotlin.kotlin.collections.reduceRight_t1b21c$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, operation) { - var tmp$, tmp$_0; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation($receiver.get_za3lpa$((tmp$_0 = index, index = tmp$_0 - 1 | 0, tmp$_0)), accumulator); - } - return accumulator; - }; - })); - var reduceRightIndexed_10 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_mwzc8c$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_tmsbgo$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_11 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_ufwt8q$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_se6h4x$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_12 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_7gvi6e$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_964n91$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var reduceRightIndexed_13 = defineInlineFunction('kotlin.kotlin.collections.reduceRightIndexed_pd8rcc$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - var get_lastIndex = _.kotlin.collections.get_lastIndex_i2lc79$; - return function ($receiver, operation) { - var tmp$; - var index = get_lastIndex($receiver.storage); - if (index < 0) - throw UnsupportedOperationException_init("Empty array can't be reduced."); - var accumulator = $receiver.get_za3lpa$((tmp$ = index, index = tmp$ - 1 | 0, tmp$)); - while (index >= 0) { - accumulator = operation(index, $receiver.get_za3lpa$(index), accumulator); - index = index - 1 | 0; - } - return accumulator; - }; - })); - var sumBy_11 = defineInlineFunction('kotlin.kotlin.collections.sumBy_ea99pf$', wrapFunction(function () { - var UInt = _.kotlin.UInt; - return function ($receiver, selector) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + selector(element).data | 0); - } - return sum; - }; - })); - var sumBy_12 = defineInlineFunction('kotlin.kotlin.collections.sumBy_1x5f3j$', wrapFunction(function () { - var UInt = _.kotlin.UInt; - return function ($receiver, selector) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + selector(element).data | 0); - } - return sum; - }; - })); - var sumBy_13 = defineInlineFunction('kotlin.kotlin.collections.sumBy_59225l$', wrapFunction(function () { - var UInt = _.kotlin.UInt; - return function ($receiver, selector) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + selector(element).data | 0); - } - return sum; - }; - })); - var sumBy_14 = defineInlineFunction('kotlin.kotlin.collections.sumBy_k23lkt$', wrapFunction(function () { - var UInt = _.kotlin.UInt; - return function ($receiver, selector) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + selector(element).data | 0); - } - return sum; - }; - })); - var sumByDouble_11 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_ikkbw$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += selector(element); - } - return sum; - }); - var sumByDouble_12 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_hgvjqe$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += selector(element); - } - return sum; - }); - var sumByDouble_13 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_er5b4e$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += selector(element); - } - return sum; - }); - var sumByDouble_14 = defineInlineFunction('kotlin.kotlin.collections.sumByDouble_q0eyz0$', function ($receiver, selector) { - var tmp$; - var sum = 0.0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum += selector(element); - } - return sum; - }); - function zip_59($receiver, other) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other[i])); - } - return list; - } - function zip_60($receiver, other) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other[i])); - } - return list; - } - function zip_61($receiver, other) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other[i])); - } - return list; - } - function zip_62($receiver, other) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other[i])); - } - return list; - } - var zip_63 = defineInlineFunction('kotlin.kotlin.collections.zip_ilfx1p$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other[i])); - } - return list; - }; - })); - var zip_64 = defineInlineFunction('kotlin.kotlin.collections.zip_fbdgv3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other[i])); - } - return list; - }; - })); - var zip_65 = defineInlineFunction('kotlin.kotlin.collections.zip_ibakv3$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other[i])); - } - return list; - }; - })); - var zip_66 = defineInlineFunction('kotlin.kotlin.collections.zip_fmivq1$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.length); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other[i])); - } - return list; - }; - })); - function zip_67($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - } - function zip_68($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - } - function zip_69($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - } - function zip_70($receiver, other) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init_0(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(to($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - } - var zip_71 = defineInlineFunction('kotlin.kotlin.collections.zip_jz53jz$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - }; - })); - var zip_72 = defineInlineFunction('kotlin.kotlin.collections.zip_hqy71z$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - }; - })); - var zip_73 = defineInlineFunction('kotlin.kotlin.collections.zip_ky5z4v$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - }; - })); - var zip_74 = defineInlineFunction('kotlin.kotlin.collections.zip_34ejj$', wrapFunction(function () { - var collectionSizeOrDefault = _.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var tmp$, tmp$_0; - var arraySize = $receiver.size; - var list = ArrayList_init(Math_0.min(collectionSizeOrDefault(other, 10), arraySize)); - var i = 0; - tmp$ = other.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (i >= arraySize) - break; - list.add_11rb$(transform($receiver.get_za3lpa$((tmp$_0 = i, i = tmp$_0 + 1 | 0, tmp$_0)), element)); - } - return list; - }; - })); - function zip_75($receiver, other) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - } - function zip_76($receiver, other) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - } - function zip_77($receiver, other) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - } - function zip_78($receiver, other) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init_0(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(to($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - } - var zip_79 = defineInlineFunction('kotlin.kotlin.collections.zip_2rncf9$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - }; - })); - var zip_80 = defineInlineFunction('kotlin.kotlin.collections.zip_zcfx1j$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - }; - })); - var zip_81 = defineInlineFunction('kotlin.kotlin.collections.zip_wjicwn$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - }; - })); - var zip_82 = defineInlineFunction('kotlin.kotlin.collections.zip_arkjhh$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - var Math_0 = Math; - return function ($receiver, other, transform) { - var size = Math_0.min($receiver.size, other.size); - var list = ArrayList_init(size); - for (var i = 0; i < size; i++) { - list.add_11rb$(transform($receiver.get_za3lpa$(i), other.get_za3lpa$(i))); - } - return list; - }; - })); - function sum_23($receiver) { - var tmp$; - var sum = new UInt(0); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = new UInt(sum.data + element.data | 0); - } - return sum; - } - function sum_24($receiver) { - var tmp$; - var sum = new ULong(Kotlin.Long.ZERO); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = new ULong(sum.data.add(element.data)); - } - return sum; - } - function sum_25($receiver) { - var tmp$; - var sum = new UInt(0); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = new UInt(sum.data + (new UInt(element.data & 255)).data | 0); - } - return sum; - } - function sum_26($receiver) { - var tmp$; - var sum = new UInt(0); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - sum = new UInt(sum.data + (new UInt(element.data & 65535)).data | 0); - } - return sum; - } - var sum_27 = defineInlineFunction('kotlin.kotlin.collections.sum_9hsmwz$', wrapFunction(function () { - var sum = _.kotlin.collections.sum_tmsbgo$; - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init(sum($receiver.storage)); - }; - })); - var sum_28 = defineInlineFunction('kotlin.kotlin.collections.sum_rnn80q$', wrapFunction(function () { - var sum = _.kotlin.collections.sum_se6h4x$; - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(sum($receiver.storage)); - }; - })); - var sum_29 = defineInlineFunction('kotlin.kotlin.collections.sum_o5f02i$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var UInt = _.kotlin.UInt; - var sum$lambda = wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (it) { - return new UInt_init(it.data & 255); - }; - }); - return function ($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + (new UInt(element.data & 255)).data | 0); - } - return sum; - }; - })); - var sum_30 = defineInlineFunction('kotlin.kotlin.collections.sum_k4ndbq$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var UInt = _.kotlin.UInt; - var sum$lambda = wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (it) { - return new UInt_init(it.data & 65535); - }; - }); - return function ($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + (new UInt(element.data & 65535)).data | 0); - } - return sum; - }; - })); - function toUByteArray_1($receiver) { - var tmp$, tmp$_0; - var result = UByteArray_init($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result.set_2c6cbe$((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), element); - } - return result; - } - function toUIntArray_1($receiver) { - var tmp$, tmp$_0; - var result = UIntArray_init($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result.set_6sqrdv$((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), element); - } - return result; - } - function toULongArray_1($receiver) { - var tmp$, tmp$_0; - var result = ULongArray_init($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result.set_2ccimm$((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), element); - } - return result; - } - function toUShortArray_1($receiver) { - var tmp$, tmp$_0; - var result = UShortArray_init($receiver.size); - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result.set_1pe3u2$((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0), element); - } - return result; - } - function sum_31($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + element.data | 0); - } - return sum; - } - function sum_32($receiver) { - var tmp$; - var sum = new ULong(Kotlin.Long.ZERO); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new ULong(sum.data.add(element.data)); - } - return sum; - } - function sum_33($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + (new UInt(element.data & 255)).data | 0); - } - return sum; - } - function sum_34($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + (new UInt(element.data & 65535)).data | 0); - } - return sum; - } - function maxOf_1(a, b) { - return uintCompare(a.data, b.data) >= 0 ? a : b; - } - function maxOf_2(a, b) { - return ulongCompare(a.data, b.data) >= 0 ? a : b; - } - function maxOf_3(a, b) { - return Kotlin.primitiveCompareTo(a.data & 255, b.data & 255) >= 0 ? a : b; - } - function maxOf_4(a, b) { - return Kotlin.primitiveCompareTo(a.data & 65535, b.data & 65535) >= 0 ? a : b; - } - var maxOf_5 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_fdjnod$', wrapFunction(function () { - var maxOf = _.kotlin.comparisons.maxOf_oqfnby$; - return function (a, b, c) { - return maxOf(a, maxOf(b, c)); - }; - })); - var maxOf_6 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_yrdxh8$', wrapFunction(function () { - var maxOf = _.kotlin.comparisons.maxOf_jpm79w$; - return function (a, b, c) { - return maxOf(a, maxOf(b, c)); - }; - })); - var maxOf_7 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_l1b9e8$', wrapFunction(function () { - var maxOf = _.kotlin.comparisons.maxOf_jl2jf8$; - return function (a, b, c) { - return maxOf(a, maxOf(b, c)); - }; - })); - var maxOf_8 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_3bef2c$', wrapFunction(function () { - var maxOf = _.kotlin.comparisons.maxOf_2ahd1g$; - return function (a, b, c) { - return maxOf(a, maxOf(b, c)); - }; - })); - function minOf_1(a, b) { - return uintCompare(a.data, b.data) <= 0 ? a : b; - } - function minOf_2(a, b) { - return ulongCompare(a.data, b.data) <= 0 ? a : b; - } - function minOf_3(a, b) { - return Kotlin.primitiveCompareTo(a.data & 255, b.data & 255) <= 0 ? a : b; - } - function minOf_4(a, b) { - return Kotlin.primitiveCompareTo(a.data & 65535, b.data & 65535) <= 0 ? a : b; - } - var minOf_5 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_fdjnod$', wrapFunction(function () { - var minOf = _.kotlin.comparisons.minOf_oqfnby$; - return function (a, b, c) { - return minOf(a, minOf(b, c)); - }; - })); - var minOf_6 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_yrdxh8$', wrapFunction(function () { - var minOf = _.kotlin.comparisons.minOf_jpm79w$; - return function (a, b, c) { - return minOf(a, minOf(b, c)); - }; - })); - var minOf_7 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_l1b9e8$', wrapFunction(function () { - var minOf = _.kotlin.comparisons.minOf_jl2jf8$; - return function (a, b, c) { - return minOf(a, minOf(b, c)); - }; - })); - var minOf_8 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_3bef2c$', wrapFunction(function () { - var minOf = _.kotlin.comparisons.minOf_2ahd1g$; - return function (a, b, c) { - return minOf(a, minOf(b, c)); - }; - })); - var random_35 = defineInlineFunction('kotlin.kotlin.ranges.random_fouy9j$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.ranges.random_7v08js$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - var random_36 = defineInlineFunction('kotlin.kotlin.ranges.random_6ij5nc$', wrapFunction(function () { - var Random = _.kotlin.random.Random; - var random = _.kotlin.ranges.random_nk0vix$; - return function ($receiver) { - return random($receiver, Random.Default); - }; - })); - function random_37($receiver, random) { - try { - return nextUInt_2(random, $receiver); - } - catch (e) { - if (Kotlin.isType(e, IllegalArgumentException)) { - throw new NoSuchElementException(e.message); - } - else - throw e; - } - } - function random_38($receiver, random) { - try { - return nextULong_2(random, $receiver); - } - catch (e) { - if (Kotlin.isType(e, IllegalArgumentException)) { - throw new NoSuchElementException(e.message); - } - else - throw e; - } - } - var contains_43 = defineInlineFunction('kotlin.kotlin.ranges.contains_dwfzbl$', function ($receiver, element) { - return element != null && $receiver.contains_mef7kx$(element); - }); - var contains_44 = defineInlineFunction('kotlin.kotlin.ranges.contains_ky6e3h$', function ($receiver, element) { - return element != null && $receiver.contains_mef7kx$(element); - }); - function contains_45($receiver, value) { - return $receiver.contains_mef7kx$(new UInt(value.data & 255)); - } - function contains_46($receiver, value) { - return $receiver.contains_mef7kx$(new ULong(Kotlin.Long.fromInt(value.data).and(L255))); - } - function contains_47($receiver, value) { - return $receiver.contains_mef7kx$(new ULong(Kotlin.Long.fromInt(value.data).and(L4294967295))); - } - function contains_48($receiver, value) { - var tmp$; - var tmp$_0 = (tmp$ = new ULong(value.data.shiftRightUnsigned(32))) != null ? tmp$.equals(new ULong(Kotlin.Long.ZERO)) : null; - if (tmp$_0) { - tmp$_0 = $receiver.contains_mef7kx$(new UInt(value.data.toInt())); - } - return tmp$_0; - } - function contains_49($receiver, value) { - return $receiver.contains_mef7kx$(new UInt(value.data & 65535)); - } - function contains_50($receiver, value) { - return $receiver.contains_mef7kx$(new ULong(Kotlin.Long.fromInt(value.data).and(L65535))); - } - function downTo_16($receiver, to) { - return UIntProgression$Companion_getInstance().fromClosedRange_fjk8us$(new UInt($receiver.data & 255), new UInt(to.data & 255), -1); - } - function downTo_17($receiver, to) { - return UIntProgression$Companion_getInstance().fromClosedRange_fjk8us$($receiver, to, -1); - } - function downTo_18($receiver, to) { - return ULongProgression$Companion_getInstance().fromClosedRange_15zasp$($receiver, to, L_1); - } - function downTo_19($receiver, to) { - return UIntProgression$Companion_getInstance().fromClosedRange_fjk8us$(new UInt($receiver.data & 65535), new UInt(to.data & 65535), -1); - } - function reversed_18($receiver) { - return UIntProgression$Companion_getInstance().fromClosedRange_fjk8us$($receiver.last, $receiver.first, -$receiver.step | 0); - } - function reversed_19($receiver) { - return ULongProgression$Companion_getInstance().fromClosedRange_15zasp$($receiver.last, $receiver.first, $receiver.step.unaryMinus()); - } - function step_2($receiver, step) { - checkStepIsPositive(step > 0, step); - return UIntProgression$Companion_getInstance().fromClosedRange_fjk8us$($receiver.first, $receiver.last, $receiver.step > 0 ? step : -step | 0); - } - function step_3($receiver, step) { - checkStepIsPositive(step.toNumber() > 0, step); - return ULongProgression$Companion_getInstance().fromClosedRange_15zasp$($receiver.first, $receiver.last, $receiver.step.toNumber() > 0 ? step : step.unaryMinus()); - } - function until_16($receiver, to) { - if (Kotlin.primitiveCompareTo(to.data & 255, UByte$Companion_getInstance().MIN_VALUE.data & 255) <= 0) - return UIntRange$Companion_getInstance().EMPTY; - var tmp$ = new UInt($receiver.data & 255); - var other = new UInt(1); - return new UIntRange(tmp$, new UInt((new UInt(to.data & 255)).data - other.data | 0)); - } - function until_17($receiver, to) { - if (uintCompare(to.data, UInt$Companion_getInstance().MIN_VALUE.data) <= 0) - return UIntRange$Companion_getInstance().EMPTY; - return new UIntRange($receiver, new UInt(to.data - (new UInt(1)).data | 0)); - } - function until_18($receiver, to) { - if (ulongCompare(to.data, ULong$Companion_getInstance().MIN_VALUE.data) <= 0) - return ULongRange$Companion_getInstance().EMPTY; - return new ULongRange_0($receiver, new ULong(to.data.subtract((new ULong(Kotlin.Long.fromInt((new UInt(1)).data).and(L4294967295))).data))); - } - function until_19($receiver, to) { - if (Kotlin.primitiveCompareTo(to.data & 65535, UShort$Companion_getInstance().MIN_VALUE.data & 65535) <= 0) - return UIntRange$Companion_getInstance().EMPTY; - var tmp$ = new UInt($receiver.data & 65535); - var other = new UInt(1); - return new UIntRange(tmp$, new UInt((new UInt(to.data & 65535)).data - other.data | 0)); - } - function coerceAtLeast_6($receiver, minimumValue) { - return uintCompare($receiver.data, minimumValue.data) < 0 ? minimumValue : $receiver; - } - function coerceAtLeast_7($receiver, minimumValue) { - return ulongCompare($receiver.data, minimumValue.data) < 0 ? minimumValue : $receiver; - } - function coerceAtLeast_8($receiver, minimumValue) { - return Kotlin.primitiveCompareTo($receiver.data & 255, minimumValue.data & 255) < 0 ? minimumValue : $receiver; - } - function coerceAtLeast_9($receiver, minimumValue) { - return Kotlin.primitiveCompareTo($receiver.data & 65535, minimumValue.data & 65535) < 0 ? minimumValue : $receiver; - } - function coerceAtMost_6($receiver, maximumValue) { - return uintCompare($receiver.data, maximumValue.data) > 0 ? maximumValue : $receiver; - } - function coerceAtMost_7($receiver, maximumValue) { - return ulongCompare($receiver.data, maximumValue.data) > 0 ? maximumValue : $receiver; - } - function coerceAtMost_8($receiver, maximumValue) { - return Kotlin.primitiveCompareTo($receiver.data & 255, maximumValue.data & 255) > 0 ? maximumValue : $receiver; - } - function coerceAtMost_9($receiver, maximumValue) { - return Kotlin.primitiveCompareTo($receiver.data & 65535, maximumValue.data & 65535) > 0 ? maximumValue : $receiver; - } - function coerceIn_10($receiver, minimumValue, maximumValue) { - if (uintCompare(minimumValue.data, maximumValue.data) > 0) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if (uintCompare($receiver.data, minimumValue.data) < 0) - return minimumValue; - if (uintCompare($receiver.data, maximumValue.data) > 0) - return maximumValue; - return $receiver; - } - function coerceIn_11($receiver, minimumValue, maximumValue) { - if (ulongCompare(minimumValue.data, maximumValue.data) > 0) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if (ulongCompare($receiver.data, minimumValue.data) < 0) - return minimumValue; - if (ulongCompare($receiver.data, maximumValue.data) > 0) - return maximumValue; - return $receiver; - } - function coerceIn_12($receiver, minimumValue, maximumValue) { - if (Kotlin.primitiveCompareTo(minimumValue.data & 255, maximumValue.data & 255) > 0) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if (Kotlin.primitiveCompareTo($receiver.data & 255, minimumValue.data & 255) < 0) - return minimumValue; - if (Kotlin.primitiveCompareTo($receiver.data & 255, maximumValue.data & 255) > 0) - return maximumValue; - return $receiver; - } - function coerceIn_13($receiver, minimumValue, maximumValue) { - if (Kotlin.primitiveCompareTo(minimumValue.data & 65535, maximumValue.data & 65535) > 0) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: maximum ' + maximumValue + ' is less than minimum ' + minimumValue + '.'); - if (Kotlin.primitiveCompareTo($receiver.data & 65535, minimumValue.data & 65535) < 0) - return minimumValue; - if (Kotlin.primitiveCompareTo($receiver.data & 65535, maximumValue.data & 65535) > 0) - return maximumValue; - return $receiver; - } - function coerceIn_14($receiver, range) { - var tmp$; - if (Kotlin.isType(range, ClosedFloatingPointRange)) { - return coerceIn_6($receiver, range); - } - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: ' + range + '.'); - if (uintCompare($receiver.data, range.start.data) < 0) - tmp$ = range.start; - else { - if (uintCompare($receiver.data, range.endInclusive.data) > 0) - tmp$ = range.endInclusive; - else - tmp$ = $receiver; - } - return tmp$; - } - function coerceIn_15($receiver, range) { - var tmp$; - if (Kotlin.isType(range, ClosedFloatingPointRange)) { - return coerceIn_6($receiver, range); - } - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot coerce value to an empty range: ' + range + '.'); - if (ulongCompare($receiver.data, range.start.data) < 0) - tmp$ = range.start; - else { - if (ulongCompare($receiver.data, range.endInclusive.data) > 0) - tmp$ = range.endInclusive; - else - tmp$ = $receiver; - } - return tmp$; - } - function sum_35($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + element.data | 0); - } - return sum; - } - function sum_36($receiver) { - var tmp$; - var sum = new ULong(Kotlin.Long.ZERO); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new ULong(sum.data.add(element.data)); - } - return sum; - } - function sum_37($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + (new UInt(element.data & 255)).data | 0); - } - return sum; - } - function sum_38($receiver) { - var tmp$; - var sum = new UInt(0); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - sum = new UInt(sum.data + (new UInt(element.data & 65535)).data | 0); - } - return sum; - } - var PI; - var E; - function Annotation() { - } - Annotation.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Annotation', interfaces: []}; - function CharSequence() { - } - CharSequence.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'CharSequence', interfaces: []}; - function Iterable() { - } - Iterable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Iterable', interfaces: []}; - function MutableIterable() { - } - MutableIterable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableIterable', interfaces: [Iterable]}; - function Collection() { - } - Collection.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Collection', interfaces: [Iterable]}; - function MutableCollection() { - } - MutableCollection.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableCollection', interfaces: [MutableIterable, Collection]}; - function List() { - } - List.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'List', interfaces: [Collection]}; - function MutableList() { - } - MutableList.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableList', interfaces: [MutableCollection, List]}; - function Set() { - } - Set.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Set', interfaces: [Collection]}; - function MutableSet() { - } - MutableSet.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableSet', interfaces: [MutableCollection, Set]}; - function Map() { - } - Map.prototype.getOrDefault_xwzc9p$ = function (key, defaultValue) { - var tmp$; - return (tmp$ = null) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }; - function Map$Entry() { - } - Map$Entry.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Entry', interfaces: []}; - Map.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Map', interfaces: []}; - function MutableMap() { - } - MutableMap.prototype.remove_xwzc9p$ = function (key, value) { - return true; - }; - function MutableMap$MutableEntry() { - } - MutableMap$MutableEntry.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableEntry', interfaces: [Map$Entry]}; - MutableMap.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableMap', interfaces: [Map]}; - function Function_0() { - } - Function_0.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Function', interfaces: []}; - function Iterator() { - } - Iterator.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Iterator', interfaces: []}; - function MutableIterator() { - } - MutableIterator.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableIterator', interfaces: [Iterator]}; - function ListIterator() { - } - ListIterator.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ListIterator', interfaces: [Iterator]}; - function MutableListIterator() { - } - MutableListIterator.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableListIterator', interfaces: [MutableIterator, ListIterator]}; - function ByteIterator() { - } - ByteIterator.prototype.next = function () { - return this.nextByte(); - }; - ByteIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'ByteIterator', interfaces: [Iterator]}; - function CharIterator() { - } - CharIterator.prototype.next = function () { - return toBoxedChar(this.nextChar()); - }; - CharIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'CharIterator', interfaces: [Iterator]}; - function ShortIterator() { - } - ShortIterator.prototype.next = function () { - return this.nextShort(); - }; - ShortIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'ShortIterator', interfaces: [Iterator]}; - function IntIterator() { - } - IntIterator.prototype.next = function () { - return this.nextInt(); - }; - IntIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'IntIterator', interfaces: [Iterator]}; - function LongIterator() { - } - LongIterator.prototype.next = function () { - return this.nextLong(); - }; - LongIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'LongIterator', interfaces: [Iterator]}; - function FloatIterator() { - } - FloatIterator.prototype.next = function () { - return this.nextFloat(); - }; - FloatIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'FloatIterator', interfaces: [Iterator]}; - function DoubleIterator() { - } - DoubleIterator.prototype.next = function () { - return this.nextDouble(); - }; - DoubleIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'DoubleIterator', interfaces: [Iterator]}; - function BooleanIterator() { - } - BooleanIterator.prototype.next = function () { - return this.nextBoolean(); - }; - BooleanIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'BooleanIterator', interfaces: [Iterator]}; - function CharProgressionIterator(first, last, step) { - CharIterator.call(this); - this.step = step; - this.finalElement_0 = last | 0; - this.hasNext_0 = this.step > 0 ? first <= last : first >= last; - this.next_0 = this.hasNext_0 ? first | 0 : this.finalElement_0; - } - CharProgressionIterator.prototype.hasNext = function () { - return this.hasNext_0; - }; - CharProgressionIterator.prototype.nextChar = function () { - var value = this.next_0; - if (value === this.finalElement_0) { - if (!this.hasNext_0) - throw NoSuchElementException_init(); - this.hasNext_0 = false; - } - else { - this.next_0 = this.next_0 + this.step | 0; - } - return toChar(value); - }; - CharProgressionIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'CharProgressionIterator', interfaces: [CharIterator]}; - function IntProgressionIterator(first, last, step) { - IntIterator.call(this); - this.step = step; - this.finalElement_0 = last; - this.hasNext_0 = this.step > 0 ? first <= last : first >= last; - this.next_0 = this.hasNext_0 ? first : this.finalElement_0; - } - IntProgressionIterator.prototype.hasNext = function () { - return this.hasNext_0; - }; - IntProgressionIterator.prototype.nextInt = function () { - var value = this.next_0; - if (value === this.finalElement_0) { - if (!this.hasNext_0) - throw NoSuchElementException_init(); - this.hasNext_0 = false; - } - else { - this.next_0 = this.next_0 + this.step | 0; - } - return value; - }; - IntProgressionIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'IntProgressionIterator', interfaces: [IntIterator]}; - function LongProgressionIterator(first, last, step) { - LongIterator.call(this); - this.step = step; - this.finalElement_0 = last; - this.hasNext_0 = this.step.toNumber() > 0 ? first.compareTo_11rb$(last) <= 0 : first.compareTo_11rb$(last) >= 0; - this.next_0 = this.hasNext_0 ? first : this.finalElement_0; - } - LongProgressionIterator.prototype.hasNext = function () { - return this.hasNext_0; - }; - LongProgressionIterator.prototype.nextLong = function () { - var value = this.next_0; - if (equals(value, this.finalElement_0)) { - if (!this.hasNext_0) - throw NoSuchElementException_init(); - this.hasNext_0 = false; - } - else { - this.next_0 = this.next_0.add(this.step); - } - return value; - }; - LongProgressionIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'LongProgressionIterator', interfaces: [LongIterator]}; - function CharProgression(start, endInclusive, step) { - CharProgression$Companion_getInstance(); - if (step === 0) - throw IllegalArgumentException_init_0('Step must be non-zero.'); - if (step === -2147483648) - throw IllegalArgumentException_init_0('Step must be greater than Int.MIN_VALUE to avoid overflow on negation.'); - this.first = start; - this.last = toChar(getProgressionLastElement(start | 0, endInclusive | 0, step)); - this.step = step; - } - CharProgression.prototype.iterator = function () { - return new CharProgressionIterator(this.first, this.last, this.step); - }; - CharProgression.prototype.isEmpty = function () { - return this.step > 0 ? this.first > this.last : this.first < this.last; - }; - CharProgression.prototype.equals = function (other) { - return Kotlin.isType(other, CharProgression) && (this.isEmpty() && other.isEmpty() || (this.first === other.first && this.last === other.last && this.step === other.step)); - }; - CharProgression.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * ((31 * (this.first | 0) | 0) + (this.last | 0) | 0) | 0) + this.step | 0; - }; - CharProgression.prototype.toString = function () { - return this.step > 0 ? String.fromCharCode(this.first) + '..' + String.fromCharCode(this.last) + ' step ' + this.step : String.fromCharCode(this.first) + ' downTo ' + String.fromCharCode(this.last) + ' step ' + (-this.step | 0); - }; - function CharProgression$Companion() { - CharProgression$Companion_instance = this; - } - CharProgression$Companion.prototype.fromClosedRange_ayra44$ = function (rangeStart, rangeEnd, step) { - return new CharProgression(rangeStart, rangeEnd, step); - }; - CharProgression$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var CharProgression$Companion_instance = null; - function CharProgression$Companion_getInstance() { - if (CharProgression$Companion_instance === null) { - new CharProgression$Companion(); - } - return CharProgression$Companion_instance; - } - CharProgression.$metadata$ = {kind: Kind_CLASS, simpleName: 'CharProgression', interfaces: [Iterable]}; - function IntProgression(start, endInclusive, step) { - IntProgression$Companion_getInstance(); - if (step === 0) - throw IllegalArgumentException_init_0('Step must be non-zero.'); - if (step === -2147483648) - throw IllegalArgumentException_init_0('Step must be greater than Int.MIN_VALUE to avoid overflow on negation.'); - this.first = start; - this.last = getProgressionLastElement(start, endInclusive, step); - this.step = step; - } - IntProgression.prototype.iterator = function () { - return new IntProgressionIterator(this.first, this.last, this.step); - }; - IntProgression.prototype.isEmpty = function () { - return this.step > 0 ? this.first > this.last : this.first < this.last; - }; - IntProgression.prototype.equals = function (other) { - return Kotlin.isType(other, IntProgression) && (this.isEmpty() && other.isEmpty() || (this.first === other.first && this.last === other.last && this.step === other.step)); - }; - IntProgression.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * ((31 * this.first | 0) + this.last | 0) | 0) + this.step | 0; - }; - IntProgression.prototype.toString = function () { - return this.step > 0 ? this.first.toString() + '..' + this.last + ' step ' + this.step : this.first.toString() + ' downTo ' + this.last + ' step ' + (-this.step | 0); - }; - function IntProgression$Companion() { - IntProgression$Companion_instance = this; - } - IntProgression$Companion.prototype.fromClosedRange_qt1dr2$ = function (rangeStart, rangeEnd, step) { - return new IntProgression(rangeStart, rangeEnd, step); - }; - IntProgression$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var IntProgression$Companion_instance = null; - function IntProgression$Companion_getInstance() { - if (IntProgression$Companion_instance === null) { - new IntProgression$Companion(); - } - return IntProgression$Companion_instance; - } - IntProgression.$metadata$ = {kind: Kind_CLASS, simpleName: 'IntProgression', interfaces: [Iterable]}; - function LongProgression(start, endInclusive, step) { - LongProgression$Companion_getInstance(); - if (equals(step, L0)) - throw IllegalArgumentException_init_0('Step must be non-zero.'); - if (equals(step, Long$Companion$MIN_VALUE)) - throw IllegalArgumentException_init_0('Step must be greater than Long.MIN_VALUE to avoid overflow on negation.'); - this.first = start; - this.last = getProgressionLastElement_0(start, endInclusive, step); - this.step = step; - } - LongProgression.prototype.iterator = function () { - return new LongProgressionIterator(this.first, this.last, this.step); - }; - LongProgression.prototype.isEmpty = function () { - return this.step.toNumber() > 0 ? this.first.compareTo_11rb$(this.last) > 0 : this.first.compareTo_11rb$(this.last) < 0; - }; - LongProgression.prototype.equals = function (other) { - return Kotlin.isType(other, LongProgression) && (this.isEmpty() && other.isEmpty() || (equals(this.first, other.first) && equals(this.last, other.last) && equals(this.step, other.step))); - }; - LongProgression.prototype.hashCode = function () { - return this.isEmpty() ? -1 : Kotlin.Long.fromInt(31).multiply(Kotlin.Long.fromInt(31).multiply(this.first.xor(this.first.shiftRightUnsigned(32))).add(this.last.xor(this.last.shiftRightUnsigned(32)))).add(this.step.xor(this.step.shiftRightUnsigned(32))).toInt(); - }; - LongProgression.prototype.toString = function () { - return this.step.toNumber() > 0 ? this.first.toString() + '..' + this.last.toString() + ' step ' + this.step.toString() : this.first.toString() + ' downTo ' + this.last.toString() + ' step ' + this.step.unaryMinus().toString(); - }; - function LongProgression$Companion() { - LongProgression$Companion_instance = this; - } - LongProgression$Companion.prototype.fromClosedRange_b9bd0d$ = function (rangeStart, rangeEnd, step) { - return new LongProgression(rangeStart, rangeEnd, step); - }; - LongProgression$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var LongProgression$Companion_instance = null; - function LongProgression$Companion_getInstance() { - if (LongProgression$Companion_instance === null) { - new LongProgression$Companion(); - } - return LongProgression$Companion_instance; - } - LongProgression.$metadata$ = {kind: Kind_CLASS, simpleName: 'LongProgression', interfaces: [Iterable]}; - function ClosedRange() { - } - ClosedRange.prototype.contains_mef7kx$ = function (value) { - return Kotlin.compareTo(value, this.start) >= 0 && Kotlin.compareTo(value, this.endInclusive) <= 0; - }; - ClosedRange.prototype.isEmpty = function () { - return Kotlin.compareTo(this.start, this.endInclusive) > 0; - }; - ClosedRange.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ClosedRange', interfaces: []}; - function CharRange(start, endInclusive) { - CharRange$Companion_getInstance(); - CharProgression.call(this, start, endInclusive, 1); - } - Object.defineProperty(CharRange.prototype, 'start', {get: function () { - return toBoxedChar(this.first); - }}); - Object.defineProperty(CharRange.prototype, 'endInclusive', {get: function () { - return toBoxedChar(this.last); - }}); - CharRange.prototype.contains_mef7kx$ = function (value) { - return this.first <= value && value <= this.last; - }; - CharRange.prototype.isEmpty = function () { - return this.first > this.last; - }; - CharRange.prototype.equals = function (other) { - return Kotlin.isType(other, CharRange) && (this.isEmpty() && other.isEmpty() || (this.first === other.first && this.last === other.last)); - }; - CharRange.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * (this.first | 0) | 0) + (this.last | 0) | 0; - }; - CharRange.prototype.toString = function () { - return String.fromCharCode(this.first) + '..' + String.fromCharCode(this.last); - }; - function CharRange$Companion() { - CharRange$Companion_instance = this; - this.EMPTY = new CharRange(toChar(1), toChar(0)); - } - CharRange$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var CharRange$Companion_instance = null; - function CharRange$Companion_getInstance() { - if (CharRange$Companion_instance === null) { - new CharRange$Companion(); - } - return CharRange$Companion_instance; - } - CharRange.$metadata$ = {kind: Kind_CLASS, simpleName: 'CharRange', interfaces: [ClosedRange, CharProgression]}; - function IntRange(start, endInclusive) { - IntRange$Companion_getInstance(); - IntProgression.call(this, start, endInclusive, 1); - } - Object.defineProperty(IntRange.prototype, 'start', {get: function () { - return this.first; - }}); - Object.defineProperty(IntRange.prototype, 'endInclusive', {get: function () { - return this.last; - }}); - IntRange.prototype.contains_mef7kx$ = function (value) { - return this.first <= value && value <= this.last; - }; - IntRange.prototype.isEmpty = function () { - return this.first > this.last; - }; - IntRange.prototype.equals = function (other) { - return Kotlin.isType(other, IntRange) && (this.isEmpty() && other.isEmpty() || (this.first === other.first && this.last === other.last)); - }; - IntRange.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * this.first | 0) + this.last | 0; - }; - IntRange.prototype.toString = function () { - return this.first.toString() + '..' + this.last; - }; - function IntRange$Companion() { - IntRange$Companion_instance = this; - this.EMPTY = new IntRange(1, 0); - } - IntRange$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var IntRange$Companion_instance = null; - function IntRange$Companion_getInstance() { - if (IntRange$Companion_instance === null) { - new IntRange$Companion(); - } - return IntRange$Companion_instance; - } - IntRange.$metadata$ = {kind: Kind_CLASS, simpleName: 'IntRange', interfaces: [ClosedRange, IntProgression]}; - function LongRange(start, endInclusive) { - LongRange$Companion_getInstance(); - LongProgression.call(this, start, endInclusive, L1); - } - Object.defineProperty(LongRange.prototype, 'start', {get: function () { - return this.first; - }}); - Object.defineProperty(LongRange.prototype, 'endInclusive', {get: function () { - return this.last; - }}); - LongRange.prototype.contains_mef7kx$ = function (value) { - return this.first.compareTo_11rb$(value) <= 0 && value.compareTo_11rb$(this.last) <= 0; - }; - LongRange.prototype.isEmpty = function () { - return this.first.compareTo_11rb$(this.last) > 0; - }; - LongRange.prototype.equals = function (other) { - return Kotlin.isType(other, LongRange) && (this.isEmpty() && other.isEmpty() || (equals(this.first, other.first) && equals(this.last, other.last))); - }; - LongRange.prototype.hashCode = function () { - return this.isEmpty() ? -1 : Kotlin.Long.fromInt(31).multiply(this.first.xor(this.first.shiftRightUnsigned(32))).add(this.last.xor(this.last.shiftRightUnsigned(32))).toInt(); - }; - LongRange.prototype.toString = function () { - return this.first.toString() + '..' + this.last.toString(); - }; - function LongRange$Companion() { - LongRange$Companion_instance = this; - this.EMPTY = new LongRange(L1, L0); - } - LongRange$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var LongRange$Companion_instance = null; - function LongRange$Companion_getInstance() { - if (LongRange$Companion_instance === null) { - new LongRange$Companion(); - } - return LongRange$Companion_instance; - } - LongRange.$metadata$ = {kind: Kind_CLASS, simpleName: 'LongRange', interfaces: [ClosedRange, LongProgression]}; - function Unit() { - Unit_instance = this; - } - Unit.prototype.toString = function () { - return 'kotlin.Unit'; - }; - Unit.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Unit', interfaces: []}; - var Unit_instance = null; - function Unit_getInstance() { - if (Unit_instance === null) { - new Unit(); - } - return Unit_instance; - } - function AnnotationTarget(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function AnnotationTarget_initFields() { - AnnotationTarget_initFields = function () { - }; - AnnotationTarget$CLASS_instance = new AnnotationTarget('CLASS', 0); - AnnotationTarget$ANNOTATION_CLASS_instance = new AnnotationTarget('ANNOTATION_CLASS', 1); - AnnotationTarget$TYPE_PARAMETER_instance = new AnnotationTarget('TYPE_PARAMETER', 2); - AnnotationTarget$PROPERTY_instance = new AnnotationTarget('PROPERTY', 3); - AnnotationTarget$FIELD_instance = new AnnotationTarget('FIELD', 4); - AnnotationTarget$LOCAL_VARIABLE_instance = new AnnotationTarget('LOCAL_VARIABLE', 5); - AnnotationTarget$VALUE_PARAMETER_instance = new AnnotationTarget('VALUE_PARAMETER', 6); - AnnotationTarget$CONSTRUCTOR_instance = new AnnotationTarget('CONSTRUCTOR', 7); - AnnotationTarget$FUNCTION_instance = new AnnotationTarget('FUNCTION', 8); - AnnotationTarget$PROPERTY_GETTER_instance = new AnnotationTarget('PROPERTY_GETTER', 9); - AnnotationTarget$PROPERTY_SETTER_instance = new AnnotationTarget('PROPERTY_SETTER', 10); - AnnotationTarget$TYPE_instance = new AnnotationTarget('TYPE', 11); - AnnotationTarget$EXPRESSION_instance = new AnnotationTarget('EXPRESSION', 12); - AnnotationTarget$FILE_instance = new AnnotationTarget('FILE', 13); - AnnotationTarget$TYPEALIAS_instance = new AnnotationTarget('TYPEALIAS', 14); - } - var AnnotationTarget$CLASS_instance; - function AnnotationTarget$CLASS_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$CLASS_instance; - } - var AnnotationTarget$ANNOTATION_CLASS_instance; - function AnnotationTarget$ANNOTATION_CLASS_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$ANNOTATION_CLASS_instance; - } - var AnnotationTarget$TYPE_PARAMETER_instance; - function AnnotationTarget$TYPE_PARAMETER_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$TYPE_PARAMETER_instance; - } - var AnnotationTarget$PROPERTY_instance; - function AnnotationTarget$PROPERTY_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$PROPERTY_instance; - } - var AnnotationTarget$FIELD_instance; - function AnnotationTarget$FIELD_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$FIELD_instance; - } - var AnnotationTarget$LOCAL_VARIABLE_instance; - function AnnotationTarget$LOCAL_VARIABLE_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$LOCAL_VARIABLE_instance; - } - var AnnotationTarget$VALUE_PARAMETER_instance; - function AnnotationTarget$VALUE_PARAMETER_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$VALUE_PARAMETER_instance; - } - var AnnotationTarget$CONSTRUCTOR_instance; - function AnnotationTarget$CONSTRUCTOR_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$CONSTRUCTOR_instance; - } - var AnnotationTarget$FUNCTION_instance; - function AnnotationTarget$FUNCTION_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$FUNCTION_instance; - } - var AnnotationTarget$PROPERTY_GETTER_instance; - function AnnotationTarget$PROPERTY_GETTER_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$PROPERTY_GETTER_instance; - } - var AnnotationTarget$PROPERTY_SETTER_instance; - function AnnotationTarget$PROPERTY_SETTER_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$PROPERTY_SETTER_instance; - } - var AnnotationTarget$TYPE_instance; - function AnnotationTarget$TYPE_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$TYPE_instance; - } - var AnnotationTarget$EXPRESSION_instance; - function AnnotationTarget$EXPRESSION_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$EXPRESSION_instance; - } - var AnnotationTarget$FILE_instance; - function AnnotationTarget$FILE_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$FILE_instance; - } - var AnnotationTarget$TYPEALIAS_instance; - function AnnotationTarget$TYPEALIAS_getInstance() { - AnnotationTarget_initFields(); - return AnnotationTarget$TYPEALIAS_instance; - } - AnnotationTarget.$metadata$ = {kind: Kind_CLASS, simpleName: 'AnnotationTarget', interfaces: [Enum]}; - function AnnotationTarget$values() { - return [AnnotationTarget$CLASS_getInstance(), AnnotationTarget$ANNOTATION_CLASS_getInstance(), AnnotationTarget$TYPE_PARAMETER_getInstance(), AnnotationTarget$PROPERTY_getInstance(), AnnotationTarget$FIELD_getInstance(), AnnotationTarget$LOCAL_VARIABLE_getInstance(), AnnotationTarget$VALUE_PARAMETER_getInstance(), AnnotationTarget$CONSTRUCTOR_getInstance(), AnnotationTarget$FUNCTION_getInstance(), AnnotationTarget$PROPERTY_GETTER_getInstance(), AnnotationTarget$PROPERTY_SETTER_getInstance(), AnnotationTarget$TYPE_getInstance(), AnnotationTarget$EXPRESSION_getInstance(), AnnotationTarget$FILE_getInstance(), AnnotationTarget$TYPEALIAS_getInstance()]; - } - AnnotationTarget.values = AnnotationTarget$values; - function AnnotationTarget$valueOf(name) { - switch (name) { - case 'CLASS': - return AnnotationTarget$CLASS_getInstance(); - case 'ANNOTATION_CLASS': - return AnnotationTarget$ANNOTATION_CLASS_getInstance(); - case 'TYPE_PARAMETER': - return AnnotationTarget$TYPE_PARAMETER_getInstance(); - case 'PROPERTY': - return AnnotationTarget$PROPERTY_getInstance(); - case 'FIELD': - return AnnotationTarget$FIELD_getInstance(); - case 'LOCAL_VARIABLE': - return AnnotationTarget$LOCAL_VARIABLE_getInstance(); - case 'VALUE_PARAMETER': - return AnnotationTarget$VALUE_PARAMETER_getInstance(); - case 'CONSTRUCTOR': - return AnnotationTarget$CONSTRUCTOR_getInstance(); - case 'FUNCTION': - return AnnotationTarget$FUNCTION_getInstance(); - case 'PROPERTY_GETTER': - return AnnotationTarget$PROPERTY_GETTER_getInstance(); - case 'PROPERTY_SETTER': - return AnnotationTarget$PROPERTY_SETTER_getInstance(); - case 'TYPE': - return AnnotationTarget$TYPE_getInstance(); - case 'EXPRESSION': - return AnnotationTarget$EXPRESSION_getInstance(); - case 'FILE': - return AnnotationTarget$FILE_getInstance(); - case 'TYPEALIAS': - return AnnotationTarget$TYPEALIAS_getInstance(); - default:throwISE('No enum constant kotlin.annotation.AnnotationTarget.' + name); - } - } - AnnotationTarget.valueOf_61zpoe$ = AnnotationTarget$valueOf; - function AnnotationRetention(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function AnnotationRetention_initFields() { - AnnotationRetention_initFields = function () { - }; - AnnotationRetention$SOURCE_instance = new AnnotationRetention('SOURCE', 0); - AnnotationRetention$BINARY_instance = new AnnotationRetention('BINARY', 1); - AnnotationRetention$RUNTIME_instance = new AnnotationRetention('RUNTIME', 2); - } - var AnnotationRetention$SOURCE_instance; - function AnnotationRetention$SOURCE_getInstance() { - AnnotationRetention_initFields(); - return AnnotationRetention$SOURCE_instance; - } - var AnnotationRetention$BINARY_instance; - function AnnotationRetention$BINARY_getInstance() { - AnnotationRetention_initFields(); - return AnnotationRetention$BINARY_instance; - } - var AnnotationRetention$RUNTIME_instance; - function AnnotationRetention$RUNTIME_getInstance() { - AnnotationRetention_initFields(); - return AnnotationRetention$RUNTIME_instance; - } - AnnotationRetention.$metadata$ = {kind: Kind_CLASS, simpleName: 'AnnotationRetention', interfaces: [Enum]}; - function AnnotationRetention$values() { - return [AnnotationRetention$SOURCE_getInstance(), AnnotationRetention$BINARY_getInstance(), AnnotationRetention$RUNTIME_getInstance()]; - } - AnnotationRetention.values = AnnotationRetention$values; - function AnnotationRetention$valueOf(name) { - switch (name) { - case 'SOURCE': - return AnnotationRetention$SOURCE_getInstance(); - case 'BINARY': - return AnnotationRetention$BINARY_getInstance(); - case 'RUNTIME': - return AnnotationRetention$RUNTIME_getInstance(); - default:throwISE('No enum constant kotlin.annotation.AnnotationRetention.' + name); - } - } - AnnotationRetention.valueOf_61zpoe$ = AnnotationRetention$valueOf; - function Target(allowedTargets) { - this.allowedTargets = allowedTargets; - } - Target.$metadata$ = {kind: Kind_CLASS, simpleName: 'Target', interfaces: [Annotation]}; - function Retention(value) { - if (value === void 0) - value = AnnotationRetention$RUNTIME_getInstance(); - this.value = value; - } - Retention.$metadata$ = {kind: Kind_CLASS, simpleName: 'Retention', interfaces: [Annotation]}; - function Repeatable() { - } - Repeatable.$metadata$ = {kind: Kind_CLASS, simpleName: 'Repeatable', interfaces: [Annotation]}; - function MustBeDocumented() { - } - MustBeDocumented.$metadata$ = {kind: Kind_CLASS, simpleName: 'MustBeDocumented', interfaces: [Annotation]}; - function PureReifiable() { - } - PureReifiable.$metadata$ = {kind: Kind_CLASS, simpleName: 'PureReifiable', interfaces: [Annotation]}; - function PlatformDependent() { - } - PlatformDependent.$metadata$ = {kind: Kind_CLASS, simpleName: 'PlatformDependent', interfaces: [Annotation]}; - function mod(a, b) { - var mod = a % b; - return mod >= 0 ? mod : mod + b | 0; - } - function mod_0(a, b) { - var mod = a.modulo(b); - return mod.toNumber() >= 0 ? mod : mod.add(b); - } - function differenceModulo(a, b, c) { - return mod(mod(a, c) - mod(b, c) | 0, c); - } - function differenceModulo_0(a, b, c) { - return mod_0(mod_0(a, c).subtract(mod_0(b, c)), c); - } - function getProgressionLastElement(start, end, step) { - if (step > 0) - return start >= end ? end : end - differenceModulo(end, start, step) | 0; - else if (step < 0) - return start <= end ? end : end + differenceModulo(start, end, -step | 0) | 0; - else - throw IllegalArgumentException_init_0('Step is zero.'); - } - function getProgressionLastElement_0(start, end, step) { - if (step.toNumber() > 0) - return start.compareTo_11rb$(end) >= 0 ? end : end.subtract(differenceModulo_0(end, start, step)); - else if (step.toNumber() < 0) - return start.compareTo_11rb$(end) <= 0 ? end : end.add(differenceModulo_0(start, end, step.unaryMinus())); - else - throw IllegalArgumentException_init_0('Step is zero.'); - } - function KAnnotatedElement() { - } - KAnnotatedElement.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KAnnotatedElement', interfaces: []}; - function KCallable() { - } - KCallable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KCallable', interfaces: [KAnnotatedElement]}; - function KClass() { - } - KClass.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KClass', interfaces: [KClassifier, KAnnotatedElement, KDeclarationContainer]}; - function KClassifier() { - } - KClassifier.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KClassifier', interfaces: []}; - function KDeclarationContainer() { - } - KDeclarationContainer.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KDeclarationContainer', interfaces: []}; - function KFunction() { - } - KFunction.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KFunction', interfaces: [Function_0, KCallable]}; - function KParameter() { - } - function KParameter$Kind(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function KParameter$Kind_initFields() { - KParameter$Kind_initFields = function () { - }; - KParameter$Kind$INSTANCE_instance = new KParameter$Kind('INSTANCE', 0); - KParameter$Kind$EXTENSION_RECEIVER_instance = new KParameter$Kind('EXTENSION_RECEIVER', 1); - KParameter$Kind$VALUE_instance = new KParameter$Kind('VALUE', 2); - } - var KParameter$Kind$INSTANCE_instance; - function KParameter$Kind$INSTANCE_getInstance() { - KParameter$Kind_initFields(); - return KParameter$Kind$INSTANCE_instance; - } - var KParameter$Kind$EXTENSION_RECEIVER_instance; - function KParameter$Kind$EXTENSION_RECEIVER_getInstance() { - KParameter$Kind_initFields(); - return KParameter$Kind$EXTENSION_RECEIVER_instance; - } - var KParameter$Kind$VALUE_instance; - function KParameter$Kind$VALUE_getInstance() { - KParameter$Kind_initFields(); - return KParameter$Kind$VALUE_instance; - } - KParameter$Kind.$metadata$ = {kind: Kind_CLASS, simpleName: 'Kind', interfaces: [Enum]}; - function KParameter$Kind$values() { - return [KParameter$Kind$INSTANCE_getInstance(), KParameter$Kind$EXTENSION_RECEIVER_getInstance(), KParameter$Kind$VALUE_getInstance()]; - } - KParameter$Kind.values = KParameter$Kind$values; - function KParameter$Kind$valueOf(name) { - switch (name) { - case 'INSTANCE': - return KParameter$Kind$INSTANCE_getInstance(); - case 'EXTENSION_RECEIVER': - return KParameter$Kind$EXTENSION_RECEIVER_getInstance(); - case 'VALUE': - return KParameter$Kind$VALUE_getInstance(); - default:throwISE('No enum constant kotlin.reflect.KParameter.Kind.' + name); - } - } - KParameter$Kind.valueOf_61zpoe$ = KParameter$Kind$valueOf; - KParameter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KParameter', interfaces: [KAnnotatedElement]}; - function KProperty() { - } - function KProperty$Accessor() { - } - KProperty$Accessor.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Accessor', interfaces: []}; - function KProperty$Getter() { - } - KProperty$Getter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Getter', interfaces: [KFunction, KProperty$Accessor]}; - KProperty.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KProperty', interfaces: [KCallable]}; - function KMutableProperty() { - } - function KMutableProperty$Setter() { - } - KMutableProperty$Setter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Setter', interfaces: [KFunction, KProperty$Accessor]}; - KMutableProperty.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KMutableProperty', interfaces: [KProperty]}; - function KProperty0() { - } - function KProperty0$Getter() { - } - KProperty0$Getter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Getter', interfaces: [KProperty$Getter]}; - KProperty0.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KProperty0', interfaces: [KProperty]}; - function KMutableProperty0() { - } - function KMutableProperty0$Setter() { - } - KMutableProperty0$Setter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Setter', interfaces: [KMutableProperty$Setter]}; - KMutableProperty0.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KMutableProperty0', interfaces: [KMutableProperty, KProperty0]}; - function KProperty1() { - } - function KProperty1$Getter() { - } - KProperty1$Getter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Getter', interfaces: [KProperty$Getter]}; - KProperty1.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KProperty1', interfaces: [KProperty]}; - function KMutableProperty1() { - } - function KMutableProperty1$Setter() { - } - KMutableProperty1$Setter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Setter', interfaces: [KMutableProperty$Setter]}; - KMutableProperty1.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KMutableProperty1', interfaces: [KMutableProperty, KProperty1]}; - function KProperty2() { - } - function KProperty2$Getter() { - } - KProperty2$Getter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Getter', interfaces: [KProperty$Getter]}; - KProperty2.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KProperty2', interfaces: [KProperty]}; - function KMutableProperty2() { - } - function KMutableProperty2$Setter() { - } - KMutableProperty2$Setter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Setter', interfaces: [KMutableProperty$Setter]}; - KMutableProperty2.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KMutableProperty2', interfaces: [KMutableProperty, KProperty2]}; - function KType() { - } - KType.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KType', interfaces: [KAnnotatedElement]}; - function KTypeProjection(variance, type) { - KTypeProjection$Companion_getInstance(); - this.variance = variance; - this.type = type; - } - function KTypeProjection$Companion() { - KTypeProjection$Companion_instance = this; - this.STAR = new KTypeProjection(null, null); - } - KTypeProjection$Companion.prototype.invariant_saj79j$ = function (type) { - return new KTypeProjection(KVariance$INVARIANT_getInstance(), type); - }; - KTypeProjection$Companion.prototype.contravariant_saj79j$ = function (type) { - return new KTypeProjection(KVariance$IN_getInstance(), type); - }; - KTypeProjection$Companion.prototype.covariant_saj79j$ = function (type) { - return new KTypeProjection(KVariance$OUT_getInstance(), type); - }; - KTypeProjection$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var KTypeProjection$Companion_instance = null; - function KTypeProjection$Companion_getInstance() { - if (KTypeProjection$Companion_instance === null) { - new KTypeProjection$Companion(); - } - return KTypeProjection$Companion_instance; - } - KTypeProjection.$metadata$ = {kind: Kind_CLASS, simpleName: 'KTypeProjection', interfaces: []}; - KTypeProjection.prototype.component1 = function () { - return this.variance; - }; - KTypeProjection.prototype.component2 = function () { - return this.type; - }; - KTypeProjection.prototype.copy_wulwk3$ = function (variance, type) { - return new KTypeProjection(variance === void 0 ? this.variance : variance, type === void 0 ? this.type : type); - }; - KTypeProjection.prototype.toString = function () { - return 'KTypeProjection(variance=' + Kotlin.toString(this.variance) + (', type=' + Kotlin.toString(this.type)) + ')'; - }; - KTypeProjection.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.variance) | 0; - result = result * 31 + Kotlin.hashCode(this.type) | 0; - return result; - }; - KTypeProjection.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && (Kotlin.equals(this.variance, other.variance) && Kotlin.equals(this.type, other.type))))); - }; - function KTypeParameter() { - } - KTypeParameter.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'KTypeParameter', interfaces: [KClassifier]}; - function KVariance(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function KVariance_initFields() { - KVariance_initFields = function () { - }; - KVariance$INVARIANT_instance = new KVariance('INVARIANT', 0); - KVariance$IN_instance = new KVariance('IN', 1); - KVariance$OUT_instance = new KVariance('OUT', 2); - } - var KVariance$INVARIANT_instance; - function KVariance$INVARIANT_getInstance() { - KVariance_initFields(); - return KVariance$INVARIANT_instance; - } - var KVariance$IN_instance; - function KVariance$IN_getInstance() { - KVariance_initFields(); - return KVariance$IN_instance; - } - var KVariance$OUT_instance; - function KVariance$OUT_getInstance() { - KVariance_initFields(); - return KVariance$OUT_instance; - } - KVariance.$metadata$ = {kind: Kind_CLASS, simpleName: 'KVariance', interfaces: [Enum]}; - function KVariance$values() { - return [KVariance$INVARIANT_getInstance(), KVariance$IN_getInstance(), KVariance$OUT_getInstance()]; - } - KVariance.values = KVariance$values; - function KVariance$valueOf(name) { - switch (name) { - case 'INVARIANT': - return KVariance$INVARIANT_getInstance(); - case 'IN': - return KVariance$IN_getInstance(); - case 'OUT': - return KVariance$OUT_getInstance(); - default:throwISE('No enum constant kotlin.reflect.KVariance.' + name); - } - } - KVariance.valueOf_61zpoe$ = KVariance$valueOf; - function KVisibility(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function KVisibility_initFields() { - KVisibility_initFields = function () { - }; - KVisibility$PUBLIC_instance = new KVisibility('PUBLIC', 0); - KVisibility$PROTECTED_instance = new KVisibility('PROTECTED', 1); - KVisibility$INTERNAL_instance = new KVisibility('INTERNAL', 2); - KVisibility$PRIVATE_instance = new KVisibility('PRIVATE', 3); - } - var KVisibility$PUBLIC_instance; - function KVisibility$PUBLIC_getInstance() { - KVisibility_initFields(); - return KVisibility$PUBLIC_instance; - } - var KVisibility$PROTECTED_instance; - function KVisibility$PROTECTED_getInstance() { - KVisibility_initFields(); - return KVisibility$PROTECTED_instance; - } - var KVisibility$INTERNAL_instance; - function KVisibility$INTERNAL_getInstance() { - KVisibility_initFields(); - return KVisibility$INTERNAL_instance; - } - var KVisibility$PRIVATE_instance; - function KVisibility$PRIVATE_getInstance() { - KVisibility_initFields(); - return KVisibility$PRIVATE_instance; - } - KVisibility.$metadata$ = {kind: Kind_CLASS, simpleName: 'KVisibility', interfaces: [Enum]}; - function KVisibility$values() { - return [KVisibility$PUBLIC_getInstance(), KVisibility$PROTECTED_getInstance(), KVisibility$INTERNAL_getInstance(), KVisibility$PRIVATE_getInstance()]; - } - KVisibility.values = KVisibility$values; - function KVisibility$valueOf(name) { - switch (name) { - case 'PUBLIC': - return KVisibility$PUBLIC_getInstance(); - case 'PROTECTED': - return KVisibility$PROTECTED_getInstance(); - case 'INTERNAL': - return KVisibility$INTERNAL_getInstance(); - case 'PRIVATE': - return KVisibility$PRIVATE_getInstance(); - default:throwISE('No enum constant kotlin.reflect.KVisibility.' + name); - } - } - KVisibility.valueOf_61zpoe$ = KVisibility$valueOf; - function arrayIterator$ObjectLiteral(closure$arr) { - this.closure$arr = closure$arr; - this.index = 0; - } - arrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$arr.length; - }; - arrayIterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (this.index < this.closure$arr.length) { - return this.closure$arr[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - arrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - function arrayIterator(array, type) { - if (type == null) { - var arr = array; - return new arrayIterator$ObjectLiteral(arr); - } - else - switch (type) { - case 'BooleanArray': - return booleanArrayIterator(array); - case 'ByteArray': - return byteArrayIterator(array); - case 'ShortArray': - return shortArrayIterator(array); - case 'CharArray': - return charArrayIterator(array); - case 'IntArray': - return intArrayIterator(array); - case 'LongArray': - return longArrayIterator(array); - case 'FloatArray': - return floatArrayIterator(array); - case 'DoubleArray': - return doubleArrayIterator(array); - default:throw IllegalStateException_init_0('Unsupported type argument for arrayIterator: ' + toString(type)); - } - } - function booleanArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - BooleanIterator.call(this); - this.index = 0; - } - booleanArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - booleanArrayIterator$ObjectLiteral.prototype.nextBoolean = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - booleanArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [BooleanIterator]}; - function booleanArrayIterator(array) { - return new booleanArrayIterator$ObjectLiteral(array); - } - function byteArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - ByteIterator.call(this); - this.index = 0; - } - byteArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - byteArrayIterator$ObjectLiteral.prototype.nextByte = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - byteArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [ByteIterator]}; - function byteArrayIterator(array) { - return new byteArrayIterator$ObjectLiteral(array); - } - function shortArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - ShortIterator.call(this); - this.index = 0; - } - shortArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - shortArrayIterator$ObjectLiteral.prototype.nextShort = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - shortArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [ShortIterator]}; - function shortArrayIterator(array) { - return new shortArrayIterator$ObjectLiteral(array); - } - function charArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - CharIterator.call(this); - this.index = 0; - } - charArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - charArrayIterator$ObjectLiteral.prototype.nextChar = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - charArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [CharIterator]}; - function charArrayIterator(array) { - return new charArrayIterator$ObjectLiteral(array); - } - function intArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - IntIterator.call(this); - this.index = 0; - } - intArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - intArrayIterator$ObjectLiteral.prototype.nextInt = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - intArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [IntIterator]}; - function intArrayIterator(array) { - return new intArrayIterator$ObjectLiteral(array); - } - function floatArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - FloatIterator.call(this); - this.index = 0; - } - floatArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - floatArrayIterator$ObjectLiteral.prototype.nextFloat = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - floatArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [FloatIterator]}; - function floatArrayIterator(array) { - return new floatArrayIterator$ObjectLiteral(array); - } - function doubleArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - DoubleIterator.call(this); - this.index = 0; - } - doubleArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - doubleArrayIterator$ObjectLiteral.prototype.nextDouble = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - doubleArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [DoubleIterator]}; - function doubleArrayIterator(array) { - return new doubleArrayIterator$ObjectLiteral(array); - } - function longArrayIterator$ObjectLiteral(closure$array) { - this.closure$array = closure$array; - LongIterator.call(this); - this.index = 0; - } - longArrayIterator$ObjectLiteral.prototype.hasNext = function () { - return this.index < this.closure$array.length; - }; - longArrayIterator$ObjectLiteral.prototype.nextLong = function () { - var tmp$; - if (this.index < this.closure$array.length) { - return this.closure$array[tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$]; - } - else - throw new NoSuchElementException(this.index.toString()); - }; - longArrayIterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [LongIterator]}; - function longArrayIterator(array) { - return new longArrayIterator$ObjectLiteral(array); - } - function PropertyMetadata(name) { - this.callableName = name; - } - PropertyMetadata.$metadata$ = {kind: Kind_CLASS, simpleName: 'PropertyMetadata', interfaces: []}; - function noWhenBranchMatched() { - throw NoWhenBranchMatchedException_init(); - } - function subSequence(c, startIndex, endIndex) { - if (typeof c === 'string') { - return c.substring(startIndex, endIndex); - } - else { - return c.subSequence_vux9f0$(startIndex, endIndex); - } - } - function captureStack(baseClass, instance) { - if (Error.captureStackTrace) { - Error.captureStackTrace(instance, get_js(Kotlin.getKClassFromExpression(instance))); - } - else { - instance.stack = (new Error()).stack; - } - } - function newThrowable(message, cause) { - var tmp$; - var throwable = new Error(); - if (equals(typeof message, 'undefined')) { - tmp$ = cause != null ? cause.toString() : null; - } - else { - tmp$ = message; - } - throwable.message = tmp$; - throwable.cause = cause; - throwable.name = 'Throwable'; - return throwable; - } - function BoxedChar(c) { - this.c = c; - } - BoxedChar.prototype.equals = function (other) { - return Kotlin.isType(other, BoxedChar) && this.c === other.c; - }; - BoxedChar.prototype.hashCode = function () { - return this.c; - }; - BoxedChar.prototype.toString = function () { - return String.fromCharCode(unboxChar(this.c)); - }; - BoxedChar.prototype.compareTo_11rb$ = function (other) { - return this.c - other; - }; - BoxedChar.prototype.valueOf = function () { - return this.c; - }; - BoxedChar.$metadata$ = {kind: Kind_CLASS, simpleName: 'BoxedChar', interfaces: [Comparable]}; - var concat = defineInlineFunction('kotlin.concat_2r4q7p$', function (args) { - var typed = Array(args.length); - for (var i = 0; i !== args.length; ++i) { - var arr = args[i]; - if (!Kotlin.isArray(arr)) { - typed[i] = [].slice.call(arr); - } - else { - typed[i] = arr; - } - } - return [].concat.apply([], typed); - }); - function arrayConcat(a, b) { - var args = arguments; - var typed = Array(args.length); - for (var i = 0; i !== args.length; ++i) { - var arr = args[i]; - if (!Kotlin.isArray(arr)) { - typed[i] = [].slice.call(arr); - } - else { - typed[i] = arr; - } - } - return [].concat.apply([], typed); - } - function primitiveArrayConcat(a, b) { - var args = arguments; - if (Kotlin.isArray(a) && a.$type$ === undefined) { - var typed = Array(args.length); - for (var i = 0; i !== args.length; ++i) { - var arr = args[i]; - if (!Kotlin.isArray(arr)) { - typed[i] = [].slice.call(arr); - } - else { - typed[i] = arr; - } - } - return [].concat.apply([], typed); - } - else { - var size = 0; - for (var i_0 = 0; i_0 !== args.length; ++i_0) { - var tmp$; - size = size + (typeof (tmp$ = args[i_0].length) === 'number' ? tmp$ : throwCCE_0()) | 0; - } - var result = new a.constructor(size); - if (a.$type$ !== undefined) { - result.$type$ = a.$type$; - } - size = 0; - for (var i_1 = 0; i_1 !== args.length; ++i_1) { - var tmp$_0, tmp$_1; - var arr_0 = args[i_1]; - tmp$_0 = arr_0.length; - for (var j = 0; j < tmp$_0; j++) { - result[tmp$_1 = size, size = tmp$_1 + 1 | 0, tmp$_1] = arr_0[j]; - } - } - return result; - } - } - function booleanArrayOf() { - var type = 'BooleanArray'; - var array = [].slice.call(arguments); - array.$type$ = type; - return array; - } - function charArrayOf() { - var type = 'CharArray'; - var array = new Uint16Array([].slice.call(arguments)); - array.$type$ = type; - return array; - } - function longArrayOf() { - var type = 'LongArray'; - var array = [].slice.call(arguments); - array.$type$ = type; - return array; - } - var withType = defineInlineFunction('kotlin.withType', function (type, array) { - array.$type$ = type; - return array; - }); - function CoroutineImpl(resultContinuation) { - this.resultContinuation_0 = resultContinuation; - this.state_0 = 0; - this.exceptionState_0 = 0; - this.result_0 = null; - this.exception_0 = null; - this.finallyPath_0 = null; - this.context_hxcuhl$_0 = this.resultContinuation_0.context; - this.intercepted__0 = null; - } - Object.defineProperty(CoroutineImpl.prototype, 'context', {get: function () { - return this.context_hxcuhl$_0; - }}); - CoroutineImpl.prototype.intercepted = function () { - var tmp$, tmp$_0, tmp$_1; - var tmp$_2; - if ((tmp$_1 = this.intercepted__0) != null) - tmp$_2 = tmp$_1; - else { - var $receiver = (tmp$_0 = (tmp$ = this.context.get_j3r2sn$(ContinuationInterceptor$Key_getInstance())) != null ? tmp$.interceptContinuation_wj8d80$(this) : null) != null ? tmp$_0 : this; - this.intercepted__0 = $receiver; - tmp$_2 = $receiver; - } - return tmp$_2; - }; - CoroutineImpl.prototype.resumeWith_tl1gpc$ = function (result) { - var current = {v: this}; - var getOrNull$result; - var tmp$; - if (result.isFailure) { - getOrNull$result = null; - } - else { - getOrNull$result = (tmp$ = result.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - } - var currentResult = {v: getOrNull$result}; - var currentException = {v: result.exceptionOrNull()}; - while (true) { - var $receiver = current.v; - var tmp$_0; - var completion = $receiver.resultContinuation_0; - if (currentException.v == null) { - $receiver.result_0 = currentResult.v; - } - else { - $receiver.state_0 = $receiver.exceptionState_0; - $receiver.exception_0 = currentException.v; - } - try { - var outcome = $receiver.doResume(); - if (outcome === get_COROUTINE_SUSPENDED()) - return; - currentResult.v = outcome; - currentException.v = null; - } - catch (exception) { - currentResult.v = null; - currentException.v = exception; - } - $receiver.releaseIntercepted_0(); - if (Kotlin.isType(completion, CoroutineImpl)) { - current.v = completion; - } - else { - var tmp$_1; - if ((tmp$_0 = currentException.v) != null) { - completion.resumeWith_tl1gpc$(new Result(createFailure(tmp$_0))); - tmp$_1 = Unit; - } - else - tmp$_1 = null; - if (tmp$_1 == null) { - completion.resumeWith_tl1gpc$(new Result(currentResult.v)); - } - return; - } - } - }; - CoroutineImpl.prototype.releaseIntercepted_0 = function () { - var intercepted = this.intercepted__0; - if (intercepted != null && intercepted !== this) { - ensureNotNull(this.context.get_j3r2sn$(ContinuationInterceptor$Key_getInstance())).releaseInterceptedContinuation_k98bjh$(intercepted); - } - this.intercepted__0 = CompletedContinuation_getInstance(); - }; - CoroutineImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'CoroutineImpl', interfaces: [Continuation]}; - function CompletedContinuation() { - CompletedContinuation_instance = this; - } - Object.defineProperty(CompletedContinuation.prototype, 'context', {get: function () { - throw IllegalStateException_init_0('This continuation is already complete'.toString()); - }}); - CompletedContinuation.prototype.resumeWith_tl1gpc$ = function (result) { - throw IllegalStateException_init_0('This continuation is already complete'.toString()); - }; - CompletedContinuation.prototype.toString = function () { - return 'This continuation is already complete'; - }; - CompletedContinuation.$metadata$ = {kind: Kind_OBJECT, simpleName: 'CompletedContinuation', interfaces: [Continuation]}; - var CompletedContinuation_instance = null; - function CompletedContinuation_getInstance() { - if (CompletedContinuation_instance === null) { - new CompletedContinuation(); - } - return CompletedContinuation_instance; - } - createCoroutineFromSuspendFunction$ObjectLiteral.prototype = Object.create(CoroutineImpl.prototype); - createCoroutineFromSuspendFunction$ObjectLiteral.prototype.constructor = createCoroutineFromSuspendFunction$ObjectLiteral; - function createCoroutineFromSuspendFunction$ObjectLiteral(closure$block, resultContinuation) { - this.closure$block = closure$block; - CoroutineImpl.call(this, resultContinuation); - } - createCoroutineFromSuspendFunction$ObjectLiteral.prototype.doResume = function () { - var tmp$; - if ((tmp$ = this.exception_0) != null) { - throw tmp$; - } - return this.closure$block(); - }; - createCoroutineFromSuspendFunction$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [CoroutineImpl]}; - var startCoroutineUninterceptedOrReturn = defineInlineFunction('kotlin.kotlin.coroutines.intrinsics.startCoroutineUninterceptedOrReturn_x18nsh$', function ($receiver, completion) { - return $receiver(completion, false); - }); - var startCoroutineUninterceptedOrReturn_0 = defineInlineFunction('kotlin.kotlin.coroutines.intrinsics.startCoroutineUninterceptedOrReturn_3a617i$', function ($receiver, receiver, completion) { - return $receiver(receiver, completion, false); - }); - function createCoroutineUnintercepted$lambda(this$createCoroutineUnintercepted, closure$completion) { - return function () { - return this$createCoroutineUnintercepted(closure$completion); - }; - } - function createCoroutineUnintercepted($receiver, completion) { - if ($receiver.length == 2) { - return $receiver(completion, true); - } - else { - var tmp$; - return new createCoroutineFromSuspendFunction$ObjectLiteral(createCoroutineUnintercepted$lambda($receiver, completion), Kotlin.isType(tmp$ = completion, Continuation) ? tmp$ : throwCCE_0()); - } - } - function createCoroutineUnintercepted$lambda_0(this$createCoroutineUnintercepted, closure$receiver, closure$completion) { - return function () { - return this$createCoroutineUnintercepted(closure$receiver, closure$completion); - }; - } - function createCoroutineUnintercepted_0($receiver, receiver, completion) { - if ($receiver.length == 3) { - return $receiver(receiver, completion, true); - } - else { - var tmp$; - return new createCoroutineFromSuspendFunction$ObjectLiteral(createCoroutineUnintercepted$lambda_0($receiver, receiver, completion), Kotlin.isType(tmp$ = completion, Continuation) ? tmp$ : throwCCE_0()); - } - } - function intercepted($receiver) { - var tmp$, tmp$_0, tmp$_1; - return (tmp$_1 = (tmp$_0 = Kotlin.isType(tmp$ = $receiver, CoroutineImpl) ? tmp$ : null) != null ? tmp$_0.intercepted() : null) != null ? tmp$_1 : $receiver; - } - var createCoroutineFromSuspendFunction = wrapFunction(function () { - createCoroutineFromSuspendFunction$ObjectLiteral.prototype = Object.create(CoroutineImpl.prototype); - createCoroutineFromSuspendFunction$ObjectLiteral.prototype.constructor = createCoroutineFromSuspendFunction$ObjectLiteral; - function createCoroutineFromSuspendFunction$ObjectLiteral(closure$block, resultContinuation) { - this.closure$block = closure$block; - CoroutineImpl.call(this, resultContinuation); - } - createCoroutineFromSuspendFunction$ObjectLiteral.prototype.doResume = function () { - var tmp$; - if ((tmp$ = this.exception_0) != null) { - throw tmp$; - } - return this.closure$block(); - }; - createCoroutineFromSuspendFunction$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [CoroutineImpl]}; - return function (completion, block) { - var tmp$; - return new createCoroutineFromSuspendFunction$ObjectLiteral(block, Kotlin.isType(tmp$ = completion, Continuation) ? tmp$ : throwCCE_0()); - }; - }); - var jsDeleteProperty = defineInlineFunction('kotlin.kotlin.js.jsDeleteProperty_dgzutr$', function (obj, property) { - delete obj[property]; - }); - var jsBitwiseOr = defineInlineFunction('kotlin.kotlin.js.jsBitwiseOr_fkghef$', function (lhs, rhs) { - return lhs | rhs; - }); - var jsTypeOf = defineInlineFunction('kotlin.kotlin.js.jsTypeOf_s8jyv4$', function (a) { - return typeof a; - }); - var emptyArray = defineInlineFunction('kotlin.kotlin.emptyArray_287e2$', function () { - return []; - }); - function lazy(initializer) { - return new UnsafeLazyImpl(initializer); - } - function lazy_0(mode, initializer) { - return new UnsafeLazyImpl(initializer); - } - function lazy_1(lock, initializer) { - return new UnsafeLazyImpl(initializer); - } - function fillFrom(src, dst) { - var tmp$; - var srcLen = src.length; - var dstLen = dst.length; - var index = 0; - while (index < srcLen && index < dstLen) { - dst[index] = src[tmp$ = index, index = tmp$ + 1 | 0, tmp$]; - } - return dst; - } - function arrayCopyResize(source, newSize, defaultValue) { - var tmp$; - var result = source.slice(0, newSize); - if (source.$type$ !== undefined) { - result.$type$ = source.$type$; - } - var index = source.length; - if (newSize > index) { - result.length = newSize; - while (index < newSize) { - result[tmp$ = index, index = tmp$ + 1 | 0, tmp$] = defaultValue; - } - } - return result; - } - function arrayPlusCollection(array, collection) { - var tmp$, tmp$_0; - var result = array.slice(); - result.length += collection.size; - if (array.$type$ !== undefined) { - result.$type$ = array.$type$; - } - var index = array.length; - tmp$ = collection.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - result[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return result; - } - function fillFromCollection(dst, startIndex, collection) { - var tmp$, tmp$_0; - var index = startIndex; - tmp$ = collection.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - dst[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = element; - } - return dst; - } - var copyArrayType = defineInlineFunction('kotlin.kotlin.copyArrayType_dgzutr$', function (from, to) { - if (from.$type$ !== undefined) { - to.$type$ = from.$type$; - } - }); - var jsIsType = defineInlineFunction('kotlin.kotlin.jsIsType_dgzutr$', function (obj, jsClass) { - return Kotlin.isType(obj, jsClass); - }); - function elementAt_2($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_3($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_0($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_4($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_1($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_5($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_2($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_6($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_3($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_7($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_4($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_8($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_5($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_9($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_6($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_10($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_7($receiver)) - tmp$ = $receiver[index]; - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.length + '}'); - } - return tmp$; - } - function asList($receiver) { - return new ArrayList($receiver); - } - var asList_0 = defineInlineFunction('kotlin.kotlin.collections.asList_964n91$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - var asList_1 = defineInlineFunction('kotlin.kotlin.collections.asList_i2lc79$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - var asList_2 = defineInlineFunction('kotlin.kotlin.collections.asList_tmsbgo$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - var asList_3 = defineInlineFunction('kotlin.kotlin.collections.asList_se6h4x$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - var asList_4 = defineInlineFunction('kotlin.kotlin.collections.asList_rjqryz$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - var asList_5 = defineInlineFunction('kotlin.kotlin.collections.asList_bvy38s$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - var asList_6 = defineInlineFunction('kotlin.kotlin.collections.asList_l1lu5t$', wrapFunction(function () { - var asList = _.kotlin.collections.asList_us0mfu$; - return function ($receiver) { - return asList($receiver); - }; - })); - function asList$ObjectLiteral(this$asList) { - this.this$asList = this$asList; - AbstractList.call(this); - } - Object.defineProperty(asList$ObjectLiteral.prototype, 'size', {get: function () { - return this.this$asList.length; - }}); - asList$ObjectLiteral.prototype.isEmpty = function () { - return this.this$asList.length === 0; - }; - asList$ObjectLiteral.prototype.contains_11rb$ = function (element) { - return contains_7(this.this$asList, element); - }; - asList$ObjectLiteral.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return toBoxedChar(this.this$asList[index]); - }; - asList$ObjectLiteral.prototype.indexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isChar((tmp$ = toBoxedChar(element)) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0())) - return -1; - return indexOf_7(this.this$asList, element); - }; - asList$ObjectLiteral.prototype.lastIndexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isChar((tmp$ = toBoxedChar(element)) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0())) - return -1; - return lastIndexOf_7(this.this$asList, element); - }; - asList$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [RandomAccess, AbstractList]}; - function asList_7($receiver) { - return new asList$ObjectLiteral($receiver); - } - var copyInto_3 = defineInlineFunction('kotlin.kotlin.collections.copyInto_bpr3is$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_4 = defineInlineFunction('kotlin.kotlin.collections.copyInto_tpo7sv$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_5 = defineInlineFunction('kotlin.kotlin.collections.copyInto_caitwp$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_6 = defineInlineFunction('kotlin.kotlin.collections.copyInto_1zk1dd$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_7 = defineInlineFunction('kotlin.kotlin.collections.copyInto_1csvzz$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_8 = defineInlineFunction('kotlin.kotlin.collections.copyInto_94rtex$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_9 = defineInlineFunction('kotlin.kotlin.collections.copyInto_bogo1$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_10 = defineInlineFunction('kotlin.kotlin.collections.copyInto_ufe64f$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyInto_11 = defineInlineFunction('kotlin.kotlin.collections.copyInto_c3e475$', wrapFunction(function () { - var arrayCopy = _.kotlin.collections.arrayCopy; - return function ($receiver, destination, destinationOffset, startIndex, endIndex) { - if (destinationOffset === void 0) - destinationOffset = 0; - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - arrayCopy($receiver, destination, destinationOffset, startIndex, endIndex); - return destination; - }; - })); - var copyOf_7 = defineInlineFunction('kotlin.kotlin.collections.copyOf_us0mfu$', function ($receiver) { - return $receiver.slice(); - }); - var copyOf_8 = defineInlineFunction('kotlin.kotlin.collections.copyOf_964n91$', function ($receiver) { - return $receiver.slice(); - }); - var copyOf_9 = defineInlineFunction('kotlin.kotlin.collections.copyOf_i2lc79$', function ($receiver) { - return $receiver.slice(); - }); - var copyOf_10 = defineInlineFunction('kotlin.kotlin.collections.copyOf_tmsbgo$', function ($receiver) { - return $receiver.slice(); - }); - function copyOf_11($receiver) { - var type = 'LongArray'; - var array = $receiver.slice(); - array.$type$ = type; - return array; - } - var copyOf_12 = defineInlineFunction('kotlin.kotlin.collections.copyOf_rjqryz$', function ($receiver) { - return $receiver.slice(); - }); - var copyOf_13 = defineInlineFunction('kotlin.kotlin.collections.copyOf_bvy38s$', function ($receiver) { - return $receiver.slice(); - }); - function copyOf_14($receiver) { - var type = 'BooleanArray'; - var array = $receiver.slice(); - array.$type$ = type; - return array; - } - function copyOf_15($receiver) { - var type = 'CharArray'; - var array = $receiver.slice(); - array.$type$ = type; - return array; - } - function copyOf_16($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return fillFrom($receiver, new Int8Array(newSize)); - } - function copyOf_17($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return fillFrom($receiver, new Int16Array(newSize)); - } - function copyOf_18($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return fillFrom($receiver, new Int32Array(newSize)); - } - function copyOf_19($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var type = 'LongArray'; - var array = arrayCopyResize($receiver, newSize, L0); - array.$type$ = type; - return array; - } - function copyOf_20($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return fillFrom($receiver, new Float32Array(newSize)); - } - function copyOf_21($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return fillFrom($receiver, new Float64Array(newSize)); - } - function copyOf_22($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var type = 'BooleanArray'; - var array = arrayCopyResize($receiver, newSize, false); - array.$type$ = type; - return array; - } - function copyOf_23($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var type = 'CharArray'; - var array = fillFrom($receiver, Kotlin.charArray(newSize)); - array.$type$ = type; - return array; - } - function copyOf_24($receiver, newSize) { - if (!(newSize >= 0)) { - var message = 'Invalid new array size: ' + newSize + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return arrayCopyResize($receiver, newSize, null); - } - function copyOfRange_3($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - return $receiver.slice(fromIndex, toIndex); - } - function copyOfRange_4($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - return $receiver.slice(fromIndex, toIndex); - } - function copyOfRange_5($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - return $receiver.slice(fromIndex, toIndex); - } - function copyOfRange_6($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - return $receiver.slice(fromIndex, toIndex); - } - function copyOfRange_7($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - var type = 'LongArray'; - var array = $receiver.slice(fromIndex, toIndex); - array.$type$ = type; - return array; - } - function copyOfRange_8($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - return $receiver.slice(fromIndex, toIndex); - } - function copyOfRange_9($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - return $receiver.slice(fromIndex, toIndex); - } - function copyOfRange_10($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - var type = 'BooleanArray'; - var array = $receiver.slice(fromIndex, toIndex); - array.$type$ = type; - return array; - } - function copyOfRange_11($receiver, fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, $receiver.length); - var type = 'CharArray'; - var array = $receiver.slice(fromIndex, toIndex); - array.$type$ = type; - return array; - } - var plus_27 = defineInlineFunction('kotlin.kotlin.collections.plus_mjy6jw$', function ($receiver, element) { - return $receiver.concat([element]); - }); - var plus_28 = defineInlineFunction('kotlin.kotlin.collections.plus_jlnu8a$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, new Int8Array([element])); - }; - })); - var plus_29 = defineInlineFunction('kotlin.kotlin.collections.plus_s7ir3o$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, new Int16Array([element])); - }; - })); - var plus_30 = defineInlineFunction('kotlin.kotlin.collections.plus_c03ot6$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, new Int32Array([element])); - }; - })); - var plus_31 = defineInlineFunction('kotlin.kotlin.collections.plus_uxdaoa$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, Kotlin.longArrayOf(element)); - }; - })); - var plus_32 = defineInlineFunction('kotlin.kotlin.collections.plus_omthmc$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, new Float32Array([element])); - }; - })); - var plus_33 = defineInlineFunction('kotlin.kotlin.collections.plus_taaqy$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, new Float64Array([element])); - }; - })); - var plus_34 = defineInlineFunction('kotlin.kotlin.collections.plus_yax8s4$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, Kotlin.booleanArrayOf(element)); - }; - })); - var plus_35 = defineInlineFunction('kotlin.kotlin.collections.plus_o2f9me$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, element) { - return primitiveArrayConcat($receiver, Kotlin.charArrayOf(element)); - }; - })); - function plus_36($receiver, elements) { - return arrayPlusCollection($receiver, elements); - } - function plus_37($receiver, elements) { - return fillFromCollection(copyOf_16($receiver, $receiver.length + elements.size | 0), $receiver.length, elements); - } - function plus_38($receiver, elements) { - return fillFromCollection(copyOf_17($receiver, $receiver.length + elements.size | 0), $receiver.length, elements); - } - function plus_39($receiver, elements) { - return fillFromCollection(copyOf_18($receiver, $receiver.length + elements.size | 0), $receiver.length, elements); - } - function plus_40($receiver, elements) { - return arrayPlusCollection($receiver, elements); - } - function plus_41($receiver, elements) { - return fillFromCollection(copyOf_20($receiver, $receiver.length + elements.size | 0), $receiver.length, elements); - } - function plus_42($receiver, elements) { - return fillFromCollection(copyOf_21($receiver, $receiver.length + elements.size | 0), $receiver.length, elements); - } - function plus_43($receiver, elements) { - return arrayPlusCollection($receiver, elements); - } - function plus_44($receiver, elements) { - return fillFromCollection(copyOf_23($receiver, $receiver.length + elements.size | 0), $receiver.length, elements); - } - var plus_45 = defineInlineFunction('kotlin.kotlin.collections.plus_vu4gah$', function ($receiver, elements) { - return $receiver.concat(elements); - }); - var plus_46 = defineInlineFunction('kotlin.kotlin.collections.plus_ndt7zj$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_47 = defineInlineFunction('kotlin.kotlin.collections.plus_907jet$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_48 = defineInlineFunction('kotlin.kotlin.collections.plus_mgkctd$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_49 = defineInlineFunction('kotlin.kotlin.collections.plus_tq12cv$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_50 = defineInlineFunction('kotlin.kotlin.collections.plus_tec1tx$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_51 = defineInlineFunction('kotlin.kotlin.collections.plus_pmvpm9$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_52 = defineInlineFunction('kotlin.kotlin.collections.plus_qsfoml$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plus_53 = defineInlineFunction('kotlin.kotlin.collections.plus_wxyzfz$', wrapFunction(function () { - var primitiveArrayConcat = _.primitiveArrayConcat; - return function ($receiver, elements) { - return primitiveArrayConcat($receiver, elements); - }; - })); - var plusElement_3 = defineInlineFunction('kotlin.kotlin.collections.plusElement_mjy6jw$', function ($receiver, element) { - return $receiver.concat([element]); - }); - function sort$lambda(a, b) { - return a.compareTo_11rb$(b); - } - function sort_4($receiver) { - if ($receiver.length > 1) { - $receiver.sort(sort$lambda); - } - } - function sort_5($receiver) { - if ($receiver.length > 1) - sortArray($receiver); - } - function sort_6($receiver, comparison) { - if ($receiver.length > 1) - sortArrayWith($receiver, comparison); - } - var sort_7 = defineInlineFunction('kotlin.kotlin.collections.sort_hcmc5n$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - var sort_8 = defineInlineFunction('kotlin.kotlin.collections.sort_6749zv$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - var sort_9 = defineInlineFunction('kotlin.kotlin.collections.sort_vuuzha$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - var sort_10 = defineInlineFunction('kotlin.kotlin.collections.sort_y2xy0v$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - var sort_11 = defineInlineFunction('kotlin.kotlin.collections.sort_rx1g57$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - var sort_12 = defineInlineFunction('kotlin.kotlin.collections.sort_qgorx0$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - var sort_13 = defineInlineFunction('kotlin.kotlin.collections.sort_vuimop$', function ($receiver, comparison) { - $receiver.sort(comparison); - }); - function sortWith($receiver, comparator) { - if ($receiver.length > 1) - sortArrayWith_0($receiver, comparator); - } - function toTypedArray_3($receiver) { - return [].slice.call($receiver); - } - function toTypedArray_4($receiver) { - return [].slice.call($receiver); - } - function toTypedArray_5($receiver) { - return [].slice.call($receiver); - } - function toTypedArray_6($receiver) { - return [].slice.call($receiver); - } - function toTypedArray_7($receiver) { - return [].slice.call($receiver); - } - function toTypedArray_8($receiver) { - return [].slice.call($receiver); - } - function toTypedArray_9($receiver) { - return [].slice.call($receiver); - } - function toTypedArray$lambda_3(this$toTypedArray) { - return function (index) { - return toBoxedChar(this$toTypedArray[index]); - }; - } - function toTypedArray_10($receiver) { - return Kotlin.newArrayF($receiver.length, toTypedArray$lambda_3($receiver)); - } - function reverse_12($receiver) { - var midPoint = ($receiver.size / 2 | 0) - 1 | 0; - if (midPoint < 0) - return; - var reverseIndex = get_lastIndex_12($receiver); - for (var index = 0; index <= midPoint; index++) { - var tmp = $receiver.get_za3lpa$(index); - $receiver.set_wxm5ur$(index, $receiver.get_za3lpa$(reverseIndex)); - $receiver.set_wxm5ur$(reverseIndex, tmp); - reverseIndex = reverseIndex - 1 | 0; - } - } - function maxOf_9(a, b) { - return Kotlin.compareTo(a, b) >= 0 ? a : b; - } - var maxOf_10 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_5gdoe6$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var maxOf_11 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_8bdmd0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var maxOf_12 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_vux9f0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var maxOf_13 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_3pjtqy$', function (a, b) { - return a.compareTo_11rb$(b) >= 0 ? a : b; - }); - var maxOf_14 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_dleff0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var maxOf_15 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_lu1900$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - function maxOf_16(a, b, c) { - return maxOf_9(a, maxOf_9(b, c)); - } - var maxOf_17 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_d9r5kp$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.max(a, b, c); - }; - })); - var maxOf_18 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_i3nxhr$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.max(a, b, c); - }; - })); - var maxOf_19 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_qt1dr2$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.max(a, b, c); - }; - })); - var maxOf_20 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_b9bd0d$', function (a, b, c) { - var b_0 = b.compareTo_11rb$(c) >= 0 ? b : c; - return a.compareTo_11rb$(b_0) >= 0 ? a : b_0; - }); - var maxOf_21 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_y2kzbl$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.max(a, b, c); - }; - })); - var maxOf_22 = defineInlineFunction('kotlin.kotlin.comparisons.maxOf_yvo9jy$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.max(a, b, c); - }; - })); - function minOf_9(a, b) { - return Kotlin.compareTo(a, b) <= 0 ? a : b; - } - var minOf_10 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_5gdoe6$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var minOf_11 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_8bdmd0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var minOf_12 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_vux9f0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var minOf_13 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_3pjtqy$', function (a, b) { - return a.compareTo_11rb$(b) <= 0 ? a : b; - }); - var minOf_14 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_dleff0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var minOf_15 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_lu1900$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - function minOf_16(a, b, c) { - return minOf_9(a, minOf_9(b, c)); - } - var minOf_17 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_d9r5kp$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.min(a, b, c); - }; - })); - var minOf_18 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_i3nxhr$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.min(a, b, c); - }; - })); - var minOf_19 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_qt1dr2$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.min(a, b, c); - }; - })); - var minOf_20 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_b9bd0d$', function (a, b, c) { - var b_0 = b.compareTo_11rb$(c) <= 0 ? b : c; - return a.compareTo_11rb$(b_0) <= 0 ? a : b_0; - }); - var minOf_21 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_y2kzbl$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.min(a, b, c); - }; - })); - var minOf_22 = defineInlineFunction('kotlin.kotlin.comparisons.minOf_yvo9jy$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b, c) { - return Math_0.min(a, b, c); - }; - })); - function elementAt_11($receiver, index) { - var tmp$; - if (index >= 0 && index <= get_lastIndex_13($receiver)) - tmp$ = $receiver.charCodeAt(index); - else { - throw new IndexOutOfBoundsException('index: ' + index + ', length: ' + $receiver.length + '}'); - } - return tmp$; - } - function elementAt_12($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_2($receiver.storage); - } - var tmp$_0; - if (tmp$) - tmp$_0 = $receiver.get_za3lpa$(index); - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.size + '}'); - } - return tmp$_0; - } - function elementAt_13($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_3($receiver.storage); - } - var tmp$_0; - if (tmp$) - tmp$_0 = $receiver.get_za3lpa$(index); - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.size + '}'); - } - return tmp$_0; - } - function elementAt_14($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_0($receiver.storage); - } - var tmp$_0; - if (tmp$) - tmp$_0 = $receiver.get_za3lpa$(index); - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.size + '}'); - } - return tmp$_0; - } - function elementAt_15($receiver, index) { - var tmp$ = index >= 0; - if (tmp$) { - tmp$ = index <= get_lastIndex_1($receiver.storage); - } - var tmp$_0; - if (tmp$) - tmp$_0 = $receiver.get_za3lpa$(index); - else { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + $receiver.size + '}'); - } - return tmp$_0; - } - function asList$ObjectLiteral_0(this$asList) { - this.this$asList = this$asList; - AbstractList.call(this); - } - Object.defineProperty(asList$ObjectLiteral_0.prototype, 'size', {get: function () { - return this.this$asList.size; - }}); - asList$ObjectLiteral_0.prototype.isEmpty = function () { - return this.this$asList.isEmpty(); - }; - asList$ObjectLiteral_0.prototype.contains_11rb$ = function (element) { - return this.this$asList.contains_11rb$(element); - }; - asList$ObjectLiteral_0.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return this.this$asList.get_za3lpa$(index); - }; - asList$ObjectLiteral_0.prototype.indexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UInt)) - return -1; - return indexOf_2(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_0.prototype.lastIndexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UInt)) - return -1; - return lastIndexOf_2(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_0.$metadata$ = {kind: Kind_CLASS, interfaces: [RandomAccess, AbstractList]}; - function asList_8($receiver) { - return new asList$ObjectLiteral_0($receiver); - } - function asList$ObjectLiteral_1(this$asList) { - this.this$asList = this$asList; - AbstractList.call(this); - } - Object.defineProperty(asList$ObjectLiteral_1.prototype, 'size', {get: function () { - return this.this$asList.size; - }}); - asList$ObjectLiteral_1.prototype.isEmpty = function () { - return this.this$asList.isEmpty(); - }; - asList$ObjectLiteral_1.prototype.contains_11rb$ = function (element) { - return this.this$asList.contains_11rb$(element); - }; - asList$ObjectLiteral_1.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return this.this$asList.get_za3lpa$(index); - }; - asList$ObjectLiteral_1.prototype.indexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), ULong)) - return -1; - return indexOf_3(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_1.prototype.lastIndexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), ULong)) - return -1; - return lastIndexOf_3(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_1.$metadata$ = {kind: Kind_CLASS, interfaces: [RandomAccess, AbstractList]}; - function asList_9($receiver) { - return new asList$ObjectLiteral_1($receiver); - } - function asList$ObjectLiteral_2(this$asList) { - this.this$asList = this$asList; - AbstractList.call(this); - } - Object.defineProperty(asList$ObjectLiteral_2.prototype, 'size', {get: function () { - return this.this$asList.size; - }}); - asList$ObjectLiteral_2.prototype.isEmpty = function () { - return this.this$asList.isEmpty(); - }; - asList$ObjectLiteral_2.prototype.contains_11rb$ = function (element) { - return this.this$asList.contains_11rb$(element); - }; - asList$ObjectLiteral_2.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return this.this$asList.get_za3lpa$(index); - }; - asList$ObjectLiteral_2.prototype.indexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UByte)) - return -1; - return indexOf_0(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_2.prototype.lastIndexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UByte)) - return -1; - return lastIndexOf_0(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_2.$metadata$ = {kind: Kind_CLASS, interfaces: [RandomAccess, AbstractList]}; - function asList_10($receiver) { - return new asList$ObjectLiteral_2($receiver); - } - function asList$ObjectLiteral_3(this$asList) { - this.this$asList = this$asList; - AbstractList.call(this); - } - Object.defineProperty(asList$ObjectLiteral_3.prototype, 'size', {get: function () { - return this.this$asList.size; - }}); - asList$ObjectLiteral_3.prototype.isEmpty = function () { - return this.this$asList.isEmpty(); - }; - asList$ObjectLiteral_3.prototype.contains_11rb$ = function (element) { - return this.this$asList.contains_11rb$(element); - }; - asList$ObjectLiteral_3.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return this.this$asList.get_za3lpa$(index); - }; - asList$ObjectLiteral_3.prototype.indexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UShort)) - return -1; - return indexOf_1(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_3.prototype.lastIndexOf_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UShort)) - return -1; - return lastIndexOf_1(this.this$asList.storage, element.data); - }; - asList$ObjectLiteral_3.$metadata$ = {kind: Kind_CLASS, interfaces: [RandomAccess, AbstractList]}; - function asList_11($receiver) { - return new asList$ObjectLiteral_3($receiver); - } - var buttonset = defineInlineFunction('kotlin.jquery.ui.buttonset_vwohdt$', function ($receiver) { - return $receiver.buttonset(); - }); - var dialog = defineInlineFunction('kotlin.jquery.ui.dialog_vwohdt$', function ($receiver) { - return $receiver.dialog(); - }); - var dialog_0 = defineInlineFunction('kotlin.jquery.ui.dialog_pm4xy9$', function ($receiver, params) { - return $receiver.dialog(params); - }); - var dialog_1 = defineInlineFunction('kotlin.jquery.ui.dialog_zc05ld$', function ($receiver, mode, param) { - return $receiver.dialog(mode, param); - }); - var dialog_2 = defineInlineFunction('kotlin.jquery.ui.dialog_v89ba5$', function ($receiver, mode) { - return $receiver.dialog(mode); - }); - var dialog_3 = defineInlineFunction('kotlin.jquery.ui.dialog_pfp31$', function ($receiver, mode, param, value) { - return $receiver.dialog(mode, param, value); - }); - var button = defineInlineFunction('kotlin.jquery.ui.button_vwohdt$', function ($receiver) { - return $receiver.button(); - }); - var accordion = defineInlineFunction('kotlin.jquery.ui.accordion_vwohdt$', function ($receiver) { - return $receiver.accordion(); - }); - var draggable = defineInlineFunction('kotlin.jquery.ui.draggable_pm4xy9$', function ($receiver, params) { - return $receiver.draggable(params); - }); - var selectable = defineInlineFunction('kotlin.jquery.ui.selectable_vwohdt$', function ($receiver) { - return $receiver.selectable(); - }); - function Comparator() { - } - Comparator.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Comparator', interfaces: []}; - var Comparator_0 = defineInlineFunction('kotlin.kotlin.Comparator_x4fedy$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - return function (comparison) { - return new Comparator$ObjectLiteral(comparison); - }; - })); - function native(name) { - if (name === void 0) - name = ''; - this.name = name; - } - native.$metadata$ = {kind: Kind_CLASS, simpleName: 'native', interfaces: [Annotation]}; - function nativeGetter() { - } - nativeGetter.$metadata$ = {kind: Kind_CLASS, simpleName: 'nativeGetter', interfaces: [Annotation]}; - function nativeSetter() { - } - nativeSetter.$metadata$ = {kind: Kind_CLASS, simpleName: 'nativeSetter', interfaces: [Annotation]}; - function nativeInvoke() { - } - nativeInvoke.$metadata$ = {kind: Kind_CLASS, simpleName: 'nativeInvoke', interfaces: [Annotation]}; - function library(name) { - if (name === void 0) - name = ''; - this.name = name; - } - library.$metadata$ = {kind: Kind_CLASS, simpleName: 'library', interfaces: [Annotation]}; - function marker() { - } - marker.$metadata$ = {kind: Kind_CLASS, simpleName: 'marker', interfaces: [Annotation]}; - function JsName(name) { - this.name = name; - } - JsName.$metadata$ = {kind: Kind_CLASS, simpleName: 'JsName', interfaces: [Annotation]}; - function JsModule(import_0) { - this.import = import_0; - } - JsModule.$metadata$ = {kind: Kind_CLASS, simpleName: 'JsModule', interfaces: [Annotation]}; - function JsNonModule() { - } - JsNonModule.$metadata$ = {kind: Kind_CLASS, simpleName: 'JsNonModule', interfaces: [Annotation]}; - function JsQualifier(value) { - this.value = value; - } - JsQualifier.$metadata$ = {kind: Kind_CLASS, simpleName: 'JsQualifier', interfaces: [Annotation]}; - function Volatile() { - } - Volatile.$metadata$ = {kind: Kind_CLASS, simpleName: 'Volatile', interfaces: [Annotation]}; - function Synchronized() { - } - Synchronized.$metadata$ = {kind: Kind_CLASS, simpleName: 'Synchronized', interfaces: [Annotation]}; - var orEmpty = defineInlineFunction('kotlin.kotlin.collections.orEmpty_oachgz$', function ($receiver) { - return $receiver != null ? $receiver : []; - }); - var toTypedArray_11 = defineInlineFunction('kotlin.kotlin.collections.toTypedArray_4c7yge$', wrapFunction(function () { - var copyToArray = _.kotlin.collections.copyToArray; - return function ($receiver) { - return copyToArray($receiver); - }; - })); - function copyToArray(collection) { - return collection.toArray !== undefined ? collection.toArray() : copyToArrayImpl(collection); - } - function copyToArrayImpl(collection) { - var array = []; - var iterator = collection.iterator(); - while (iterator.hasNext()) - array.push(iterator.next()); - return array; - } - function copyToArrayImpl_0(collection, array) { - var tmp$; - if (array.length < collection.size) { - return copyToArrayImpl(collection); - } - var iterator = collection.iterator(); - var index = 0; - while (iterator.hasNext()) { - array[tmp$ = index, index = tmp$ + 1 | 0, tmp$] = iterator.next(); - } - if (index < array.length) { - array[index] = null; - } - return array; - } - function listOf(element) { - return arrayListOf_0([element]); - } - function setOf(element) { - return hashSetOf_0([element]); - } - function mapOf(pair) { - return hashMapOf_0([pair]); - } - function fill($receiver, value) { - var tmp$; - tmp$ = get_lastIndex_12($receiver); - for (var index = 0; index <= tmp$; index++) { - $receiver.set_wxm5ur$(index, value); - } - } - function shuffle($receiver) { - shuffle_0($receiver, Random$Default_getInstance()); - } - function shuffled($receiver) { - var $receiver_0 = toMutableList_8($receiver); - shuffle($receiver_0); - return $receiver_0; - } - function sort_14($receiver) { - collectionsSort($receiver, naturalOrder()); - } - function sortWith_0($receiver, comparator) { - collectionsSort($receiver, comparator); - } - function collectionsSort(list, comparator) { - if (list.size <= 1) - return; - var array = copyToArray(list); - sortArrayWith_0(array, comparator); - for (var i = 0; i < array.length; i++) { - list.set_wxm5ur$(i, array[i]); - } - } - function arrayOfNulls(reference, size) { - return Kotlin.newArray(size, null); - } - function arrayCopy(source, destination, destinationOffset, startIndex, endIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(startIndex, endIndex, source.length); - var rangeSize = endIndex - startIndex | 0; - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(destinationOffset, destinationOffset + rangeSize | 0, destination.length); - if (ArrayBuffer.isView(destination) && ArrayBuffer.isView(source)) { - var subrange = source.subarray(startIndex, endIndex); - destination.set(subrange, destinationOffset); - } - else { - if (source !== destination || destinationOffset <= startIndex) { - for (var index = 0; index < rangeSize; index++) { - destination[destinationOffset + index | 0] = source[startIndex + index | 0]; - } - } - else { - for (var index_0 = rangeSize - 1 | 0; index_0 >= 0; index_0--) { - destination[destinationOffset + index_0 | 0] = source[startIndex + index_0 | 0]; - } - } - } - } - var toSingletonMapOrSelf = defineInlineFunction('kotlin.kotlin.collections.toSingletonMapOrSelf_1vp4qn$', function ($receiver) { - return $receiver; - }); - var toSingletonMap = defineInlineFunction('kotlin.kotlin.collections.toSingletonMap_3imywq$', wrapFunction(function () { - var toMutableMap = _.kotlin.collections.toMutableMap_abgq59$; - return function ($receiver) { - return toMutableMap($receiver); - }; - })); - var copyToArrayOfAny = defineInlineFunction('kotlin.kotlin.collections.copyToArrayOfAny_e0iprw$', function ($receiver, isVarargs) { - return isVarargs ? $receiver : $receiver.slice(); - }); - function checkIndexOverflow(index) { - if (index < 0) { - throwIndexOverflow(); - } - return index; - } - function checkCountOverflow(count) { - if (count < 0) { - throwCountOverflow(); - } - return count; - } - function AbstractMutableCollection() { - AbstractCollection.call(this); - } - AbstractMutableCollection.prototype.remove_11rb$ = function (element) { - var iterator = this.iterator(); - while (iterator.hasNext()) { - if (equals(iterator.next(), element)) { - iterator.remove(); - return true; - } - } - return false; - }; - AbstractMutableCollection.prototype.addAll_brywnq$ = function (elements) { - var tmp$; - var modified = false; - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (this.add_11rb$(element)) - modified = true; - } - return modified; - }; - function AbstractMutableCollection$removeAll$lambda(closure$elements) { - return function (it) { - return closure$elements.contains_11rb$(it); - }; - } - AbstractMutableCollection.prototype.removeAll_brywnq$ = function (elements) { - var tmp$; - return removeAll_0(Kotlin.isType(tmp$ = this, MutableIterable) ? tmp$ : throwCCE_0(), AbstractMutableCollection$removeAll$lambda(elements)); - }; - function AbstractMutableCollection$retainAll$lambda(closure$elements) { - return function (it) { - return !closure$elements.contains_11rb$(it); - }; - } - AbstractMutableCollection.prototype.retainAll_brywnq$ = function (elements) { - var tmp$; - return removeAll_0(Kotlin.isType(tmp$ = this, MutableIterable) ? tmp$ : throwCCE_0(), AbstractMutableCollection$retainAll$lambda(elements)); - }; - AbstractMutableCollection.prototype.clear = function () { - var iterator = this.iterator(); - while (iterator.hasNext()) { - iterator.next(); - iterator.remove(); - } - }; - AbstractMutableCollection.prototype.toJSON = function () { - return this.toArray(); - }; - AbstractMutableCollection.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractMutableCollection', interfaces: [MutableCollection, AbstractCollection]}; - function AbstractMutableList() { - AbstractMutableCollection.call(this); - this.modCount = 0; - } - AbstractMutableList.prototype.add_11rb$ = function (element) { - this.add_wxm5ur$(this.size, element); - return true; - }; - AbstractMutableList.prototype.addAll_u57x28$ = function (index, elements) { - var tmp$, tmp$_0; - var _index = index; - var changed = false; - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - this.add_wxm5ur$((tmp$_0 = _index, _index = tmp$_0 + 1 | 0, tmp$_0), e); - changed = true; - } - return changed; - }; - AbstractMutableList.prototype.clear = function () { - this.removeRange_vux9f0$(0, this.size); - }; - function AbstractMutableList$removeAll$lambda(closure$elements) { - return function (it) { - return closure$elements.contains_11rb$(it); - }; - } - AbstractMutableList.prototype.removeAll_brywnq$ = function (elements) { - return removeAll_1(this, AbstractMutableList$removeAll$lambda(elements)); - }; - function AbstractMutableList$retainAll$lambda(closure$elements) { - return function (it) { - return !closure$elements.contains_11rb$(it); - }; - } - AbstractMutableList.prototype.retainAll_brywnq$ = function (elements) { - return removeAll_1(this, AbstractMutableList$retainAll$lambda(elements)); - }; - AbstractMutableList.prototype.iterator = function () { - return new AbstractMutableList$IteratorImpl(this); - }; - AbstractMutableList.prototype.contains_11rb$ = function (element) { - return this.indexOf_11rb$(element) >= 0; - }; - AbstractMutableList.prototype.indexOf_11rb$ = function (element) { - var tmp$; - tmp$ = get_lastIndex_12(this); - for (var index = 0; index <= tmp$; index++) { - if (equals(this.get_za3lpa$(index), element)) { - return index; - } - } - return -1; - }; - AbstractMutableList.prototype.lastIndexOf_11rb$ = function (element) { - for (var index = get_lastIndex_12(this); index >= 0; index--) { - if (equals(this.get_za3lpa$(index), element)) { - return index; - } - } - return -1; - }; - AbstractMutableList.prototype.listIterator = function () { - return this.listIterator_za3lpa$(0); - }; - AbstractMutableList.prototype.listIterator_za3lpa$ = function (index) { - return new AbstractMutableList$ListIteratorImpl(this, index); - }; - AbstractMutableList.prototype.subList_vux9f0$ = function (fromIndex, toIndex) { - return new AbstractMutableList$SubList(this, fromIndex, toIndex); - }; - AbstractMutableList.prototype.removeRange_vux9f0$ = function (fromIndex, toIndex) { - var iterator = this.listIterator_za3lpa$(fromIndex); - var times = toIndex - fromIndex | 0; - for (var index = 0; index < times; index++) { - iterator.next(); - iterator.remove(); - } - }; - AbstractMutableList.prototype.equals = function (other) { - if (other === this) - return true; - if (!Kotlin.isType(other, List)) - return false; - return AbstractList$Companion_getInstance().orderedEquals_e92ka7$(this, other); - }; - AbstractMutableList.prototype.hashCode = function () { - return AbstractList$Companion_getInstance().orderedHashCode_nykoif$(this); - }; - function AbstractMutableList$IteratorImpl($outer) { - this.$outer = $outer; - this.index_0 = 0; - this.last_0 = -1; - } - AbstractMutableList$IteratorImpl.prototype.hasNext = function () { - return this.index_0 < this.$outer.size; - }; - AbstractMutableList$IteratorImpl.prototype.next = function () { - var tmp$; - if (!this.hasNext()) - throw NoSuchElementException_init(); - this.last_0 = (tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$); - return this.$outer.get_za3lpa$(this.last_0); - }; - AbstractMutableList$IteratorImpl.prototype.remove = function () { - if (!(this.last_0 !== -1)) { - var message = 'Call next() or previous() before removing element from the iterator.'; - throw IllegalStateException_init_0(message.toString()); - } - this.$outer.removeAt_za3lpa$(this.last_0); - this.index_0 = this.last_0; - this.last_0 = -1; - }; - AbstractMutableList$IteratorImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'IteratorImpl', interfaces: [MutableIterator]}; - function AbstractMutableList$ListIteratorImpl($outer, index) { - this.$outer = $outer; - AbstractMutableList$IteratorImpl.call(this, this.$outer); - AbstractList$Companion_getInstance().checkPositionIndex_6xvm5r$(index, this.$outer.size); - this.index_0 = index; - } - AbstractMutableList$ListIteratorImpl.prototype.hasPrevious = function () { - return this.index_0 > 0; - }; - AbstractMutableList$ListIteratorImpl.prototype.nextIndex = function () { - return this.index_0; - }; - AbstractMutableList$ListIteratorImpl.prototype.previous = function () { - if (!this.hasPrevious()) - throw NoSuchElementException_init(); - this.last_0 = (this.index_0 = this.index_0 - 1 | 0, this.index_0); - return this.$outer.get_za3lpa$(this.last_0); - }; - AbstractMutableList$ListIteratorImpl.prototype.previousIndex = function () { - return this.index_0 - 1 | 0; - }; - AbstractMutableList$ListIteratorImpl.prototype.add_11rb$ = function (element) { - this.$outer.add_wxm5ur$(this.index_0, element); - this.index_0 = this.index_0 + 1 | 0; - this.last_0 = -1; - }; - AbstractMutableList$ListIteratorImpl.prototype.set_11rb$ = function (element) { - if (!(this.last_0 !== -1)) { - var message = 'Call next() or previous() before updating element value with the iterator.'; - throw IllegalStateException_init_0(message.toString()); - } - this.$outer.set_wxm5ur$(this.last_0, element); - }; - AbstractMutableList$ListIteratorImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'ListIteratorImpl', interfaces: [MutableListIterator, AbstractMutableList$IteratorImpl]}; - function AbstractMutableList$SubList(list, fromIndex, toIndex) { - AbstractMutableList.call(this); - this.list_0 = list; - this.fromIndex_0 = fromIndex; - this._size_0 = 0; - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(this.fromIndex_0, toIndex, this.list_0.size); - this._size_0 = toIndex - this.fromIndex_0 | 0; - } - AbstractMutableList$SubList.prototype.add_wxm5ur$ = function (index, element) { - AbstractList$Companion_getInstance().checkPositionIndex_6xvm5r$(index, this._size_0); - this.list_0.add_wxm5ur$(this.fromIndex_0 + index | 0, element); - this._size_0 = this._size_0 + 1 | 0; - }; - AbstractMutableList$SubList.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this._size_0); - return this.list_0.get_za3lpa$(this.fromIndex_0 + index | 0); - }; - AbstractMutableList$SubList.prototype.removeAt_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this._size_0); - var result = this.list_0.removeAt_za3lpa$(this.fromIndex_0 + index | 0); - this._size_0 = this._size_0 - 1 | 0; - return result; - }; - AbstractMutableList$SubList.prototype.set_wxm5ur$ = function (index, element) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this._size_0); - return this.list_0.set_wxm5ur$(this.fromIndex_0 + index | 0, element); - }; - Object.defineProperty(AbstractMutableList$SubList.prototype, 'size', {get: function () { - return this._size_0; - }}); - AbstractMutableList$SubList.$metadata$ = {kind: Kind_CLASS, simpleName: 'SubList', interfaces: [RandomAccess, AbstractMutableList]}; - AbstractMutableList.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractMutableList', interfaces: [MutableList, AbstractMutableCollection]}; - function AbstractMutableMap() { - AbstractMap.call(this); - this._keys_qe2m0n$_0 = null; - this._values_kxdlqh$_0 = null; - } - function AbstractMutableMap$SimpleEntry(key, value) { - this.key_5xhq3d$_0 = key; - this._value_0 = value; - } - Object.defineProperty(AbstractMutableMap$SimpleEntry.prototype, 'key', {get: function () { - return this.key_5xhq3d$_0; - }}); - Object.defineProperty(AbstractMutableMap$SimpleEntry.prototype, 'value', {get: function () { - return this._value_0; - }}); - AbstractMutableMap$SimpleEntry.prototype.setValue_11rc$ = function (newValue) { - var oldValue = this._value_0; - this._value_0 = newValue; - return oldValue; - }; - AbstractMutableMap$SimpleEntry.prototype.hashCode = function () { - return AbstractMap$Companion_getInstance().entryHashCode_9fthdn$(this); - }; - AbstractMutableMap$SimpleEntry.prototype.toString = function () { - return AbstractMap$Companion_getInstance().entryToString_9fthdn$(this); - }; - AbstractMutableMap$SimpleEntry.prototype.equals = function (other) { - return AbstractMap$Companion_getInstance().entryEquals_js7fox$(this, other); - }; - AbstractMutableMap$SimpleEntry.$metadata$ = {kind: Kind_CLASS, simpleName: 'SimpleEntry', interfaces: [MutableMap$MutableEntry]}; - function AbstractMutableMap$AbstractMutableMap$SimpleEntry_init(entry, $this) { - $this = $this || Object.create(AbstractMutableMap$SimpleEntry.prototype); - AbstractMutableMap$SimpleEntry.call($this, entry.key, entry.value); - return $this; - } - AbstractMutableMap.prototype.clear = function () { - this.entries.clear(); - }; - function AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral(this$AbstractMutableMap) { - this.this$AbstractMutableMap = this$AbstractMutableMap; - AbstractMutableSet.call(this); - } - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype.add_11rb$ = function (element) { - throw UnsupportedOperationException_init_0('Add is not supported on keys'); - }; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype.clear = function () { - this.this$AbstractMutableMap.clear(); - }; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype.contains_11rb$ = function (element) { - return this.this$AbstractMutableMap.containsKey_11rb$(element); - }; - function AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral$iterator$ObjectLiteral(closure$entryIterator) { - this.closure$entryIterator = closure$entryIterator; - } - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.closure$entryIterator.hasNext(); - }; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral$iterator$ObjectLiteral.prototype.next = function () { - return this.closure$entryIterator.next().key; - }; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral$iterator$ObjectLiteral.prototype.remove = function () { - this.closure$entryIterator.remove(); - }; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [MutableIterator]}; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype.iterator = function () { - var entryIterator = this.this$AbstractMutableMap.entries.iterator(); - return new AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral$iterator$ObjectLiteral(entryIterator); - }; - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype.remove_11rb$ = function (element) { - if (this.this$AbstractMutableMap.containsKey_11rb$(element)) { - this.this$AbstractMutableMap.remove_11rb$(element); - return true; - } - return false; - }; - Object.defineProperty(AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.prototype, 'size', {get: function () { - return this.this$AbstractMutableMap.size; - }}); - AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractMutableSet]}; - Object.defineProperty(AbstractMutableMap.prototype, 'keys', {get: function () { - if (this._keys_qe2m0n$_0 == null) { - this._keys_qe2m0n$_0 = new AbstractMutableMap$get_AbstractMutableMap$keys$ObjectLiteral(this); - } - return ensureNotNull(this._keys_qe2m0n$_0); - }}); - AbstractMutableMap.prototype.putAll_a2k3zr$ = function (from) { - var tmp$; - tmp$ = from.entries.iterator(); - while (tmp$.hasNext()) { - var tmp$_0 = tmp$.next(); - var key = tmp$_0.key; - var value = tmp$_0.value; - this.put_xwzc9p$(key, value); - } - }; - function AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral(this$AbstractMutableMap) { - this.this$AbstractMutableMap = this$AbstractMutableMap; - AbstractMutableCollection.call(this); - } - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.add_11rb$ = function (element) { - throw UnsupportedOperationException_init_0('Add is not supported on values'); - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.clear = function () { - this.this$AbstractMutableMap.clear(); - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.contains_11rb$ = function (element) { - return this.this$AbstractMutableMap.containsValue_11rc$(element); - }; - function AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral$iterator$ObjectLiteral(closure$entryIterator) { - this.closure$entryIterator = closure$entryIterator; - } - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.closure$entryIterator.hasNext(); - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral$iterator$ObjectLiteral.prototype.next = function () { - return this.closure$entryIterator.next().value; - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral$iterator$ObjectLiteral.prototype.remove = function () { - this.closure$entryIterator.remove(); - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [MutableIterator]}; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.iterator = function () { - var entryIterator = this.this$AbstractMutableMap.entries.iterator(); - return new AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral$iterator$ObjectLiteral(entryIterator); - }; - Object.defineProperty(AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype, 'size', {get: function () { - return this.this$AbstractMutableMap.size; - }}); - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.equals = function (other) { - if (this === other) - return true; - if (!Kotlin.isType(other, Collection)) - return false; - return AbstractList$Companion_getInstance().orderedEquals_e92ka7$(this, other); - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.prototype.hashCode = function () { - return AbstractList$Companion_getInstance().orderedHashCode_nykoif$(this); - }; - AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractMutableCollection]}; - Object.defineProperty(AbstractMutableMap.prototype, 'values', {get: function () { - if (this._values_kxdlqh$_0 == null) { - this._values_kxdlqh$_0 = new AbstractMutableMap$get_AbstractMutableMap$values$ObjectLiteral(this); - } - return ensureNotNull(this._values_kxdlqh$_0); - }}); - AbstractMutableMap.prototype.remove_11rb$ = function (key) { - var iter = this.entries.iterator(); - while (iter.hasNext()) { - var entry = iter.next(); - var k = entry.key; - if (equals(key, k)) { - var value = entry.value; - iter.remove(); - return value; - } - } - return null; - }; - AbstractMutableMap.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractMutableMap', interfaces: [MutableMap, AbstractMap]}; - function AbstractMutableSet() { - AbstractMutableCollection.call(this); - } - AbstractMutableSet.prototype.equals = function (other) { - if (other === this) - return true; - if (!Kotlin.isType(other, Set)) - return false; - return AbstractSet$Companion_getInstance().setEquals_y8f7en$(this, other); - }; - AbstractMutableSet.prototype.hashCode = function () { - return AbstractSet$Companion_getInstance().unorderedHashCode_nykoif$(this); - }; - AbstractMutableSet.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractMutableSet', interfaces: [MutableSet, AbstractMutableCollection]}; - function ArrayList(array) { - AbstractMutableList.call(this); - this.array_hd7ov6$_0 = array; - } - ArrayList.prototype.trimToSize = function () { - }; - ArrayList.prototype.ensureCapacity_za3lpa$ = function (minCapacity) { - }; - Object.defineProperty(ArrayList.prototype, 'size', {get: function () { - return this.array_hd7ov6$_0.length; - }}); - ArrayList.prototype.get_za3lpa$ = function (index) { - var tmp$; - return (tmp$ = this.array_hd7ov6$_0[this.rangeCheck_xcmk5o$_0(index)]) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }; - ArrayList.prototype.set_wxm5ur$ = function (index, element) { - var tmp$; - this.rangeCheck_xcmk5o$_0(index); - var $receiver = this.array_hd7ov6$_0[index]; - this.array_hd7ov6$_0[index] = element; - return (tmp$ = $receiver) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }; - ArrayList.prototype.add_11rb$ = function (element) { - this.array_hd7ov6$_0.push(element); - this.modCount = this.modCount + 1 | 0; - return true; - }; - ArrayList.prototype.add_wxm5ur$ = function (index, element) { - this.array_hd7ov6$_0.splice(this.insertionRangeCheck_xwivfl$_0(index), 0, element); - this.modCount = this.modCount + 1 | 0; - }; - ArrayList.prototype.addAll_brywnq$ = function (elements) { - if (elements.isEmpty()) - return false; - this.array_hd7ov6$_0 = this.array_hd7ov6$_0.concat(copyToArray(elements)); - this.modCount = this.modCount + 1 | 0; - return true; - }; - ArrayList.prototype.addAll_u57x28$ = function (index, elements) { - this.insertionRangeCheck_xwivfl$_0(index); - if (index === this.size) - return this.addAll_brywnq$(elements); - if (elements.isEmpty()) - return false; - if (index === this.size) - return this.addAll_brywnq$(elements); - else if (index === 0) { - this.array_hd7ov6$_0 = copyToArray(elements).concat(this.array_hd7ov6$_0); - } - else { - this.array_hd7ov6$_0 = copyOfRange_3(this.array_hd7ov6$_0, 0, index).concat(copyToArray(elements), copyOfRange_3(this.array_hd7ov6$_0, index, this.size)); - } - this.modCount = this.modCount + 1 | 0; - return true; - }; - ArrayList.prototype.removeAt_za3lpa$ = function (index) { - this.rangeCheck_xcmk5o$_0(index); - this.modCount = this.modCount + 1 | 0; - return index === get_lastIndex_12(this) ? this.array_hd7ov6$_0.pop() : this.array_hd7ov6$_0.splice(index, 1)[0]; - }; - ArrayList.prototype.remove_11rb$ = function (element) { - var tmp$; - tmp$ = this.array_hd7ov6$_0; - for (var index = 0; index !== tmp$.length; ++index) { - if (equals(this.array_hd7ov6$_0[index], element)) { - this.array_hd7ov6$_0.splice(index, 1); - this.modCount = this.modCount + 1 | 0; - return true; - } - } - return false; - }; - ArrayList.prototype.removeRange_vux9f0$ = function (fromIndex, toIndex) { - this.modCount = this.modCount + 1 | 0; - this.array_hd7ov6$_0.splice(fromIndex, toIndex - fromIndex | 0); - }; - ArrayList.prototype.clear = function () { - this.array_hd7ov6$_0 = []; - this.modCount = this.modCount + 1 | 0; - }; - ArrayList.prototype.indexOf_11rb$ = function (element) { - return indexOf(this.array_hd7ov6$_0, element); - }; - ArrayList.prototype.lastIndexOf_11rb$ = function (element) { - return lastIndexOf(this.array_hd7ov6$_0, element); - }; - ArrayList.prototype.toString = function () { - return arrayToString(this.array_hd7ov6$_0); - }; - ArrayList.prototype.toArray = function () { - return [].slice.call(this.array_hd7ov6$_0); - }; - ArrayList.prototype.rangeCheck_xcmk5o$_0 = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return index; - }; - ArrayList.prototype.insertionRangeCheck_xwivfl$_0 = function (index) { - AbstractList$Companion_getInstance().checkPositionIndex_6xvm5r$(index, this.size); - return index; - }; - ArrayList.$metadata$ = {kind: Kind_CLASS, simpleName: 'ArrayList', interfaces: [RandomAccess, AbstractMutableList, MutableList]}; - function ArrayList_init($this) { - $this = $this || Object.create(ArrayList.prototype); - ArrayList.call($this, []); - return $this; - } - function ArrayList_init_0(initialCapacity, $this) { - if (initialCapacity === void 0) - initialCapacity = 0; - $this = $this || Object.create(ArrayList.prototype); - ArrayList.call($this, []); - return $this; - } - function ArrayList_init_1(elements, $this) { - $this = $this || Object.create(ArrayList.prototype); - ArrayList.call($this, copyToArray(elements)); - return $this; - } - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function sortArrayWith(array, comparison) { - if (getStableSortingIsSupported()) { - array.sort(comparison); - } - else { - mergeSort(array, 0, get_lastIndex(array), new Comparator$ObjectLiteral(comparison)); - } - } - function sortArrayWith$lambda(closure$comparator) { - return function (a, b) { - return closure$comparator.compare(a, b); - }; - } - function sortArrayWith_0(array, comparator) { - if (getStableSortingIsSupported()) { - var comparison = sortArrayWith$lambda(comparator); - array.sort(comparison); - } - else { - mergeSort(array, 0, get_lastIndex(array), comparator); - } - } - function sortArray$lambda(a, b) { - return Kotlin.compareTo(a, b); - } - function sortArray(array) { - if (getStableSortingIsSupported()) { - var comparison = sortArray$lambda; - array.sort(comparison); - } - else { - mergeSort(array, 0, get_lastIndex(array), naturalOrder()); - } - } - var _stableSortingIsSupported; - function getStableSortingIsSupported$lambda(a, b) { - return (a & 3) - (b & 3) | 0; - } - function getStableSortingIsSupported() { - if (_stableSortingIsSupported != null) { - return _stableSortingIsSupported; - } - _stableSortingIsSupported = false; - var array = []; - for (var index = 0; index < 600; index++) - array.push(index); - var comparison = getStableSortingIsSupported$lambda; - array.sort(comparison); - for (var index_0 = 1; index_0 < array.length; index_0++) { - var a = array[index_0 - 1 | 0]; - var b = array[index_0]; - if ((a & 3) === (b & 3) && a >= b) - return false; - } - _stableSortingIsSupported = true; - return true; - } - function mergeSort(array, start, endInclusive, comparator) { - var buffer = Kotlin.newArray(array.length, null); - var result = mergeSort_0(array, buffer, start, endInclusive, comparator); - if (result !== array) { - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== result.length; ++tmp$) { - var item = result[tmp$]; - array[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0] = item; - } - } - } - function mergeSort_0(array, buffer, start, end, comparator) { - if (start === end) { - return array; - } - var median = (start + end | 0) / 2 | 0; - var left = mergeSort_0(array, buffer, start, median, comparator); - var right = mergeSort_0(array, buffer, median + 1 | 0, end, comparator); - var target = left === buffer ? array : buffer; - var leftIndex = start; - var rightIndex = median + 1 | 0; - for (var i = start; i <= end; i++) { - if (leftIndex <= median && rightIndex <= end) { - var leftValue = left[leftIndex]; - var rightValue = right[rightIndex]; - if (comparator.compare(leftValue, rightValue) <= 0) { - target[i] = leftValue; - leftIndex = leftIndex + 1 | 0; - } - else { - target[i] = rightValue; - rightIndex = rightIndex + 1 | 0; - } - } - else if (leftIndex <= median) { - target[i] = left[leftIndex]; - leftIndex = leftIndex + 1 | 0; - } - else { - target[i] = right[rightIndex]; - rightIndex = rightIndex + 1 | 0; - } - } - return target; - } - function contentDeepHashCodeImpl($receiver) { - var tmp$, tmp$_0; - var result = 1; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (element == null) - tmp$_0 = 0; - else if (Kotlin.isArrayish(element)) { - tmp$_0 = contentDeepHashCodeImpl(element); - } - else if (Kotlin.isType(element, UByteArray)) - tmp$_0 = contentHashCode_2(element); - else if (Kotlin.isType(element, UShortArray)) - tmp$_0 = contentHashCode_3(element); - else if (Kotlin.isType(element, UIntArray)) - tmp$_0 = contentHashCode_0(element); - else if (Kotlin.isType(element, ULongArray)) - tmp$_0 = contentHashCode_1(element); - else - tmp$_0 = hashCode(element); - var elementHash = tmp$_0; - result = (31 * result | 0) + elementHash | 0; - } - return result; - } - function EqualityComparator() { - } - function EqualityComparator$HashCode() { - EqualityComparator$HashCode_instance = this; - } - EqualityComparator$HashCode.prototype.equals_oaftn8$ = function (value1, value2) { - return equals(value1, value2); - }; - EqualityComparator$HashCode.prototype.getHashCode_s8jyv4$ = function (value) { - var tmp$; - return (tmp$ = value != null ? hashCode(value) : null) != null ? tmp$ : 0; - }; - EqualityComparator$HashCode.$metadata$ = {kind: Kind_OBJECT, simpleName: 'HashCode', interfaces: [EqualityComparator]}; - var EqualityComparator$HashCode_instance = null; - function EqualityComparator$HashCode_getInstance() { - if (EqualityComparator$HashCode_instance === null) { - new EqualityComparator$HashCode(); - } - return EqualityComparator$HashCode_instance; - } - EqualityComparator.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'EqualityComparator', interfaces: []}; - function HashMap() { - this.internalMap_uxhen5$_0 = null; - this.equality_vgh6cm$_0 = null; - this._entries_7ih87x$_0 = null; - } - function HashMap$EntrySet($outer) { - this.$outer = $outer; - AbstractMutableSet.call(this); - } - HashMap$EntrySet.prototype.add_11rb$ = function (element) { - throw UnsupportedOperationException_init_0('Add is not supported on entries'); - }; - HashMap$EntrySet.prototype.clear = function () { - this.$outer.clear(); - }; - HashMap$EntrySet.prototype.contains_11rb$ = function (element) { - return this.$outer.containsEntry_8hxqw4$(element); - }; - HashMap$EntrySet.prototype.iterator = function () { - return this.$outer.internalMap_uxhen5$_0.iterator(); - }; - HashMap$EntrySet.prototype.remove_11rb$ = function (element) { - if (this.contains_11rb$(element)) { - this.$outer.remove_11rb$(element.key); - return true; - } - return false; - }; - Object.defineProperty(HashMap$EntrySet.prototype, 'size', {get: function () { - return this.$outer.size; - }}); - HashMap$EntrySet.$metadata$ = {kind: Kind_CLASS, simpleName: 'EntrySet', interfaces: [AbstractMutableSet]}; - HashMap.prototype.clear = function () { - this.internalMap_uxhen5$_0.clear(); - }; - HashMap.prototype.containsKey_11rb$ = function (key) { - return this.internalMap_uxhen5$_0.contains_11rb$(key); - }; - HashMap.prototype.containsValue_11rc$ = function (value) { - var $receiver = this.internalMap_uxhen5$_0; - var any$result; - any$break: do { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - any$result = false; - break any$break; - } - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (this.equality_vgh6cm$_0.equals_oaftn8$(element.value, value)) { - any$result = true; - break any$break; - } - } - any$result = false; - } - while (false); - return any$result; - }; - Object.defineProperty(HashMap.prototype, 'entries', {get: function () { - if (this._entries_7ih87x$_0 == null) { - this._entries_7ih87x$_0 = this.createEntrySet(); - } - return ensureNotNull(this._entries_7ih87x$_0); - }}); - HashMap.prototype.createEntrySet = function () { - return new HashMap$EntrySet(this); - }; - HashMap.prototype.get_11rb$ = function (key) { - return this.internalMap_uxhen5$_0.get_11rb$(key); - }; - HashMap.prototype.put_xwzc9p$ = function (key, value) { - return this.internalMap_uxhen5$_0.put_xwzc9p$(key, value); - }; - HashMap.prototype.remove_11rb$ = function (key) { - return this.internalMap_uxhen5$_0.remove_11rb$(key); - }; - Object.defineProperty(HashMap.prototype, 'size', {get: function () { - return this.internalMap_uxhen5$_0.size; - }}); - HashMap.$metadata$ = {kind: Kind_CLASS, simpleName: 'HashMap', interfaces: [AbstractMutableMap, MutableMap]}; - function HashMap_init(internalMap, $this) { - $this = $this || Object.create(HashMap.prototype); - AbstractMutableMap.call($this); - HashMap.call($this); - $this.internalMap_uxhen5$_0 = internalMap; - $this.equality_vgh6cm$_0 = internalMap.equality; - return $this; - } - function HashMap_init_0($this) { - $this = $this || Object.create(HashMap.prototype); - HashMap_init(new InternalHashCodeMap(EqualityComparator$HashCode_getInstance()), $this); - return $this; - } - function HashMap_init_1(initialCapacity, loadFactor, $this) { - if (loadFactor === void 0) - loadFactor = 0.0; - $this = $this || Object.create(HashMap.prototype); - HashMap_init_0($this); - if (!(initialCapacity >= 0)) { - var message = 'Negative initial capacity: ' + initialCapacity; - throw IllegalArgumentException_init_0(message.toString()); - } - if (!(loadFactor >= 0)) { - var message_0 = 'Non-positive load factor: ' + loadFactor; - throw IllegalArgumentException_init_0(message_0.toString()); - } - return $this; - } - function HashMap_init_2(initialCapacity, $this) { - $this = $this || Object.create(HashMap.prototype); - HashMap_init_1(initialCapacity, 0.0, $this); - return $this; - } - function HashMap_init_3(original, $this) { - $this = $this || Object.create(HashMap.prototype); - HashMap_init_0($this); - $this.putAll_a2k3zr$(original); - return $this; - } - function stringMapOf(pairs) { - var $receiver = HashMap_init(new InternalStringMap(EqualityComparator$HashCode_getInstance())); - putAll($receiver, pairs); - return $receiver; - } - function HashSet() { - this.map_eot64i$_0 = null; - } - HashSet.prototype.add_11rb$ = function (element) { - var old = this.map_eot64i$_0.put_xwzc9p$(element, this); - return old == null; - }; - HashSet.prototype.clear = function () { - this.map_eot64i$_0.clear(); - }; - HashSet.prototype.contains_11rb$ = function (element) { - return this.map_eot64i$_0.containsKey_11rb$(element); - }; - HashSet.prototype.isEmpty = function () { - return this.map_eot64i$_0.isEmpty(); - }; - HashSet.prototype.iterator = function () { - return this.map_eot64i$_0.keys.iterator(); - }; - HashSet.prototype.remove_11rb$ = function (element) { - return this.map_eot64i$_0.remove_11rb$(element) != null; - }; - Object.defineProperty(HashSet.prototype, 'size', {get: function () { - return this.map_eot64i$_0.size; - }}); - HashSet.$metadata$ = {kind: Kind_CLASS, simpleName: 'HashSet', interfaces: [AbstractMutableSet, MutableSet]}; - function HashSet_init($this) { - $this = $this || Object.create(HashSet.prototype); - AbstractMutableSet.call($this); - HashSet.call($this); - $this.map_eot64i$_0 = HashMap_init_0(); - return $this; - } - function HashSet_init_0(elements, $this) { - $this = $this || Object.create(HashSet.prototype); - AbstractMutableSet.call($this); - HashSet.call($this); - $this.map_eot64i$_0 = HashMap_init_2(elements.size); - $this.addAll_brywnq$(elements); - return $this; - } - function HashSet_init_1(initialCapacity, loadFactor, $this) { - if (loadFactor === void 0) - loadFactor = 0.0; - $this = $this || Object.create(HashSet.prototype); - AbstractMutableSet.call($this); - HashSet.call($this); - $this.map_eot64i$_0 = HashMap_init_1(initialCapacity, loadFactor); - return $this; - } - function HashSet_init_2(initialCapacity, $this) { - $this = $this || Object.create(HashSet.prototype); - HashSet_init_1(initialCapacity, 0.0, $this); - return $this; - } - function HashSet_init_3(map, $this) { - $this = $this || Object.create(HashSet.prototype); - AbstractMutableSet.call($this); - HashSet.call($this); - $this.map_eot64i$_0 = map; - return $this; - } - function stringSetOf(elements) { - var $receiver = HashSet_init_3(stringMapOf([])); - addAll_1($receiver, elements); - return $receiver; - } - function InternalHashCodeMap(equality) { - this.equality_mamlu8$_0 = equality; - this.backingMap_0 = this.createJsMap(); - this.size_x3bm7r$_0 = 0; - } - Object.defineProperty(InternalHashCodeMap.prototype, 'equality', {get: function () { - return this.equality_mamlu8$_0; - }}); - Object.defineProperty(InternalHashCodeMap.prototype, 'size', {get: function () { - return this.size_x3bm7r$_0; - }, set: function (size) { - this.size_x3bm7r$_0 = size; - }}); - InternalHashCodeMap.prototype.put_xwzc9p$ = function (key, value) { - var hashCode = this.equality.getHashCode_s8jyv4$(key); - var chainOrEntry = this.getChainOrEntryOrNull_0(hashCode); - if (chainOrEntry == null) { - this.backingMap_0[hashCode] = new AbstractMutableMap$SimpleEntry(key, value); - } - else { - if (!Kotlin.isArray(chainOrEntry)) { - var entry = chainOrEntry; - if (this.equality.equals_oaftn8$(entry.key, key)) { - return entry.setValue_11rc$(value); - } - else { - this.backingMap_0[hashCode] = [entry, new AbstractMutableMap$SimpleEntry(key, value)]; - this.size = this.size + 1 | 0; - return null; - } - } - else { - var chain = chainOrEntry; - var entry_0 = this.findEntryInChain_0(chain, key); - if (entry_0 != null) { - return entry_0.setValue_11rc$(value); - } - chain.push(new AbstractMutableMap$SimpleEntry(key, value)); - } - } - this.size = this.size + 1 | 0; - return null; - }; - InternalHashCodeMap.prototype.remove_11rb$ = function (key) { - var tmp$; - var hashCode = this.equality.getHashCode_s8jyv4$(key); - tmp$ = this.getChainOrEntryOrNull_0(hashCode); - if (tmp$ == null) { - return null; - } - var chainOrEntry = tmp$; - if (!Kotlin.isArray(chainOrEntry)) { - var entry = chainOrEntry; - if (this.equality.equals_oaftn8$(entry.key, key)) { - delete this.backingMap_0[hashCode]; - this.size = this.size - 1 | 0; - return entry.value; - } - else { - return null; - } - } - else { - var chain = chainOrEntry; - for (var index = 0; index !== chain.length; ++index) { - var entry_0 = chain[index]; - if (this.equality.equals_oaftn8$(key, entry_0.key)) { - if (chain.length === 1) { - chain.length = 0; - delete this.backingMap_0[hashCode]; - } - else { - chain.splice(index, 1); - } - this.size = this.size - 1 | 0; - return entry_0.value; - } - } - } - return null; - }; - InternalHashCodeMap.prototype.clear = function () { - this.backingMap_0 = this.createJsMap(); - this.size = 0; - }; - InternalHashCodeMap.prototype.contains_11rb$ = function (key) { - return this.getEntry_0(key) != null; - }; - InternalHashCodeMap.prototype.get_11rb$ = function (key) { - var tmp$; - return (tmp$ = this.getEntry_0(key)) != null ? tmp$.value : null; - }; - InternalHashCodeMap.prototype.getEntry_0 = function (key) { - var tmp$; - tmp$ = this.getChainOrEntryOrNull_0(this.equality.getHashCode_s8jyv4$(key)); - if (tmp$ == null) { - return null; - } - var chainOrEntry = tmp$; - if (!Kotlin.isArray(chainOrEntry)) { - var entry = chainOrEntry; - if (this.equality.equals_oaftn8$(entry.key, key)) { - return entry; - } - else { - return null; - } - } - else { - var chain = chainOrEntry; - return this.findEntryInChain_0(chain, key); - } - }; - InternalHashCodeMap.prototype.findEntryInChain_0 = function ($receiver, key) { - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - if (this.equality.equals_oaftn8$(element.key, key)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }; - function InternalHashCodeMap$iterator$ObjectLiteral(this$InternalHashCodeMap) { - this.this$InternalHashCodeMap = this$InternalHashCodeMap; - this.state = -1; - this.keys = Object.keys(this$InternalHashCodeMap.backingMap_0); - this.keyIndex = -1; - this.chainOrEntry = null; - this.isChain = false; - this.itemIndex = -1; - this.lastEntry = null; - } - InternalHashCodeMap$iterator$ObjectLiteral.prototype.computeNext_0 = function () { - if (this.chainOrEntry != null && this.isChain) { - var chainSize = this.chainOrEntry.length; - if ((this.itemIndex = this.itemIndex + 1 | 0, this.itemIndex) < chainSize) - return 0; - } - if ((this.keyIndex = this.keyIndex + 1 | 0, this.keyIndex) < this.keys.length) { - this.chainOrEntry = this.this$InternalHashCodeMap.backingMap_0[this.keys[this.keyIndex]]; - this.isChain = Kotlin.isArray(this.chainOrEntry); - this.itemIndex = 0; - return 0; - } - else { - this.chainOrEntry = null; - return 1; - } - }; - InternalHashCodeMap$iterator$ObjectLiteral.prototype.hasNext = function () { - if (this.state === -1) - this.state = this.computeNext_0(); - return this.state === 0; - }; - InternalHashCodeMap$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (!this.hasNext()) - throw NoSuchElementException_init(); - if (this.isChain) { - tmp$ = this.chainOrEntry[this.itemIndex]; - } - else { - tmp$ = this.chainOrEntry; - } - var lastEntry = tmp$; - this.lastEntry = lastEntry; - this.state = -1; - return lastEntry; - }; - InternalHashCodeMap$iterator$ObjectLiteral.prototype.remove = function () { - if (this.lastEntry == null) { - var message = 'Required value was null.'; - throw IllegalStateException_init_0(message.toString()); - } - this.this$InternalHashCodeMap.remove_11rb$(ensureNotNull(this.lastEntry).key); - this.lastEntry = null; - this.itemIndex = this.itemIndex - 1 | 0; - }; - InternalHashCodeMap$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [MutableIterator]}; - InternalHashCodeMap.prototype.iterator = function () { - return new InternalHashCodeMap$iterator$ObjectLiteral(this); - }; - InternalHashCodeMap.prototype.getChainOrEntryOrNull_0 = function (hashCode) { - var chainOrEntry = this.backingMap_0[hashCode]; - return chainOrEntry === undefined ? null : chainOrEntry; - }; - InternalHashCodeMap.$metadata$ = {kind: Kind_CLASS, simpleName: 'InternalHashCodeMap', interfaces: [InternalMap]}; - function InternalMap() { - } - InternalMap.prototype.createJsMap = function () { - var result = Object.create(null); - result['foo'] = 1; - delete result['foo']; - return result; - }; - InternalMap.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'InternalMap', interfaces: [MutableIterable]}; - function InternalStringMap(equality) { - this.equality_qma612$_0 = equality; - this.backingMap_0 = this.createJsMap(); - this.size_6u3ykz$_0 = 0; - } - Object.defineProperty(InternalStringMap.prototype, 'equality', {get: function () { - return this.equality_qma612$_0; - }}); - Object.defineProperty(InternalStringMap.prototype, 'size', {get: function () { - return this.size_6u3ykz$_0; - }, set: function (size) { - this.size_6u3ykz$_0 = size; - }}); - InternalStringMap.prototype.contains_11rb$ = function (key) { - if (!(typeof key === 'string')) - return false; - return this.backingMap_0[key] !== undefined; - }; - InternalStringMap.prototype.get_11rb$ = function (key) { - if (!(typeof key === 'string')) - return null; - var value = this.backingMap_0[key]; - return value !== undefined ? value : null; - }; - InternalStringMap.prototype.put_xwzc9p$ = function (key, value) { - if (!(typeof key === 'string')) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var oldValue = this.backingMap_0[key]; - this.backingMap_0[key] = value; - if (oldValue === undefined) { - this.size = this.size + 1 | 0; - return null; - } - else { - return oldValue; - } - }; - InternalStringMap.prototype.remove_11rb$ = function (key) { - if (!(typeof key === 'string')) - return null; - var value = this.backingMap_0[key]; - if (value !== undefined) { - delete this.backingMap_0[key]; - this.size = this.size - 1 | 0; - return value; - } - else { - return null; - } - }; - InternalStringMap.prototype.clear = function () { - this.backingMap_0 = this.createJsMap(); - this.size = 0; - }; - function InternalStringMap$iterator$ObjectLiteral(this$InternalStringMap) { - this.this$InternalStringMap = this$InternalStringMap; - this.keys_0 = Object.keys(this$InternalStringMap.backingMap_0); - this.iterator_0 = Kotlin.arrayIterator(this.keys_0); - this.lastKey_0 = null; - } - InternalStringMap$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.iterator_0.hasNext(); - }; - InternalStringMap$iterator$ObjectLiteral.prototype.next = function () { - var tmp$, tmp$_0; - var key = this.iterator_0.next(); - this.lastKey_0 = key; - tmp$_0 = (tmp$ = key) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - return this.this$InternalStringMap.newMapEntry_0(tmp$_0); - }; - InternalStringMap$iterator$ObjectLiteral.prototype.remove = function () { - var tmp$, tmp$_0; - tmp$_0 = this.this$InternalStringMap; - var value = this.lastKey_0; - var checkNotNull$result; - if (value == null) { - var message = 'Required value was null.'; - throw IllegalStateException_init_0(message.toString()); - } - else { - checkNotNull$result = value; - } - tmp$_0.remove_11rb$((tmp$ = checkNotNull$result) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0()); - }; - InternalStringMap$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [MutableIterator]}; - InternalStringMap.prototype.iterator = function () { - return new InternalStringMap$iterator$ObjectLiteral(this); - }; - function InternalStringMap$newMapEntry$ObjectLiteral(closure$key, this$InternalStringMap) { - this.closure$key = closure$key; - this.this$InternalStringMap = this$InternalStringMap; - } - Object.defineProperty(InternalStringMap$newMapEntry$ObjectLiteral.prototype, 'key', {get: function () { - return this.closure$key; - }}); - Object.defineProperty(InternalStringMap$newMapEntry$ObjectLiteral.prototype, 'value', {get: function () { - return this.this$InternalStringMap.get_11rb$(this.closure$key); - }}); - InternalStringMap$newMapEntry$ObjectLiteral.prototype.setValue_11rc$ = function (newValue) { - return this.this$InternalStringMap.put_xwzc9p$(this.closure$key, newValue); - }; - InternalStringMap$newMapEntry$ObjectLiteral.prototype.hashCode = function () { - return AbstractMap$Companion_getInstance().entryHashCode_9fthdn$(this); - }; - InternalStringMap$newMapEntry$ObjectLiteral.prototype.toString = function () { - return AbstractMap$Companion_getInstance().entryToString_9fthdn$(this); - }; - InternalStringMap$newMapEntry$ObjectLiteral.prototype.equals = function (other) { - return AbstractMap$Companion_getInstance().entryEquals_js7fox$(this, other); - }; - InternalStringMap$newMapEntry$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [MutableMap$MutableEntry]}; - InternalStringMap.prototype.newMapEntry_0 = function (key) { - return new InternalStringMap$newMapEntry$ObjectLiteral(key, this); - }; - InternalStringMap.$metadata$ = {kind: Kind_CLASS, simpleName: 'InternalStringMap', interfaces: [InternalMap]}; - function LinkedHashMap() { - this.head_1lr44l$_0 = null; - this.map_97q5dv$_0 = null; - } - function LinkedHashMap$ChainEntry(key, value) { - AbstractMutableMap$SimpleEntry.call(this, key, value); - this.next_8be2vx$ = null; - this.prev_8be2vx$ = null; - } - LinkedHashMap$ChainEntry.$metadata$ = {kind: Kind_CLASS, simpleName: 'ChainEntry', interfaces: [AbstractMutableMap$SimpleEntry]}; - function LinkedHashMap$EntrySet($outer) { - this.$outer = $outer; - AbstractMutableSet.call(this); - } - function LinkedHashMap$EntrySet$EntryIterator($outer) { - this.$outer = $outer; - this.last_0 = null; - this.next_0 = null; - this.next_0 = this.$outer.$outer.head_1lr44l$_0; - } - LinkedHashMap$EntrySet$EntryIterator.prototype.hasNext = function () { - return this.next_0 !== null; - }; - LinkedHashMap$EntrySet$EntryIterator.prototype.next = function () { - if (!this.hasNext()) - throw NoSuchElementException_init(); - var current = ensureNotNull(this.next_0); - this.last_0 = current; - var $receiver = current.next_8be2vx$; - this.$outer.$outer; - this.next_0 = $receiver !== this.$outer.$outer.head_1lr44l$_0 ? $receiver : null; - return current; - }; - LinkedHashMap$EntrySet$EntryIterator.prototype.remove = function () { - if (!(this.last_0 != null)) { - var message = 'Check failed.'; - throw IllegalStateException_init_0(message.toString()); - } - this.$outer.$outer.remove_aul5td$_0(ensureNotNull(this.last_0)); - this.$outer.$outer.map_97q5dv$_0.remove_11rb$(ensureNotNull(this.last_0).key); - this.last_0 = null; - }; - LinkedHashMap$EntrySet$EntryIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'EntryIterator', interfaces: [MutableIterator]}; - LinkedHashMap$EntrySet.prototype.add_11rb$ = function (element) { - throw UnsupportedOperationException_init_0('Add is not supported on entries'); - }; - LinkedHashMap$EntrySet.prototype.clear = function () { - this.$outer.clear(); - }; - LinkedHashMap$EntrySet.prototype.contains_11rb$ = function (element) { - return this.$outer.containsEntry_8hxqw4$(element); - }; - LinkedHashMap$EntrySet.prototype.iterator = function () { - return new LinkedHashMap$EntrySet$EntryIterator(this); - }; - LinkedHashMap$EntrySet.prototype.remove_11rb$ = function (element) { - if (this.contains_11rb$(element)) { - this.$outer.remove_11rb$(element.key); - return true; - } - return false; - }; - Object.defineProperty(LinkedHashMap$EntrySet.prototype, 'size', {get: function () { - return this.$outer.size; - }}); - LinkedHashMap$EntrySet.$metadata$ = {kind: Kind_CLASS, simpleName: 'EntrySet', interfaces: [AbstractMutableSet]}; - LinkedHashMap.prototype.addToEnd_ufg2hg$_0 = function ($receiver) { - if (!($receiver.next_8be2vx$ == null && $receiver.prev_8be2vx$ == null)) { - var message = 'Check failed.'; - throw IllegalStateException_init_0(message.toString()); - } - var _head = this.head_1lr44l$_0; - if (_head == null) { - this.head_1lr44l$_0 = $receiver; - $receiver.next_8be2vx$ = $receiver; - $receiver.prev_8be2vx$ = $receiver; - } - else { - var value = _head.prev_8be2vx$; - var checkNotNull$result; - if (value == null) { - var message_0 = 'Required value was null.'; - throw IllegalStateException_init_0(message_0.toString()); - } - else { - checkNotNull$result = value; - } - var _tail = checkNotNull$result; - $receiver.prev_8be2vx$ = _tail; - $receiver.next_8be2vx$ = _head; - _head.prev_8be2vx$ = $receiver; - _tail.next_8be2vx$ = $receiver; - } - }; - LinkedHashMap.prototype.remove_aul5td$_0 = function ($receiver) { - if ($receiver.next_8be2vx$ === $receiver) { - this.head_1lr44l$_0 = null; - } - else { - if (this.head_1lr44l$_0 === $receiver) { - this.head_1lr44l$_0 = $receiver.next_8be2vx$; - } - ensureNotNull($receiver.next_8be2vx$).prev_8be2vx$ = $receiver.prev_8be2vx$; - ensureNotNull($receiver.prev_8be2vx$).next_8be2vx$ = $receiver.next_8be2vx$; - } - $receiver.next_8be2vx$ = null; - $receiver.prev_8be2vx$ = null; - }; - LinkedHashMap.prototype.clear = function () { - this.map_97q5dv$_0.clear(); - this.head_1lr44l$_0 = null; - }; - LinkedHashMap.prototype.containsKey_11rb$ = function (key) { - return this.map_97q5dv$_0.containsKey_11rb$(key); - }; - LinkedHashMap.prototype.containsValue_11rc$ = function (value) { - var tmp$; - tmp$ = this.head_1lr44l$_0; - if (tmp$ == null) { - return false; - } - var node = tmp$; - do { - if (equals(node.value, value)) { - return true; - } - node = ensureNotNull(node.next_8be2vx$); - } - while (node !== this.head_1lr44l$_0); - return false; - }; - LinkedHashMap.prototype.createEntrySet = function () { - return new LinkedHashMap$EntrySet(this); - }; - LinkedHashMap.prototype.get_11rb$ = function (key) { - var tmp$; - return (tmp$ = this.map_97q5dv$_0.get_11rb$(key)) != null ? tmp$.value : null; - }; - LinkedHashMap.prototype.put_xwzc9p$ = function (key, value) { - var old = this.map_97q5dv$_0.get_11rb$(key); - if (old == null) { - var newEntry = new LinkedHashMap$ChainEntry(key, value); - this.map_97q5dv$_0.put_xwzc9p$(key, newEntry); - this.addToEnd_ufg2hg$_0(newEntry); - return null; - } - else { - return old.setValue_11rc$(value); - } - }; - LinkedHashMap.prototype.remove_11rb$ = function (key) { - var entry = this.map_97q5dv$_0.remove_11rb$(key); - if (entry != null) { - this.remove_aul5td$_0(entry); - return entry.value; - } - return null; - }; - Object.defineProperty(LinkedHashMap.prototype, 'size', {get: function () { - return this.map_97q5dv$_0.size; - }}); - LinkedHashMap.$metadata$ = {kind: Kind_CLASS, simpleName: 'LinkedHashMap', interfaces: [HashMap, MutableMap]}; - function LinkedHashMap_init($this) { - $this = $this || Object.create(LinkedHashMap.prototype); - HashMap_init_0($this); - LinkedHashMap.call($this); - $this.map_97q5dv$_0 = HashMap_init_0(); - return $this; - } - function LinkedHashMap_init_0(backingMap, $this) { - $this = $this || Object.create(LinkedHashMap.prototype); - HashMap_init_0($this); - LinkedHashMap.call($this); - var tmp$; - $this.map_97q5dv$_0 = Kotlin.isType(tmp$ = backingMap, HashMap) ? tmp$ : throwCCE_0(); - return $this; - } - function LinkedHashMap_init_1(initialCapacity, loadFactor, $this) { - if (loadFactor === void 0) - loadFactor = 0.0; - $this = $this || Object.create(LinkedHashMap.prototype); - HashMap_init_1(initialCapacity, loadFactor, $this); - LinkedHashMap.call($this); - $this.map_97q5dv$_0 = HashMap_init_0(); - return $this; - } - function LinkedHashMap_init_2(initialCapacity, $this) { - $this = $this || Object.create(LinkedHashMap.prototype); - LinkedHashMap_init_1(initialCapacity, 0.0, $this); - return $this; - } - function LinkedHashMap_init_3(original, $this) { - $this = $this || Object.create(LinkedHashMap.prototype); - HashMap_init_0($this); - LinkedHashMap.call($this); - $this.map_97q5dv$_0 = HashMap_init_0(); - $this.putAll_a2k3zr$(original); - return $this; - } - function linkedStringMapOf(pairs) { - var $receiver = LinkedHashMap_init_0(stringMapOf([])); - putAll($receiver, pairs); - return $receiver; - } - function LinkedHashSet() { - } - LinkedHashSet.$metadata$ = {kind: Kind_CLASS, simpleName: 'LinkedHashSet', interfaces: [HashSet, MutableSet]}; - function LinkedHashSet_init(map, $this) { - $this = $this || Object.create(LinkedHashSet.prototype); - HashSet_init_3(map, $this); - LinkedHashSet.call($this); - return $this; - } - function LinkedHashSet_init_0($this) { - $this = $this || Object.create(LinkedHashSet.prototype); - HashSet_init_3(LinkedHashMap_init(), $this); - LinkedHashSet.call($this); - return $this; - } - function LinkedHashSet_init_1(elements, $this) { - $this = $this || Object.create(LinkedHashSet.prototype); - HashSet_init_3(LinkedHashMap_init(), $this); - LinkedHashSet.call($this); - $this.addAll_brywnq$(elements); - return $this; - } - function LinkedHashSet_init_2(initialCapacity, loadFactor, $this) { - if (loadFactor === void 0) - loadFactor = 0.0; - $this = $this || Object.create(LinkedHashSet.prototype); - HashSet_init_3(LinkedHashMap_init_1(initialCapacity, loadFactor), $this); - LinkedHashSet.call($this); - return $this; - } - function LinkedHashSet_init_3(initialCapacity, $this) { - $this = $this || Object.create(LinkedHashSet.prototype); - LinkedHashSet_init_2(initialCapacity, 0.0, $this); - return $this; - } - function linkedStringSetOf(elements) { - var $receiver = LinkedHashSet_init(linkedStringMapOf([])); - addAll_1($receiver, elements); - return $receiver; - } - function RandomAccess() { - } - RandomAccess.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'RandomAccess', interfaces: []}; - var synchronized = defineInlineFunction('kotlin.kotlin.synchronized_eocq09$', function (lock, block) { - return block(); - }); - function BaseOutput() { - } - BaseOutput.prototype.println = function () { - this.print_s8jyv4$('\n'); - }; - BaseOutput.prototype.println_s8jyv4$ = function (message) { - this.print_s8jyv4$(message); - this.println(); - }; - BaseOutput.prototype.flush = function () { - }; - BaseOutput.$metadata$ = {kind: Kind_CLASS, simpleName: 'BaseOutput', interfaces: []}; - function NodeJsOutput(outputStream) { - BaseOutput.call(this); - this.outputStream = outputStream; - } - NodeJsOutput.prototype.print_s8jyv4$ = function (message) { - var messageString = String(message); - this.outputStream.write(messageString); - }; - NodeJsOutput.$metadata$ = {kind: Kind_CLASS, simpleName: 'NodeJsOutput', interfaces: [BaseOutput]}; - function OutputToConsoleLog() { - BaseOutput.call(this); - } - OutputToConsoleLog.prototype.print_s8jyv4$ = function (message) { - console.log(message); - }; - OutputToConsoleLog.prototype.println_s8jyv4$ = function (message) { - console.log(message); - }; - OutputToConsoleLog.prototype.println = function () { - console.log(''); - }; - OutputToConsoleLog.$metadata$ = {kind: Kind_CLASS, simpleName: 'OutputToConsoleLog', interfaces: [BaseOutput]}; - function BufferedOutput() { - BaseOutput.call(this); - this.buffer = ''; - } - BufferedOutput.prototype.print_s8jyv4$ = function (message) { - this.buffer += String(message); - }; - BufferedOutput.prototype.flush = function () { - this.buffer = ''; - }; - BufferedOutput.$metadata$ = {kind: Kind_CLASS, simpleName: 'BufferedOutput', interfaces: [BaseOutput]}; - function BufferedOutputToConsoleLog() { - BufferedOutput.call(this); - } - BufferedOutputToConsoleLog.prototype.print_s8jyv4$ = function (message) { - var s = String(message); - var i = lastIndexOf_15(s, 10); - if (i >= 0) { - this.buffer = this.buffer + s.substring(0, i); - this.flush(); - s = s.substring(i + 1 | 0); - } - this.buffer = this.buffer + s; - }; - BufferedOutputToConsoleLog.prototype.flush = function () { - console.log(this.buffer); - this.buffer = ''; - }; - BufferedOutputToConsoleLog.$metadata$ = {kind: Kind_CLASS, simpleName: 'BufferedOutputToConsoleLog', interfaces: [BufferedOutput]}; - var output; - function String_0(value) { - return String(value); - } - function println() { - output.println(); - } - function println_0(message) { - output.println_s8jyv4$(message); - } - function print(message) { - output.print_s8jyv4$(message); - } - function SafeContinuation(delegate, initialResult) { - this.delegate_0 = delegate; - this.result_0 = initialResult; - } - Object.defineProperty(SafeContinuation.prototype, 'context', {get: function () { - return this.delegate_0.context; - }}); - SafeContinuation.prototype.resumeWith_tl1gpc$ = function (result) { - var cur = this.result_0; - if (cur === CoroutineSingletons$UNDECIDED_getInstance()) - this.result_0 = result.value; - else if (cur === get_COROUTINE_SUSPENDED()) { - this.result_0 = CoroutineSingletons$RESUMED_getInstance(); - this.delegate_0.resumeWith_tl1gpc$(result); - } - else - throw IllegalStateException_init_0('Already resumed'); - }; - SafeContinuation.prototype.getOrThrow = function () { - var tmp$; - if (this.result_0 === CoroutineSingletons$UNDECIDED_getInstance()) { - this.result_0 = get_COROUTINE_SUSPENDED(); - return get_COROUTINE_SUSPENDED(); - } - var result = this.result_0; - if (result === CoroutineSingletons$RESUMED_getInstance()) - tmp$ = get_COROUTINE_SUSPENDED(); - else if (Kotlin.isType(result, Result$Failure)) - throw result.exception; - else - tmp$ = result; - return tmp$; - }; - SafeContinuation.$metadata$ = {kind: Kind_CLASS, simpleName: 'SafeContinuation', interfaces: [Continuation]}; - function SafeContinuation_init(delegate, $this) { - $this = $this || Object.create(SafeContinuation.prototype); - SafeContinuation.call($this, delegate, CoroutineSingletons$UNDECIDED_getInstance()); - return $this; - } - function Continuation$ObjectLiteral(closure$context, closure$resumeWith) { - this.closure$context = closure$context; - this.closure$resumeWith = closure$resumeWith; - } - Object.defineProperty(Continuation$ObjectLiteral.prototype, 'context', {get: function () { - return this.closure$context; - }}); - Continuation$ObjectLiteral.prototype.resumeWith_tl1gpc$ = function (result) { - this.closure$resumeWith(result); - }; - Continuation$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Continuation]}; - function EmptyContinuation$lambda(result) { - var tmp$; - throwOnFailure(result); - (tmp$ = result.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - return Unit; - } - var EmptyContinuation; - var dateLocaleOptions = defineInlineFunction('kotlin.kotlin.js.dateLocaleOptions_49uy1x$', function (init) { - var result = new Object(); - init(result); - return result; - }); - function createElement($receiver, name, init) { - var $receiver_0 = $receiver.createElement(name); - init($receiver_0); - return $receiver_0; - } - function appendElement($receiver, name, init) { - var $receiver_0 = createElement(ensureNotNull($receiver.ownerDocument), name, init); - $receiver.appendChild($receiver_0); - return $receiver_0; - } - function hasClass($receiver, cssClass) { - var tmp$ = $receiver.className; - return Regex_init_0('(^|.*' + '\\' + 's+)' + cssClass + '(' + '$' + '|' + '\\' + 's+.*)').matches_6bul2c$(tmp$); - } - function addClass($receiver, cssClasses) { - var destination = ArrayList_init(); - var tmp$; - for (tmp$ = 0; tmp$ !== cssClasses.length; ++tmp$) { - var element = cssClasses[tmp$]; - if (!hasClass($receiver, element)) - destination.add_11rb$(element); - } - var missingClasses = destination; - if (!missingClasses.isEmpty()) { - var tmp$_0; - var presentClasses = trim_3(Kotlin.isCharSequence(tmp$_0 = $receiver.className) ? tmp$_0 : throwCCE()).toString(); - var $receiver_0 = StringBuilder_init_1(); - $receiver_0.append_gw00v9$(presentClasses); - if (!(presentClasses.length === 0)) { - $receiver_0.append_gw00v9$(' '); - } - joinTo_8(missingClasses, $receiver_0, ' '); - $receiver.className = $receiver_0.toString(); - return true; - } - return false; - } - function removeClass($receiver, cssClasses) { - var any$result; - any$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== cssClasses.length; ++tmp$) { - var element = cssClasses[tmp$]; - if (hasClass($receiver, element)) { - any$result = true; - break any$break; - } - } - any$result = false; - } - while (false); - if (any$result) { - var toBeRemoved = toSet(cssClasses); - var tmp$_0; - var tmp$_1 = trim_3(Kotlin.isCharSequence(tmp$_0 = $receiver.className) ? tmp$_0 : throwCCE()).toString(); - var $receiver_0 = Regex_init_0('\\s+').split_905azu$(tmp$_1, 0); - var destination = ArrayList_init(); - var tmp$_2; - tmp$_2 = $receiver_0.iterator(); - while (tmp$_2.hasNext()) { - var element_0 = tmp$_2.next(); - if (!toBeRemoved.contains_11rb$(element_0)) - destination.add_11rb$(element_0); - } - $receiver.className = joinToString_8(destination, ' '); - return true; - } - return false; - } - function get_isText($receiver) { - return $receiver.nodeType === Node.TEXT_NODE || $receiver.nodeType === Node.CDATA_SECTION_NODE; - } - function get_isElement($receiver) { - return $receiver.nodeType === Node.ELEMENT_NODE; - } - function EventListener(handler) { - return new EventListenerHandler(handler); - } - function EventListenerHandler(handler) { - this.handler_0 = handler; - } - EventListenerHandler.prototype.handleEvent = function (event) { - this.handler_0(event); - }; - EventListenerHandler.prototype.toString = function () { - return 'EventListenerHandler(' + this.handler_0 + ')'; - }; - EventListenerHandler.$metadata$ = {kind: Kind_CLASS, simpleName: 'EventListenerHandler', interfaces: []}; - function asList$ObjectLiteral_4(this$asList) { - this.this$asList = this$asList; - AbstractList.call(this); - } - Object.defineProperty(asList$ObjectLiteral_4.prototype, 'size', {get: function () { - return this.this$asList.length; - }}); - asList$ObjectLiteral_4.prototype.get_za3lpa$ = function (index) { - if (index >= 0 && index <= get_lastIndex_12(this)) { - return this.this$asList.item(index); - } - else - throw new IndexOutOfBoundsException('index ' + index + ' is not in range [0..' + get_lastIndex_12(this) + ']'); - }; - asList$ObjectLiteral_4.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractList]}; - function asList_12($receiver) { - return new asList$ObjectLiteral_4($receiver); - } - function clear($receiver) { - while ($receiver.hasChildNodes()) { - $receiver.removeChild(ensureNotNull($receiver.firstChild)); - } - } - function appendText($receiver, text) { - $receiver.appendChild(ensureNotNull($receiver.ownerDocument).createTextNode(text)); - return $receiver; - } - var asDynamic = defineInlineFunction('kotlin.kotlin.js.asDynamic_mzud1t$', function ($receiver) { - return $receiver; - }); - var unsafeCast = defineInlineFunction('kotlin.kotlin.js.unsafeCast_3752g7$', function ($receiver) { - return $receiver; - }); - var unsafeCast_0 = defineInlineFunction('kotlin.kotlin.js.unsafeCastDynamic', function ($receiver) { - return $receiver; - }); - function iterator($receiver) { - var tmp$, tmp$_0; - var r = $receiver; - if ($receiver['iterator'] != null) - tmp$_0 = $receiver['iterator'](); - else if (Kotlin.isArrayish(r)) { - tmp$_0 = Kotlin.arrayIterator(r); - } - else - tmp$_0 = (Kotlin.isType(tmp$ = r, Iterable) ? tmp$ : throwCCE_0()).iterator(); - return tmp$_0; - } - function throwNPE(message) { - throw new NullPointerException(message); - } - function throwCCE_0() { - throw new ClassCastException('Illegal cast'); - } - function throwISE(message) { - throw IllegalStateException_init_0(message); - } - function throwUPAE(propertyName) { - throw UninitializedPropertyAccessException_init_0('lateinit property ' + propertyName + ' has not been initialized'); - } - function Error_0(message, cause) { - Throwable.call(this); - var tmp$; - tmp$ = cause != null ? cause : null; - this.message_q7r8iu$_0 = typeof message === 'undefined' && tmp$ != null ? Kotlin.toString(tmp$) : message; - this.cause_us9j0c$_0 = tmp$; - Kotlin.captureStack(Throwable, this); - this.name = 'Error'; - } - Object.defineProperty(Error_0.prototype, 'message', {get: function () { - return this.message_q7r8iu$_0; - }}); - Object.defineProperty(Error_0.prototype, 'cause', {get: function () { - return this.cause_us9j0c$_0; - }}); - Error_0.$metadata$ = {kind: Kind_CLASS, simpleName: 'Error', interfaces: [Throwable]}; - function Error_init($this) { - $this = $this || Object.create(Error_0.prototype); - Error_0.call($this, null, null); - get_js(getKClass(Error_0)).call($this, null, null); - return $this; - } - function Error_init_0(message, $this) { - $this = $this || Object.create(Error_0.prototype); - Error_0.call($this, message, null); - get_js(getKClass(Error_0)).call($this, message, null); - return $this; - } - function Error_init_1(cause, $this) { - $this = $this || Object.create(Error_0.prototype); - Error_0.call($this, undefined, cause); - get_js(getKClass(Error_0)).call($this, undefined, cause); - return $this; - } - function Exception(message, cause) { - Throwable.call(this); - var tmp$; - tmp$ = cause != null ? cause : null; - this.message_8yp7un$_0 = typeof message === 'undefined' && tmp$ != null ? Kotlin.toString(tmp$) : message; - this.cause_th0jdv$_0 = tmp$; - Kotlin.captureStack(Throwable, this); - this.name = 'Exception'; - } - Object.defineProperty(Exception.prototype, 'message', {get: function () { - return this.message_8yp7un$_0; - }}); - Object.defineProperty(Exception.prototype, 'cause', {get: function () { - return this.cause_th0jdv$_0; - }}); - Exception.$metadata$ = {kind: Kind_CLASS, simpleName: 'Exception', interfaces: [Throwable]}; - function Exception_init($this) { - $this = $this || Object.create(Exception.prototype); - Exception.call($this, null, null); - get_js(getKClass(Exception)).call($this, null, null); - return $this; - } - function Exception_init_0(message, $this) { - $this = $this || Object.create(Exception.prototype); - Exception.call($this, message, null); - get_js(getKClass(Exception)).call($this, message, null); - return $this; - } - function Exception_init_1(cause, $this) { - $this = $this || Object.create(Exception.prototype); - Exception.call($this, undefined, cause); - get_js(getKClass(Exception)).call($this, undefined, cause); - return $this; - } - function RuntimeException(message, cause) { - Exception.call(this, message, cause); - this.name = 'RuntimeException'; - } - RuntimeException.$metadata$ = {kind: Kind_CLASS, simpleName: 'RuntimeException', interfaces: [Exception]}; - function RuntimeException_init($this) { - $this = $this || Object.create(RuntimeException.prototype); - RuntimeException.call($this, null, null); - return $this; - } - function RuntimeException_init_0(message, $this) { - $this = $this || Object.create(RuntimeException.prototype); - RuntimeException.call($this, message, null); - return $this; - } - function RuntimeException_init_1(cause, $this) { - $this = $this || Object.create(RuntimeException.prototype); - RuntimeException.call($this, undefined, cause); - return $this; - } - function IllegalArgumentException(message, cause) { - RuntimeException.call(this, message, cause); - this.name = 'IllegalArgumentException'; - } - IllegalArgumentException.$metadata$ = {kind: Kind_CLASS, simpleName: 'IllegalArgumentException', interfaces: [RuntimeException]}; - function IllegalArgumentException_init($this) { - $this = $this || Object.create(IllegalArgumentException.prototype); - IllegalArgumentException.call($this, null, null); - return $this; - } - function IllegalArgumentException_init_0(message, $this) { - $this = $this || Object.create(IllegalArgumentException.prototype); - IllegalArgumentException.call($this, message, null); - return $this; - } - function IllegalArgumentException_init_1(cause, $this) { - $this = $this || Object.create(IllegalArgumentException.prototype); - IllegalArgumentException.call($this, undefined, cause); - return $this; - } - function IllegalStateException(message, cause) { - RuntimeException.call(this, message, cause); - this.name = 'IllegalStateException'; - } - IllegalStateException.$metadata$ = {kind: Kind_CLASS, simpleName: 'IllegalStateException', interfaces: [RuntimeException]}; - function IllegalStateException_init($this) { - $this = $this || Object.create(IllegalStateException.prototype); - IllegalStateException.call($this, null, null); - return $this; - } - function IllegalStateException_init_0(message, $this) { - $this = $this || Object.create(IllegalStateException.prototype); - IllegalStateException.call($this, message, null); - return $this; - } - function IllegalStateException_init_1(cause, $this) { - $this = $this || Object.create(IllegalStateException.prototype); - IllegalStateException.call($this, undefined, cause); - return $this; - } - function IndexOutOfBoundsException(message) { - RuntimeException_init_0(message, this); - this.name = 'IndexOutOfBoundsException'; - } - IndexOutOfBoundsException.$metadata$ = {kind: Kind_CLASS, simpleName: 'IndexOutOfBoundsException', interfaces: [RuntimeException]}; - function IndexOutOfBoundsException_init($this) { - $this = $this || Object.create(IndexOutOfBoundsException.prototype); - IndexOutOfBoundsException.call($this, null); - return $this; - } - function ConcurrentModificationException(message, cause) { - RuntimeException.call(this, message, cause); - this.name = 'ConcurrentModificationException'; - } - ConcurrentModificationException.$metadata$ = {kind: Kind_CLASS, simpleName: 'ConcurrentModificationException', interfaces: [RuntimeException]}; - function ConcurrentModificationException_init($this) { - $this = $this || Object.create(ConcurrentModificationException.prototype); - ConcurrentModificationException.call($this, null, null); - return $this; - } - function ConcurrentModificationException_init_0(message, $this) { - $this = $this || Object.create(ConcurrentModificationException.prototype); - ConcurrentModificationException.call($this, message, null); - return $this; - } - function ConcurrentModificationException_init_1(cause, $this) { - $this = $this || Object.create(ConcurrentModificationException.prototype); - ConcurrentModificationException.call($this, undefined, cause); - return $this; - } - function UnsupportedOperationException(message, cause) { - RuntimeException.call(this, message, cause); - this.name = 'UnsupportedOperationException'; - } - UnsupportedOperationException.$metadata$ = {kind: Kind_CLASS, simpleName: 'UnsupportedOperationException', interfaces: [RuntimeException]}; - function UnsupportedOperationException_init($this) { - $this = $this || Object.create(UnsupportedOperationException.prototype); - UnsupportedOperationException.call($this, null, null); - return $this; - } - function UnsupportedOperationException_init_0(message, $this) { - $this = $this || Object.create(UnsupportedOperationException.prototype); - UnsupportedOperationException.call($this, message, null); - return $this; - } - function UnsupportedOperationException_init_1(cause, $this) { - $this = $this || Object.create(UnsupportedOperationException.prototype); - UnsupportedOperationException.call($this, undefined, cause); - return $this; - } - function NumberFormatException(message) { - IllegalArgumentException_init_0(message, this); - this.name = 'NumberFormatException'; - } - NumberFormatException.$metadata$ = {kind: Kind_CLASS, simpleName: 'NumberFormatException', interfaces: [IllegalArgumentException]}; - function NumberFormatException_init($this) { - $this = $this || Object.create(NumberFormatException.prototype); - NumberFormatException.call($this, null); - return $this; - } - function NullPointerException(message) { - RuntimeException_init_0(message, this); - this.name = 'NullPointerException'; - } - NullPointerException.$metadata$ = {kind: Kind_CLASS, simpleName: 'NullPointerException', interfaces: [RuntimeException]}; - function NullPointerException_init($this) { - $this = $this || Object.create(NullPointerException.prototype); - NullPointerException.call($this, null); - return $this; - } - function ClassCastException(message) { - RuntimeException_init_0(message, this); - this.name = 'ClassCastException'; - } - ClassCastException.$metadata$ = {kind: Kind_CLASS, simpleName: 'ClassCastException', interfaces: [RuntimeException]}; - function ClassCastException_init($this) { - $this = $this || Object.create(ClassCastException.prototype); - ClassCastException.call($this, null); - return $this; - } - function AssertionError(message, cause) { - Error_0.call(this, message, cause); - this.name = 'AssertionError'; - } - AssertionError.$metadata$ = {kind: Kind_CLASS, simpleName: 'AssertionError', interfaces: [Error_0]}; - function AssertionError_init($this) { - $this = $this || Object.create(AssertionError.prototype); - AssertionError_init_0(null, $this); - return $this; - } - function AssertionError_init_0(message, $this) { - $this = $this || Object.create(AssertionError.prototype); - AssertionError.call($this, message, null); - return $this; - } - function AssertionError_init_1(message, $this) { - $this = $this || Object.create(AssertionError.prototype); - var tmp$; - AssertionError.call($this, toString(message), Kotlin.isType(tmp$ = message, Throwable) ? tmp$ : null); - return $this; - } - function NoSuchElementException(message) { - RuntimeException_init_0(message, this); - this.name = 'NoSuchElementException'; - } - NoSuchElementException.$metadata$ = {kind: Kind_CLASS, simpleName: 'NoSuchElementException', interfaces: [RuntimeException]}; - function NoSuchElementException_init($this) { - $this = $this || Object.create(NoSuchElementException.prototype); - NoSuchElementException.call($this, null); - return $this; - } - function ArithmeticException(message) { - RuntimeException_init_0(message, this); - this.name = 'ArithmeticException'; - } - ArithmeticException.$metadata$ = {kind: Kind_CLASS, simpleName: 'ArithmeticException', interfaces: [RuntimeException]}; - function ArithmeticException_init($this) { - $this = $this || Object.create(ArithmeticException.prototype); - ArithmeticException.call($this, null); - return $this; - } - function NoWhenBranchMatchedException(message, cause) { - RuntimeException.call(this, message, cause); - this.name = 'NoWhenBranchMatchedException'; - } - NoWhenBranchMatchedException.$metadata$ = {kind: Kind_CLASS, simpleName: 'NoWhenBranchMatchedException', interfaces: [RuntimeException]}; - function NoWhenBranchMatchedException_init($this) { - $this = $this || Object.create(NoWhenBranchMatchedException.prototype); - NoWhenBranchMatchedException.call($this, null, null); - return $this; - } - function NoWhenBranchMatchedException_init_0(message, $this) { - $this = $this || Object.create(NoWhenBranchMatchedException.prototype); - NoWhenBranchMatchedException.call($this, message, null); - return $this; - } - function NoWhenBranchMatchedException_init_1(cause, $this) { - $this = $this || Object.create(NoWhenBranchMatchedException.prototype); - NoWhenBranchMatchedException.call($this, undefined, cause); - return $this; - } - function UninitializedPropertyAccessException(message, cause) { - RuntimeException.call(this, message, cause); - this.name = 'UninitializedPropertyAccessException'; - } - UninitializedPropertyAccessException.$metadata$ = {kind: Kind_CLASS, simpleName: 'UninitializedPropertyAccessException', interfaces: [RuntimeException]}; - function UninitializedPropertyAccessException_init($this) { - $this = $this || Object.create(UninitializedPropertyAccessException.prototype); - UninitializedPropertyAccessException.call($this, null, null); - return $this; - } - function UninitializedPropertyAccessException_init_0(message, $this) { - $this = $this || Object.create(UninitializedPropertyAccessException.prototype); - UninitializedPropertyAccessException.call($this, message, null); - return $this; - } - function UninitializedPropertyAccessException_init_1(cause, $this) { - $this = $this || Object.create(UninitializedPropertyAccessException.prototype); - UninitializedPropertyAccessException.call($this, undefined, cause); - return $this; - } - function eachCount($receiver) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var tmp$_0; - destination.put_xwzc9p$(key, (accumulator == null && !destination.containsKey_11rb$(key) ? 0 : (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE()) + 1 | 0); - } - return destination; - } - function Serializable() { - } - Serializable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Serializable', interfaces: []}; - function min_20($receiver, a, b) { - return a.compareTo_11rb$(b) <= 0 ? a : b; - } - function max_20($receiver, a, b) { - return a.compareTo_11rb$(b) >= 0 ? a : b; - } - function json(pairs) { - var tmp$; - var res = {}; - for (tmp$ = 0; tmp$ !== pairs.length; ++tmp$) { - var tmp$_0 = pairs[tmp$]; - var name = tmp$_0.component1(), value = tmp$_0.component2(); - res[name] = value; - } - return res; - } - function add($receiver, other) { - var tmp$; - var keys = Object.keys(other); - for (tmp$ = 0; tmp$ !== keys.length; ++tmp$) { - var key = keys[tmp$]; - if (other.hasOwnProperty(key)) { - $receiver[key] = other[key]; - } - } - return $receiver; - } - var sin = defineInlineFunction('kotlin.kotlin.math.sin_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sin(x); - }; - })); - var cos = defineInlineFunction('kotlin.kotlin.math.cos_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.cos(x); - }; - })); - var tan = defineInlineFunction('kotlin.kotlin.math.tan_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.tan(x); - }; - })); - var asin = defineInlineFunction('kotlin.kotlin.math.asin_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.asin(x); - }; - })); - var acos = defineInlineFunction('kotlin.kotlin.math.acos_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.acos(x); - }; - })); - var atan = defineInlineFunction('kotlin.kotlin.math.atan_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.atan(x); - }; - })); - var atan2 = defineInlineFunction('kotlin.kotlin.math.atan2_lu1900$', wrapFunction(function () { - var Math_0 = Math; - return function (y, x) { - return Math_0.atan2(y, x); - }; - })); - var sinh = defineInlineFunction('kotlin.kotlin.math.sinh_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sinh(x); - }; - })); - var cosh = defineInlineFunction('kotlin.kotlin.math.cosh_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.cosh(x); - }; - })); - var tanh = defineInlineFunction('kotlin.kotlin.math.tanh_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.tanh(x); - }; - })); - var asinh = defineInlineFunction('kotlin.kotlin.math.asinh_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.asinh(x); - }; - })); - var acosh = defineInlineFunction('kotlin.kotlin.math.acosh_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.acosh(x); - }; - })); - var atanh = defineInlineFunction('kotlin.kotlin.math.atanh_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.atanh(x); - }; - })); - var hypot = defineInlineFunction('kotlin.kotlin.math.hypot_lu1900$', wrapFunction(function () { - var Math_0 = Math; - return function (x, y) { - return Math_0.hypot(x, y); - }; - })); - var sqrt = defineInlineFunction('kotlin.kotlin.math.sqrt_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sqrt(x); - }; - })); - var exp = defineInlineFunction('kotlin.kotlin.math.exp_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.exp(x); - }; - })); - var expm1 = defineInlineFunction('kotlin.kotlin.math.expm1_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.expm1(x); - }; - })); - function log(x, base) { - if (base <= 0.0 || base === 1.0) - return kotlin_js_internal_DoubleCompanionObject.NaN; - return Math.log(x) / Math.log(base); - } - var ln = defineInlineFunction('kotlin.kotlin.math.ln_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log(x); - }; - })); - var log10 = defineInlineFunction('kotlin.kotlin.math.log10_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log10(x); - }; - })); - var log2 = defineInlineFunction('kotlin.kotlin.math.log2_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log2(x); - }; - })); - var ln1p = defineInlineFunction('kotlin.kotlin.math.ln1p_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log1p(x); - }; - })); - var ceil = defineInlineFunction('kotlin.kotlin.math.ceil_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.ceil(x); - }; - })); - var floor = defineInlineFunction('kotlin.kotlin.math.floor_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.floor(x); - }; - })); - var truncate = defineInlineFunction('kotlin.kotlin.math.truncate_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.trunc(x); - }; - })); - function round(x) { - if (x % 0.5 !== 0.0) { - return Math.round(x); - } - var floor = Math_0.floor(x); - return floor % 2 === 0.0 ? floor : Math_0.ceil(x); - } - var abs = defineInlineFunction('kotlin.kotlin.math.abs_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.abs(x); - }; - })); - var sign = defineInlineFunction('kotlin.kotlin.math.sign_14dthe$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sign(x); - }; - })); - var min_21 = defineInlineFunction('kotlin.kotlin.math.min_lu1900$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var max_21 = defineInlineFunction('kotlin.kotlin.math.max_lu1900$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var pow = defineInlineFunction('kotlin.kotlin.math.pow_38ydlf$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver, x) { - return Math_0.pow($receiver, x); - }; - })); - var pow_0 = defineInlineFunction('kotlin.kotlin.math.pow_j6vyb1$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver, n) { - return Math_0.pow($receiver, n); - }; - })); - var get_absoluteValue = defineInlineFunction('kotlin.kotlin.math.get_absoluteValue_yrwdxr$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver) { - return Math_0.abs($receiver); - }; - })); - var get_sign = defineInlineFunction('kotlin.kotlin.math.get_sign_yrwdxr$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver) { - return Math_0.sign($receiver); - }; - })); - function withSign($receiver, sign) { - var thisSignBit = Kotlin.doubleSignBit($receiver); - var newSignBit = Kotlin.doubleSignBit(sign); - return thisSignBit === newSignBit ? $receiver : -$receiver; - } - var withSign_0 = defineInlineFunction('kotlin.kotlin.math.withSign_j6vyb1$', wrapFunction(function () { - var withSign = _.kotlin.math.withSign_38ydlf$; - return function ($receiver, sign) { - return withSign($receiver, sign); - }; - })); - function get_ulp($receiver) { - if ($receiver < 0) - return get_ulp(-$receiver); - else if (isNaN_0($receiver) || $receiver === kotlin_js_internal_DoubleCompanionObject.POSITIVE_INFINITY) - return $receiver; - else if ($receiver === kotlin_js_internal_DoubleCompanionObject.MAX_VALUE) - return $receiver - nextDown($receiver); - else - return nextUp($receiver) - $receiver; - } - function nextUp($receiver) { - if (isNaN_0($receiver) || $receiver === kotlin_js_internal_DoubleCompanionObject.POSITIVE_INFINITY) - return $receiver; - else if ($receiver === 0.0) - return kotlin_js_internal_DoubleCompanionObject.MIN_VALUE; - else { - var bits = toRawBits($receiver).add(Kotlin.Long.fromInt($receiver > 0 ? 1 : -1)); - return Kotlin.doubleFromBits(bits); - } - } - function nextDown($receiver) { - if (isNaN_0($receiver) || $receiver === kotlin_js_internal_DoubleCompanionObject.NEGATIVE_INFINITY) - return $receiver; - else if ($receiver === 0.0) - return -kotlin_js_internal_DoubleCompanionObject.MIN_VALUE; - else { - var bits = toRawBits($receiver).add(Kotlin.Long.fromInt($receiver > 0 ? -1 : 1)); - return Kotlin.doubleFromBits(bits); - } - } - function nextTowards($receiver, to) { - if (isNaN_0($receiver) || isNaN_0(to)) - return kotlin_js_internal_DoubleCompanionObject.NaN; - else if (to === $receiver) - return to; - else if (to > $receiver) - return nextUp($receiver); - else - return nextDown($receiver); - } - function roundToInt($receiver) { - if (isNaN_0($receiver)) - throw IllegalArgumentException_init_0('Cannot round NaN value.'); - else if ($receiver > 2147483647) - return 2147483647; - else if ($receiver < -2147483648) - return -2147483648; - else { - return numberToInt(Math.round($receiver)); - } - } - function roundToLong($receiver) { - if (isNaN_0($receiver)) - throw IllegalArgumentException_init_0('Cannot round NaN value.'); - else if ($receiver > Long$Companion$MAX_VALUE.toNumber()) - return Long$Companion$MAX_VALUE; - else if ($receiver < Long$Companion$MIN_VALUE.toNumber()) - return Long$Companion$MIN_VALUE; - else { - return Kotlin.Long.fromNumber(Math.round($receiver)); - } - } - var sin_0 = defineInlineFunction('kotlin.kotlin.math.sin_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sin(x); - }; - })); - var cos_0 = defineInlineFunction('kotlin.kotlin.math.cos_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.cos(x); - }; - })); - var tan_0 = defineInlineFunction('kotlin.kotlin.math.tan_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.tan(x); - }; - })); - var asin_0 = defineInlineFunction('kotlin.kotlin.math.asin_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.asin(x); - }; - })); - var acos_0 = defineInlineFunction('kotlin.kotlin.math.acos_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.acos(x); - }; - })); - var atan_0 = defineInlineFunction('kotlin.kotlin.math.atan_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.atan(x); - }; - })); - var atan2_0 = defineInlineFunction('kotlin.kotlin.math.atan2_dleff0$', wrapFunction(function () { - var Math_0 = Math; - return function (y, x) { - return Math_0.atan2(y, x); - }; - })); - var sinh_0 = defineInlineFunction('kotlin.kotlin.math.sinh_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sinh(x); - }; - })); - var cosh_0 = defineInlineFunction('kotlin.kotlin.math.cosh_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.cosh(x); - }; - })); - var tanh_0 = defineInlineFunction('kotlin.kotlin.math.tanh_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.tanh(x); - }; - })); - var asinh_0 = defineInlineFunction('kotlin.kotlin.math.asinh_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.asinh(x); - }; - })); - var acosh_0 = defineInlineFunction('kotlin.kotlin.math.acosh_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.acosh(x); - }; - })); - var atanh_0 = defineInlineFunction('kotlin.kotlin.math.atanh_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.atanh(x); - }; - })); - var hypot_0 = defineInlineFunction('kotlin.kotlin.math.hypot_dleff0$', wrapFunction(function () { - var Math_0 = Math; - return function (x, y) { - return Math_0.hypot(x, y); - }; - })); - var sqrt_0 = defineInlineFunction('kotlin.kotlin.math.sqrt_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sqrt(x); - }; - })); - var exp_0 = defineInlineFunction('kotlin.kotlin.math.exp_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.exp(x); - }; - })); - var expm1_0 = defineInlineFunction('kotlin.kotlin.math.expm1_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.expm1(x); - }; - })); - var log_0 = defineInlineFunction('kotlin.kotlin.math.log_dleff0$', wrapFunction(function () { - var log = _.kotlin.math.log_lu1900$; - return function (x, base) { - return log(x, base); - }; - })); - var ln_0 = defineInlineFunction('kotlin.kotlin.math.ln_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log(x); - }; - })); - var log10_0 = defineInlineFunction('kotlin.kotlin.math.log10_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log10(x); - }; - })); - var log2_0 = defineInlineFunction('kotlin.kotlin.math.log2_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log2(x); - }; - })); - var ln1p_0 = defineInlineFunction('kotlin.kotlin.math.ln1p_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.log1p(x); - }; - })); - var ceil_0 = defineInlineFunction('kotlin.kotlin.math.ceil_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.ceil(x); - }; - })); - var floor_0 = defineInlineFunction('kotlin.kotlin.math.floor_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.floor(x); - }; - })); - var truncate_0 = defineInlineFunction('kotlin.kotlin.math.truncate_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.trunc(x); - }; - })); - var round_0 = defineInlineFunction('kotlin.kotlin.math.round_mx4ult$', wrapFunction(function () { - var round = _.kotlin.math.round_14dthe$; - return function (x) { - return round(x); - }; - })); - var abs_0 = defineInlineFunction('kotlin.kotlin.math.abs_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.abs(x); - }; - })); - var sign_0 = defineInlineFunction('kotlin.kotlin.math.sign_mx4ult$', wrapFunction(function () { - var Math_0 = Math; - return function (x) { - return Math_0.sign(x); - }; - })); - var min_22 = defineInlineFunction('kotlin.kotlin.math.min_dleff0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var max_22 = defineInlineFunction('kotlin.kotlin.math.max_dleff0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var pow_1 = defineInlineFunction('kotlin.kotlin.math.pow_yni7l$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver, x) { - return Math_0.pow($receiver, x); - }; - })); - var pow_2 = defineInlineFunction('kotlin.kotlin.math.pow_lcymw2$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver, n) { - return Math_0.pow($receiver, n); - }; - })); - var get_absoluteValue_0 = defineInlineFunction('kotlin.kotlin.math.get_absoluteValue_81szk$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver) { - return Math_0.abs($receiver); - }; - })); - var get_sign_0 = defineInlineFunction('kotlin.kotlin.math.get_sign_81szk$', wrapFunction(function () { - var Math_0 = Math; - return function ($receiver) { - return Math_0.sign($receiver); - }; - })); - var withSign_1 = defineInlineFunction('kotlin.kotlin.math.withSign_yni7l$', wrapFunction(function () { - var withSign = _.kotlin.math.withSign_38ydlf$; - return function ($receiver, sign) { - return withSign($receiver, sign); - }; - })); - var withSign_2 = defineInlineFunction('kotlin.kotlin.math.withSign_lcymw2$', wrapFunction(function () { - var withSign = _.kotlin.math.withSign_38ydlf$; - return function ($receiver, sign) { - return withSign($receiver, sign); - }; - })); - var roundToInt_0 = defineInlineFunction('kotlin.kotlin.math.roundToInt_81szk$', wrapFunction(function () { - var roundToInt = _.kotlin.math.roundToInt_yrwdxr$; - return function ($receiver) { - return roundToInt($receiver); - }; - })); - var roundToLong_0 = defineInlineFunction('kotlin.kotlin.math.roundToLong_81szk$', wrapFunction(function () { - var roundToLong = _.kotlin.math.roundToLong_yrwdxr$; - return function ($receiver) { - return roundToLong($receiver); - }; - })); - function abs_1(n) { - return n < 0 ? -n | 0 | 0 : n; - } - var min_23 = defineInlineFunction('kotlin.kotlin.math.min_vux9f0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.min(a, b); - }; - })); - var max_23 = defineInlineFunction('kotlin.kotlin.math.max_vux9f0$', wrapFunction(function () { - var Math_0 = Math; - return function (a, b) { - return Math_0.max(a, b); - }; - })); - var get_absoluteValue_1 = defineInlineFunction('kotlin.kotlin.math.get_absoluteValue_s8ev3n$', wrapFunction(function () { - var abs = _.kotlin.math.abs_za3lpa$; - return function ($receiver) { - return abs($receiver); - }; - })); - function get_sign_1($receiver) { - if ($receiver < 0) - return -1; - else if ($receiver > 0) - return 1; - else - return 0; - } - function abs_2(n) { - return n.toNumber() < 0 ? n.unaryMinus() : n; - } - var min_24 = defineInlineFunction('kotlin.kotlin.math.min_3pjtqy$', function (a, b) { - return a.compareTo_11rb$(b) <= 0 ? a : b; - }); - var max_24 = defineInlineFunction('kotlin.kotlin.math.max_3pjtqy$', function (a, b) { - return a.compareTo_11rb$(b) >= 0 ? a : b; - }); - var get_absoluteValue_2 = defineInlineFunction('kotlin.kotlin.math.get_absoluteValue_mts6qi$', wrapFunction(function () { - var abs = _.kotlin.math.abs_s8cxhz$; - return function ($receiver) { - return abs($receiver); - }; - })); - function get_sign_2($receiver) { - if ($receiver.toNumber() < 0) - return -1; - else if ($receiver.toNumber() > 0) - return 1; - else - return 0; - } - function isNaN_0($receiver) { - return $receiver !== $receiver; - } - function isNaN_1($receiver) { - return $receiver !== $receiver; - } - function isInfinite($receiver) { - return $receiver === kotlin_js_internal_DoubleCompanionObject.POSITIVE_INFINITY || $receiver === kotlin_js_internal_DoubleCompanionObject.NEGATIVE_INFINITY; - } - function isInfinite_0($receiver) { - return $receiver === kotlin_js_internal_FloatCompanionObject.POSITIVE_INFINITY || $receiver === kotlin_js_internal_FloatCompanionObject.NEGATIVE_INFINITY; - } - function isFinite($receiver) { - return !isInfinite($receiver) && !isNaN_0($receiver); - } - function isFinite_0($receiver) { - return !isInfinite_0($receiver) && !isNaN_1($receiver); - } - var fromBits = defineInlineFunction('kotlin.kotlin.fromBits_pkt8ie$', function ($receiver, bits) { - return Kotlin.doubleFromBits(bits); - }); - var fromBits_0 = defineInlineFunction('kotlin.kotlin.fromBits_4ql4v8$', function ($receiver, bits) { - return Kotlin.floatFromBits(bits); - }); - var then = defineInlineFunction('kotlin.kotlin.js.then_eyvp0y$', function ($receiver, onFulfilled) { - return $receiver.then(onFulfilled); - }); - var then_0 = defineInlineFunction('kotlin.kotlin.js.then_a5sxob$', function ($receiver, onFulfilled, onRejected) { - return $receiver.then(onFulfilled, onRejected); - }); - function defaultPlatformRandom() { - return Random_0(Math.random() * Math.pow(2, 32) | 0); - } - function fastLog2(value) { - var v = value; - var log = -1; - while (v !== 0) { - v = v >>> 1; - log = log + 1 | 0; - } - return log; - } - var INV_2_26; - var INV_2_53; - function doubleFromParts(hi26, low27) { - return hi26 * INV_2_26 + low27 * INV_2_53; - } - var rangeTo = defineInlineFunction('kotlin.kotlin.ranges.rangeTo_yni7l$', wrapFunction(function () { - var rangeTo = _.kotlin.ranges.rangeTo_38ydlf$; - return function ($receiver, that) { - return rangeTo($receiver, that); - }; - })); - function get_jsClass($receiver) { - switch (typeof $receiver) { - case 'string': - return String; - case 'number': - return Number; - case 'boolean': - return Boolean; - default:return Object.getPrototypeOf($receiver).constructor; - } - } - function get_js($receiver) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, KClassImpl) ? tmp$ : throwCCE_0()).jClass; - } - function get_kotlin($receiver) { - return getKClass($receiver); - } - function KClassImpl(jClass) { - this.jClass_1ppatx$_0 = jClass; - } - Object.defineProperty(KClassImpl.prototype, 'jClass', {get: function () { - return this.jClass_1ppatx$_0; - }}); - Object.defineProperty(KClassImpl.prototype, 'annotations', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'constructors', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isAbstract', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isCompanion', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isData', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isFinal', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isInner', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isOpen', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'isSealed', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'members', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'nestedClasses', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'objectInstance', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'qualifiedName', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'supertypes', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'typeParameters', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'sealedSubclasses', {get: function () { - throw new NotImplementedError(); - }}); - Object.defineProperty(KClassImpl.prototype, 'visibility', {get: function () { - throw new NotImplementedError(); - }}); - KClassImpl.prototype.equals = function (other) { - return Kotlin.isType(other, KClassImpl) && equals(this.jClass, other.jClass); - }; - KClassImpl.prototype.hashCode = function () { - var tmp$, tmp$_0; - return (tmp$_0 = (tmp$ = this.simpleName) != null ? hashCode(tmp$) : null) != null ? tmp$_0 : 0; - }; - KClassImpl.prototype.toString = function () { - return 'class ' + toString(this.simpleName); - }; - KClassImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'KClassImpl', interfaces: [KClass]}; - function SimpleKClassImpl(jClass) { - KClassImpl.call(this, jClass); - var tmp$; - this.simpleName_m7mxi0$_0 = (tmp$ = jClass.$metadata$) != null ? tmp$.simpleName : null; - } - Object.defineProperty(SimpleKClassImpl.prototype, 'simpleName', {get: function () { - return this.simpleName_m7mxi0$_0; - }}); - SimpleKClassImpl.prototype.isInstance_s8jyv4$ = function (value) { - var jsClass = this.jClass; - return Kotlin.isType(value, jsClass); - }; - SimpleKClassImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'SimpleKClassImpl', interfaces: [KClassImpl]}; - function PrimitiveKClassImpl(jClass, givenSimpleName, isInstanceFunction) { - KClassImpl.call(this, jClass); - this.givenSimpleName_0 = givenSimpleName; - this.isInstanceFunction_0 = isInstanceFunction; - } - PrimitiveKClassImpl.prototype.equals = function (other) { - if (!Kotlin.isType(other, PrimitiveKClassImpl)) - return false; - return KClassImpl.prototype.equals.call(this, other) && equals(this.givenSimpleName_0, other.givenSimpleName_0); - }; - Object.defineProperty(PrimitiveKClassImpl.prototype, 'simpleName', {get: function () { - return this.givenSimpleName_0; - }}); - PrimitiveKClassImpl.prototype.isInstance_s8jyv4$ = function (value) { - return this.isInstanceFunction_0(value); - }; - PrimitiveKClassImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'PrimitiveKClassImpl', interfaces: [KClassImpl]}; - function NothingKClassImpl() { - NothingKClassImpl_instance = this; - KClassImpl.call(this, Object); - this.simpleName_lnzy73$_0 = 'Nothing'; - } - Object.defineProperty(NothingKClassImpl.prototype, 'simpleName', {get: function () { - return this.simpleName_lnzy73$_0; - }}); - NothingKClassImpl.prototype.isInstance_s8jyv4$ = function (value) { - return false; - }; - Object.defineProperty(NothingKClassImpl.prototype, 'jClass', {get: function () { - throw UnsupportedOperationException_init_0("There's no native JS class for Nothing type"); - }}); - NothingKClassImpl.prototype.equals = function (other) { - return other === this; - }; - NothingKClassImpl.prototype.hashCode = function () { - return 0; - }; - NothingKClassImpl.$metadata$ = {kind: Kind_OBJECT, simpleName: 'NothingKClassImpl', interfaces: [KClassImpl]}; - var NothingKClassImpl_instance = null; - function NothingKClassImpl_getInstance() { - if (NothingKClassImpl_instance === null) { - new NothingKClassImpl(); - } - return NothingKClassImpl_instance; - } - function PrimitiveClasses() { - PrimitiveClasses_instance = this; - this.anyClass = new PrimitiveKClassImpl(Object, 'Any', PrimitiveClasses$anyClass$lambda); - this.numberClass = new PrimitiveKClassImpl(Number, 'Number', PrimitiveClasses$numberClass$lambda); - this.nothingClass = NothingKClassImpl_getInstance(); - this.booleanClass = new PrimitiveKClassImpl(Boolean, 'Boolean', PrimitiveClasses$booleanClass$lambda); - this.byteClass = new PrimitiveKClassImpl(Number, 'Byte', PrimitiveClasses$byteClass$lambda); - this.shortClass = new PrimitiveKClassImpl(Number, 'Short', PrimitiveClasses$shortClass$lambda); - this.intClass = new PrimitiveKClassImpl(Number, 'Int', PrimitiveClasses$intClass$lambda); - this.floatClass = new PrimitiveKClassImpl(Number, 'Float', PrimitiveClasses$floatClass$lambda); - this.doubleClass = new PrimitiveKClassImpl(Number, 'Double', PrimitiveClasses$doubleClass$lambda); - this.arrayClass = new PrimitiveKClassImpl(Array, 'Array', PrimitiveClasses$arrayClass$lambda); - this.stringClass = new PrimitiveKClassImpl(String, 'String', PrimitiveClasses$stringClass$lambda); - this.throwableClass = new PrimitiveKClassImpl(Error, 'Throwable', PrimitiveClasses$throwableClass$lambda); - this.booleanArrayClass = new PrimitiveKClassImpl(Array, 'BooleanArray', PrimitiveClasses$booleanArrayClass$lambda); - this.charArrayClass = new PrimitiveKClassImpl(Uint16Array, 'CharArray', PrimitiveClasses$charArrayClass$lambda); - this.byteArrayClass = new PrimitiveKClassImpl(Int8Array, 'ByteArray', PrimitiveClasses$byteArrayClass$lambda); - this.shortArrayClass = new PrimitiveKClassImpl(Int16Array, 'ShortArray', PrimitiveClasses$shortArrayClass$lambda); - this.intArrayClass = new PrimitiveKClassImpl(Int32Array, 'IntArray', PrimitiveClasses$intArrayClass$lambda); - this.longArrayClass = new PrimitiveKClassImpl(Array, 'LongArray', PrimitiveClasses$longArrayClass$lambda); - this.floatArrayClass = new PrimitiveKClassImpl(Float32Array, 'FloatArray', PrimitiveClasses$floatArrayClass$lambda); - this.doubleArrayClass = new PrimitiveKClassImpl(Float64Array, 'DoubleArray', PrimitiveClasses$doubleArrayClass$lambda); - } - function PrimitiveClasses$functionClass$lambda$lambda(closure$arity) { - return function (it) { - return typeof it === 'function' && it.length === closure$arity; - }; - } - PrimitiveClasses.prototype.functionClass = function (arity) { - var tmp$; - var tmp$_0; - if ((tmp$ = functionClasses[arity]) != null) - tmp$_0 = tmp$; - else { - var result = new PrimitiveKClassImpl(Function, 'Function' + arity, PrimitiveClasses$functionClass$lambda$lambda(arity)); - functionClasses[arity] = result; - tmp$_0 = result; - } - return tmp$_0; - }; - function PrimitiveClasses$anyClass$lambda(it) { - return Kotlin.isType(it, Any); - } - function PrimitiveClasses$numberClass$lambda(it) { - return Kotlin.isNumber(it); - } - function PrimitiveClasses$booleanClass$lambda(it) { - return typeof it === 'boolean'; - } - function PrimitiveClasses$byteClass$lambda(it) { - return typeof it === 'number'; - } - function PrimitiveClasses$shortClass$lambda(it) { - return typeof it === 'number'; - } - function PrimitiveClasses$intClass$lambda(it) { - return typeof it === 'number'; - } - function PrimitiveClasses$floatClass$lambda(it) { - return typeof it === 'number'; - } - function PrimitiveClasses$doubleClass$lambda(it) { - return typeof it === 'number'; - } - function PrimitiveClasses$arrayClass$lambda(it) { - return Kotlin.isArray(it); - } - function PrimitiveClasses$stringClass$lambda(it) { - return typeof it === 'string'; - } - function PrimitiveClasses$throwableClass$lambda(it) { - return Kotlin.isType(it, Throwable); - } - function PrimitiveClasses$booleanArrayClass$lambda(it) { - return Kotlin.isBooleanArray(it); - } - function PrimitiveClasses$charArrayClass$lambda(it) { - return Kotlin.isCharArray(it); - } - function PrimitiveClasses$byteArrayClass$lambda(it) { - return Kotlin.isByteArray(it); - } - function PrimitiveClasses$shortArrayClass$lambda(it) { - return Kotlin.isShortArray(it); - } - function PrimitiveClasses$intArrayClass$lambda(it) { - return Kotlin.isIntArray(it); - } - function PrimitiveClasses$longArrayClass$lambda(it) { - return Kotlin.isLongArray(it); - } - function PrimitiveClasses$floatArrayClass$lambda(it) { - return Kotlin.isFloatArray(it); - } - function PrimitiveClasses$doubleArrayClass$lambda(it) { - return Kotlin.isDoubleArray(it); - } - PrimitiveClasses.$metadata$ = {kind: Kind_OBJECT, simpleName: 'PrimitiveClasses', interfaces: []}; - var PrimitiveClasses_instance = null; - function PrimitiveClasses_getInstance() { - if (PrimitiveClasses_instance === null) { - new PrimitiveClasses(); - } - return PrimitiveClasses_instance; - } - var functionClasses; - function getKClass(jClass) { - return getOrCreateKClass(jClass); - } - function getKClassFromExpression(e) { - var tmp$; - switch (typeof e) { - case 'string': - tmp$ = PrimitiveClasses_getInstance().stringClass; - break; - case 'number': - tmp$ = (e | 0) === e ? PrimitiveClasses_getInstance().intClass : PrimitiveClasses_getInstance().doubleClass; - break; - case 'boolean': - tmp$ = PrimitiveClasses_getInstance().booleanClass; - break; - case 'function': - tmp$ = PrimitiveClasses_getInstance().functionClass(e.length); - break; - default:if (Kotlin.isBooleanArray(e)) - tmp$ = PrimitiveClasses_getInstance().booleanArrayClass; - else if (Kotlin.isCharArray(e)) - tmp$ = PrimitiveClasses_getInstance().charArrayClass; - else if (Kotlin.isByteArray(e)) - tmp$ = PrimitiveClasses_getInstance().byteArrayClass; - else if (Kotlin.isShortArray(e)) - tmp$ = PrimitiveClasses_getInstance().shortArrayClass; - else if (Kotlin.isIntArray(e)) - tmp$ = PrimitiveClasses_getInstance().intArrayClass; - else if (Kotlin.isLongArray(e)) - tmp$ = PrimitiveClasses_getInstance().longArrayClass; - else if (Kotlin.isFloatArray(e)) - tmp$ = PrimitiveClasses_getInstance().floatArrayClass; - else if (Kotlin.isDoubleArray(e)) - tmp$ = PrimitiveClasses_getInstance().doubleArrayClass; - else if (Kotlin.isType(e, KClass)) - tmp$ = getKClass(KClass); - else if (Kotlin.isArray(e)) - tmp$ = PrimitiveClasses_getInstance().arrayClass; - else { - var constructor = Object.getPrototypeOf(e).constructor; - if (constructor === Object) - tmp$ = PrimitiveClasses_getInstance().anyClass; - else if (constructor === Error) - tmp$ = PrimitiveClasses_getInstance().throwableClass; - else { - var jsClass = constructor; - tmp$ = getOrCreateKClass(jsClass); - } - } - - break; - } - return tmp$; - } - function getOrCreateKClass(jClass) { - var tmp$; - if (jClass === String) { - return PrimitiveClasses_getInstance().stringClass; - } - var metadata = jClass.$metadata$; - if (metadata != null) { - if (metadata.$kClass$ == null) { - var kClass = new SimpleKClassImpl(jClass); - metadata.$kClass$ = kClass; - tmp$ = kClass; - } - else { - tmp$ = metadata.$kClass$; - } - } - else { - tmp$ = new SimpleKClassImpl(jClass); - } - return tmp$; - } - function reset($receiver) { - $receiver.lastIndex = 0; - } - var get_0 = defineInlineFunction('kotlin.kotlin.js.get_kmxd4d$', function ($receiver, index) { - return $receiver[index]; - }); - var asArray = defineInlineFunction('kotlin.kotlin.js.asArray_tgewol$', function ($receiver) { - return $receiver; - }); - function ConstrainedOnceSequence(sequence) { - this.sequenceRef_0 = sequence; - } - ConstrainedOnceSequence.prototype.iterator = function () { - var tmp$; - tmp$ = this.sequenceRef_0; - if (tmp$ == null) { - throw IllegalStateException_init_0('This sequence can be consumed only once.'); - } - var sequence = tmp$; - this.sequenceRef_0 = null; - return sequence.iterator(); - }; - ConstrainedOnceSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'ConstrainedOnceSequence', interfaces: [Sequence]}; - function isWhitespace($receiver) { - return matches(String.fromCharCode($receiver), '[\\s\\xA0]'); - } - var toLowerCase = defineInlineFunction('kotlin.kotlin.text.toLowerCase_myv2d0$', wrapFunction(function () { - var toChar = Kotlin.toChar; - return function ($receiver) { - return toChar(String.fromCharCode($receiver | 0).toLowerCase().charCodeAt(0)); - }; - })); - var toUpperCase = defineInlineFunction('kotlin.kotlin.text.toUpperCase_myv2d0$', wrapFunction(function () { - var toChar = Kotlin.toChar; - return function ($receiver) { - return toChar(String.fromCharCode($receiver | 0).toUpperCase().charCodeAt(0)); - }; - })); - function isHighSurrogate($receiver) { - return (new CharRange(kotlin_js_internal_CharCompanionObject.MIN_HIGH_SURROGATE, kotlin_js_internal_CharCompanionObject.MAX_HIGH_SURROGATE)).contains_mef7kx$($receiver); - } - function isLowSurrogate($receiver) { - return (new CharRange(kotlin_js_internal_CharCompanionObject.MIN_LOW_SURROGATE, kotlin_js_internal_CharCompanionObject.MAX_LOW_SURROGATE)).contains_mef7kx$($receiver); - } - function toBoolean($receiver) { - return equals($receiver.toLowerCase(), 'true'); - } - function toByte_0($receiver) { - var tmp$; - return (tmp$ = toByteOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toByte_1($receiver, radix) { - var tmp$; - return (tmp$ = toByteOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toShort_0($receiver) { - var tmp$; - return (tmp$ = toShortOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toShort_1($receiver, radix) { - var tmp$; - return (tmp$ = toShortOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toInt($receiver) { - var tmp$; - return (tmp$ = toIntOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toInt_0($receiver, radix) { - var tmp$; - return (tmp$ = toIntOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toLong($receiver) { - var tmp$; - return (tmp$ = toLongOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toLong_0($receiver, radix) { - var tmp$; - return (tmp$ = toLongOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toDouble($receiver) { - var $receiver_0 = +$receiver; - if (isNaN_0($receiver_0) && !isNaN_2($receiver) || ($receiver_0 === 0.0 && isBlank($receiver))) - numberFormatError($receiver); - return $receiver_0; - } - var toFloat = defineInlineFunction('kotlin.kotlin.text.toFloat_pdl1vz$', wrapFunction(function () { - var toDouble = _.kotlin.text.toDouble_pdl1vz$; - return function ($receiver) { - return toDouble($receiver); - }; - })); - function toDoubleOrNull($receiver) { - var $receiver_0 = +$receiver; - return !(isNaN_0($receiver_0) && !isNaN_2($receiver) || ($receiver_0 === 0.0 && isBlank($receiver))) ? $receiver_0 : null; - } - var toFloatOrNull = defineInlineFunction('kotlin.kotlin.text.toFloatOrNull_pdl1vz$', wrapFunction(function () { - var toDoubleOrNull = _.kotlin.text.toDoubleOrNull_pdl1vz$; - return function ($receiver) { - return toDoubleOrNull($receiver); - }; - })); - var toString_0 = defineInlineFunction('kotlin.kotlin.text.toString_798l30$', wrapFunction(function () { - var toString = _.kotlin.text.toString_dqglrj$; - return function ($receiver, radix) { - return toString($receiver, radix); - }; - })); - var toString_1 = defineInlineFunction('kotlin.kotlin.text.toString_di2vk2$', wrapFunction(function () { - var toString = _.kotlin.text.toString_dqglrj$; - return function ($receiver, radix) { - return toString($receiver, radix); - }; - })); - function toString_2($receiver, radix) { - return $receiver.toString(checkRadix(radix)); - } - function toString_3($receiver, radix) { - return $receiver.toString(checkRadix(radix)); - } - function isNaN_2($receiver) { - switch ($receiver.toLowerCase()) { - case 'nan': - case '+nan': - case '-nan': - return true; - default:return false; - } - } - function checkRadix(radix) { - if (!(2 <= radix && radix <= 36)) { - throw IllegalArgumentException_init_0('radix ' + radix + ' was not in valid range 2..36'); - } - return radix; - } - function digitOf(char, radix) { - var tmp$; - if (char >= 48 && char <= 57) - tmp$ = char - 48; - else if (char >= 65 && char <= 90) - tmp$ = char - 65 + 10 | 0; - else if (char >= 97 && char <= 122) - tmp$ = char - 97 + 10 | 0; - else - tmp$ = -1; - var it = tmp$; - return it >= radix ? -1 : it; - } - function RegexOption(name, ordinal, value) { - Enum.call(this); - this.value = value; - this.name$ = name; - this.ordinal$ = ordinal; - } - function RegexOption_initFields() { - RegexOption_initFields = function () { - }; - RegexOption$IGNORE_CASE_instance = new RegexOption('IGNORE_CASE', 0, 'i'); - RegexOption$MULTILINE_instance = new RegexOption('MULTILINE', 1, 'm'); - } - var RegexOption$IGNORE_CASE_instance; - function RegexOption$IGNORE_CASE_getInstance() { - RegexOption_initFields(); - return RegexOption$IGNORE_CASE_instance; - } - var RegexOption$MULTILINE_instance; - function RegexOption$MULTILINE_getInstance() { - RegexOption_initFields(); - return RegexOption$MULTILINE_instance; - } - RegexOption.$metadata$ = {kind: Kind_CLASS, simpleName: 'RegexOption', interfaces: [Enum]}; - function RegexOption$values() { - return [RegexOption$IGNORE_CASE_getInstance(), RegexOption$MULTILINE_getInstance()]; - } - RegexOption.values = RegexOption$values; - function RegexOption$valueOf(name) { - switch (name) { - case 'IGNORE_CASE': - return RegexOption$IGNORE_CASE_getInstance(); - case 'MULTILINE': - return RegexOption$MULTILINE_getInstance(); - default:throwISE('No enum constant kotlin.text.RegexOption.' + name); - } - } - RegexOption.valueOf_61zpoe$ = RegexOption$valueOf; - function MatchGroup(value) { - this.value = value; - } - MatchGroup.$metadata$ = {kind: Kind_CLASS, simpleName: 'MatchGroup', interfaces: []}; - MatchGroup.prototype.component1 = function () { - return this.value; - }; - MatchGroup.prototype.copy_61zpoe$ = function (value) { - return new MatchGroup(value === void 0 ? this.value : value); - }; - MatchGroup.prototype.toString = function () { - return 'MatchGroup(value=' + Kotlin.toString(this.value) + ')'; - }; - MatchGroup.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.value) | 0; - return result; - }; - MatchGroup.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.value, other.value)))); - }; - function Regex(pattern, options) { - Regex$Companion_getInstance(); - this.pattern = pattern; - this.options = toSet_8(options); - var destination = ArrayList_init_0(collectionSizeOrDefault(options, 10)); - var tmp$; - tmp$ = options.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(item.value); - } - this.nativePattern_0 = new RegExp(pattern, joinToString_8(destination, '') + 'g'); - } - Regex.prototype.matches_6bul2c$ = function (input) { - reset(this.nativePattern_0); - var match = this.nativePattern_0.exec(input.toString()); - return match != null && match.index === 0 && this.nativePattern_0.lastIndex === input.length; - }; - Regex.prototype.containsMatchIn_6bul2c$ = function (input) { - reset(this.nativePattern_0); - return this.nativePattern_0.test(input.toString()); - }; - Regex.prototype.find_905azu$ = function (input, startIndex) { - if (startIndex === void 0) - startIndex = 0; - return findNext(this.nativePattern_0, input.toString(), startIndex); - }; - function Regex$findAll$lambda(closure$input, closure$startIndex, this$Regex) { - return function () { - return this$Regex.find_905azu$(closure$input, closure$startIndex); - }; - } - function Regex$findAll$lambda_0(match) { - return match.next(); - } - Regex.prototype.findAll_905azu$ = function (input, startIndex) { - if (startIndex === void 0) - startIndex = 0; - return generateSequence_1(Regex$findAll$lambda(input, startIndex, this), Regex$findAll$lambda_0); - }; - Regex.prototype.matchEntire_6bul2c$ = function (input) { - if (startsWith_1(this.pattern, 94) && endsWith_0(this.pattern, 36)) - return this.find_905azu$(input); - else - return (new Regex('^' + trimEnd_2(trimStart_2(this.pattern, Kotlin.charArrayOf(94)), Kotlin.charArrayOf(36)) + '$', this.options)).find_905azu$(input); - }; - Regex.prototype.replace_x2uqeu$ = function (input, replacement) { - return input.toString().replace(this.nativePattern_0, replacement); - }; - Regex.prototype.replace_20wsma$ = defineInlineFunction('kotlin.kotlin.text.Regex.replace_20wsma$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init_za3lpa$; - var ensureNotNull = Kotlin.ensureNotNull; - return function (input, transform) { - var match = this.find_905azu$(input); - if (match == null) - return input.toString(); - var lastStart = 0; - var length = input.length; - var sb = StringBuilder_init(length); - do { - var foundMatch = ensureNotNull(match); - sb.append_ezbsdh$(input, lastStart, foundMatch.range.start); - sb.append_gw00v9$(transform(foundMatch)); - lastStart = foundMatch.range.endInclusive + 1 | 0; - match = foundMatch.next(); - } - while (lastStart < length && match != null); - if (lastStart < length) { - sb.append_ezbsdh$(input, lastStart, length); - } - return sb.toString(); - }; - })); - Regex.prototype.replaceFirst_x2uqeu$ = function (input, replacement) { - var $receiver = this.options; - var destination = ArrayList_init_0(collectionSizeOrDefault($receiver, 10)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(item.value); - } - var nonGlobalOptions = joinToString_8(destination, ''); - return input.toString().replace(new RegExp(this.pattern, nonGlobalOptions), replacement); - }; - Regex.prototype.split_905azu$ = function (input, limit) { - if (limit === void 0) - limit = 0; - var tmp$; - if (!(limit >= 0)) { - var message = 'Limit must be non-negative, but was ' + limit; - throw IllegalArgumentException_init_0(message.toString()); - } - var it = this.findAll_905azu$(input); - var matches = limit === 0 ? it : take_9(it, limit - 1 | 0); - var result = ArrayList_init(); - var lastStart = 0; - tmp$ = matches.iterator(); - while (tmp$.hasNext()) { - var match = tmp$.next(); - result.add_11rb$(Kotlin.subSequence(input, lastStart, match.range.start).toString()); - lastStart = match.range.endInclusive + 1 | 0; - } - result.add_11rb$(Kotlin.subSequence(input, lastStart, input.length).toString()); - return result; - }; - Regex.prototype.toString = function () { - return this.nativePattern_0.toString(); - }; - function Regex$Companion() { - Regex$Companion_instance = this; - this.patternEscape_0 = new RegExp('[-\\\\^$*+?.()|[\\]{}]', 'g'); - this.replacementEscape_0 = new RegExp('\\$', 'g'); - } - Regex$Companion.prototype.fromLiteral_61zpoe$ = function (literal) { - return Regex_init_0(this.escape_61zpoe$(literal)); - }; - Regex$Companion.prototype.escape_61zpoe$ = function (literal) { - return literal.replace(this.patternEscape_0, '\\$&'); - }; - Regex$Companion.prototype.escapeReplacement_61zpoe$ = function (literal) { - return literal.replace(this.replacementEscape_0, '$$$$'); - }; - Regex$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var Regex$Companion_instance = null; - function Regex$Companion_getInstance() { - if (Regex$Companion_instance === null) { - new Regex$Companion(); - } - return Regex$Companion_instance; - } - Regex.$metadata$ = {kind: Kind_CLASS, simpleName: 'Regex', interfaces: []}; - function Regex_init(pattern, option, $this) { - $this = $this || Object.create(Regex.prototype); - Regex.call($this, pattern, setOf(option)); - return $this; - } - function Regex_init_0(pattern, $this) { - $this = $this || Object.create(Regex.prototype); - Regex.call($this, pattern, emptySet()); - return $this; - } - function Regex_0(pattern, option) { - return new Regex(pattern, setOf(option)); - } - function Regex_1(pattern) { - return new Regex(pattern, emptySet()); - } - function findNext$ObjectLiteral(closure$match, this$findNext, closure$input, closure$range) { - this.closure$match = closure$match; - this.this$findNext = this$findNext; - this.closure$input = closure$input; - this.closure$range = closure$range; - this.range_co6b9w$_0 = closure$range; - this.groups_qcaztb$_0 = new findNext$ObjectLiteral$groups$ObjectLiteral(closure$match); - this.groupValues__0 = null; - } - Object.defineProperty(findNext$ObjectLiteral.prototype, 'range', {get: function () { - return this.range_co6b9w$_0; - }}); - Object.defineProperty(findNext$ObjectLiteral.prototype, 'value', {get: function () { - return ensureNotNull(this.closure$match[0]); - }}); - Object.defineProperty(findNext$ObjectLiteral.prototype, 'groups', {get: function () { - return this.groups_qcaztb$_0; - }}); - function findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral(closure$match) { - this.closure$match = closure$match; - AbstractList.call(this); - } - Object.defineProperty(findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral.prototype, 'size', {get: function () { - return this.closure$match.length; - }}); - findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral.prototype.get_za3lpa$ = function (index) { - var tmp$; - return (tmp$ = this.closure$match[index]) != null ? tmp$ : ''; - }; - findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractList]}; - Object.defineProperty(findNext$ObjectLiteral.prototype, 'groupValues', {get: function () { - if (this.groupValues__0 == null) { - this.groupValues__0 = new findNext$ObjectLiteral$get_findNext$ObjectLiteral$groupValues$ObjectLiteral(this.closure$match); - } - return ensureNotNull(this.groupValues__0); - }}); - findNext$ObjectLiteral.prototype.next = function () { - return findNext(this.this$findNext, this.closure$input, this.closure$range.isEmpty() ? this.closure$range.start + 1 | 0 : this.closure$range.endInclusive + 1 | 0); - }; - function findNext$ObjectLiteral$groups$ObjectLiteral(closure$match) { - this.closure$match = closure$match; - AbstractCollection.call(this); - } - Object.defineProperty(findNext$ObjectLiteral$groups$ObjectLiteral.prototype, 'size', {get: function () { - return this.closure$match.length; - }}); - function findNext$ObjectLiteral$groups$ObjectLiteral$iterator$lambda(this$) { - return function (it) { - return this$.get_za3lpa$(it); - }; - } - findNext$ObjectLiteral$groups$ObjectLiteral.prototype.iterator = function () { - return map_10(asSequence_8(get_indices_12(this)), findNext$ObjectLiteral$groups$ObjectLiteral$iterator$lambda(this)).iterator(); - }; - findNext$ObjectLiteral$groups$ObjectLiteral.prototype.get_za3lpa$ = function (index) { - var tmp$; - return (tmp$ = this.closure$match[index]) != null ? new MatchGroup(tmp$) : null; - }; - findNext$ObjectLiteral$groups$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractCollection, MatchGroupCollection]}; - findNext$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [MatchResult]}; - function findNext($receiver, input, from) { - $receiver.lastIndex = from; - var match = $receiver.exec(input); - if (match == null) - return null; - var range = new IntRange(match.index, $receiver.lastIndex - 1 | 0); - return new findNext$ObjectLiteral(match, $receiver, input, range); - } - function Comparator$ObjectLiteral_0(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral_0.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral_0.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function String_1(chars) { - var tmp$; - var result = ''; - for (tmp$ = 0; tmp$ !== chars.length; ++tmp$) { - var char = unboxChar(chars[tmp$]); - result += String.fromCharCode(char); - } - return result; - } - function String_2(chars, offset, length) { - var tmp$; - if (offset < 0 || length < 0 || (chars.length - offset | 0) < length) - throw new IndexOutOfBoundsException('size: ' + chars.length + '; offset: ' + offset + '; length: ' + length); - var result = ''; - tmp$ = offset + length | 0; - for (var index = offset; index < tmp$; index++) { - result += String.fromCharCode(chars[index]); - } - return result; - } - function concatToString($receiver) { - var tmp$; - var result = ''; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var char = unboxChar($receiver[tmp$]); - result += String.fromCharCode(char); - } - return result; - } - function concatToString_0($receiver, startIndex, endIndex) { - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - AbstractList$Companion_getInstance().checkBoundsIndexes_cub51b$(startIndex, endIndex, $receiver.length); - var result = ''; - for (var index = startIndex; index < endIndex; index++) { - result += String.fromCharCode($receiver[index]); - } - return result; - } - function toCharArray$lambda_0(this$toCharArray) { - return function (it) { - return toBoxedChar(this$toCharArray.charCodeAt(it)); - }; - } - function toCharArray_1($receiver) { - return Kotlin.charArrayF($receiver.length, toCharArray$lambda_0($receiver)); - } - function toCharArray$lambda_1(closure$startIndex, this$toCharArray) { - return function (it) { - return toBoxedChar(this$toCharArray.charCodeAt(closure$startIndex + it | 0)); - }; - } - function toCharArray_2($receiver, startIndex, endIndex) { - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - AbstractList$Companion_getInstance().checkBoundsIndexes_cub51b$(startIndex, endIndex, $receiver.length); - return Kotlin.charArrayF(endIndex - startIndex | 0, toCharArray$lambda_1(startIndex, $receiver)); - } - function decodeToString($receiver) { - return decodeUtf8($receiver, 0, $receiver.length, false); - } - function decodeToString_0($receiver, startIndex, endIndex, throwOnInvalidSequence) { - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - if (throwOnInvalidSequence === void 0) - throwOnInvalidSequence = false; - AbstractList$Companion_getInstance().checkBoundsIndexes_cub51b$(startIndex, endIndex, $receiver.length); - return decodeUtf8($receiver, startIndex, endIndex, throwOnInvalidSequence); - } - function encodeToByteArray($receiver) { - return encodeUtf8($receiver, 0, $receiver.length, false); - } - function encodeToByteArray_0($receiver, startIndex, endIndex, throwOnInvalidSequence) { - if (startIndex === void 0) - startIndex = 0; - if (endIndex === void 0) - endIndex = $receiver.length; - if (throwOnInvalidSequence === void 0) - throwOnInvalidSequence = false; - AbstractList$Companion_getInstance().checkBoundsIndexes_cub51b$(startIndex, endIndex, $receiver.length); - return encodeUtf8($receiver, startIndex, endIndex, throwOnInvalidSequence); - } - var toUpperCase_0 = defineInlineFunction('kotlin.kotlin.text.toUpperCase_pdl1vz$', function ($receiver) { - return $receiver.toUpperCase(); - }); - var toLowerCase_0 = defineInlineFunction('kotlin.kotlin.text.toLowerCase_pdl1vz$', function ($receiver) { - return $receiver.toLowerCase(); - }); - var nativeIndexOf = defineInlineFunction('kotlin.kotlin.text.nativeIndexOf_qhc31e$', function ($receiver, str, fromIndex) { - return $receiver.indexOf(str, fromIndex); - }); - var nativeLastIndexOf = defineInlineFunction('kotlin.kotlin.text.nativeLastIndexOf_qhc31e$', function ($receiver, str, fromIndex) { - return $receiver.lastIndexOf(str, fromIndex); - }); - var nativeStartsWith = defineInlineFunction('kotlin.kotlin.text.nativeStartsWith_qhc31e$', function ($receiver, s, position) { - return $receiver.startsWith(s, position); - }); - var nativeEndsWith = defineInlineFunction('kotlin.kotlin.text.nativeEndsWith_7azisw$', function ($receiver, s) { - return $receiver.endsWith(s); - }); - var substring = defineInlineFunction('kotlin.kotlin.text.substring_6ic1pp$', function ($receiver, startIndex) { - return $receiver.substring(startIndex); - }); - var substring_0 = defineInlineFunction('kotlin.kotlin.text.substring_qgyqat$', function ($receiver, startIndex, endIndex) { - return $receiver.substring(startIndex, endIndex); - }); - var concat_0 = defineInlineFunction('kotlin.kotlin.text.concat_rjktp$', function ($receiver, str) { - return $receiver.concat(str); - }); - var match = defineInlineFunction('kotlin.kotlin.text.match_rjktp$', function ($receiver, regex) { - return $receiver.match(regex); - }); - var nativeReplace = defineInlineFunction('kotlin.kotlin.text.nativeReplace_qmc7pb$', function ($receiver, pattern, replacement) { - return $receiver.replace(pattern, replacement); - }); - function compareTo($receiver, other, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (ignoreCase) { - var n1 = $receiver.length; - var n2 = other.length; - var min = Math_0.min(n1, n2); - if (min === 0) - return n1 - n2 | 0; - var start = 0; - while (true) { - var end = Math_0.min(start + 16 | 0, min); - var s1 = $receiver.substring(start, end); - var s2 = other.substring(start, end); - if (!equals(s1, s2)) { - s1 = s1.toUpperCase(); - s2 = s2.toUpperCase(); - if (!equals(s1, s2)) { - s1 = s1.toLowerCase(); - s2 = s2.toLowerCase(); - if (!equals(s1, s2)) { - return Kotlin.compareTo(s1, s2); - } - } - } - if (end === min) - break; - start = end; - } - return n1 - n2 | 0; - } - else { - return Kotlin.compareTo($receiver, other); - } - } - function STRING_CASE_INSENSITIVE_ORDER$lambda(a, b) { - return compareTo(a, b, true); - } - var STRING_CASE_INSENSITIVE_ORDER; - function get_CASE_INSENSITIVE_ORDER($receiver) { - return STRING_CASE_INSENSITIVE_ORDER; - } - var nativeIndexOf_0 = defineInlineFunction('kotlin.kotlin.text.nativeIndexOf_p4qy6f$', function ($receiver, ch, fromIndex) { - return $receiver.indexOf(String.fromCharCode(ch), fromIndex); - }); - var nativeLastIndexOf_0 = defineInlineFunction('kotlin.kotlin.text.nativeLastIndexOf_p4qy6f$', function ($receiver, ch, fromIndex) { - return $receiver.lastIndexOf(String.fromCharCode(ch), fromIndex); - }); - function startsWith($receiver, prefix, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase) { - return $receiver.startsWith(prefix, 0); - } - else - return regionMatches($receiver, 0, prefix, 0, prefix.length, ignoreCase); - } - function startsWith_0($receiver, prefix, startIndex, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase) { - return $receiver.startsWith(prefix, startIndex); - } - else - return regionMatches($receiver, startIndex, prefix, 0, prefix.length, ignoreCase); - } - function endsWith($receiver, suffix, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase) { - return $receiver.endsWith(suffix); - } - else - return regionMatches($receiver, $receiver.length - suffix.length | 0, suffix, 0, suffix.length, ignoreCase); - } - function matches($receiver, regex) { - var result = $receiver.match(regex); - return result != null && result.length !== 0; - } - function isBlank($receiver) { - return $receiver.length === 0 || matches(typeof $receiver === 'string' ? $receiver : $receiver.toString(), '^[\\s\\xA0]+$'); - } - function equals_0($receiver, other, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - var tmp$; - if ($receiver == null) - tmp$ = other == null; - else { - var tmp$_0; - if (!ignoreCase) - tmp$_0 = equals($receiver, other); - else { - var tmp$_1 = other != null; - if (tmp$_1) { - tmp$_1 = equals($receiver.toLowerCase(), other.toLowerCase()); - } - tmp$_0 = tmp$_1; - } - tmp$ = tmp$_0; - } - return tmp$; - } - function regionMatches($receiver, thisOffset, other, otherOffset, length, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return regionMatchesImpl($receiver, thisOffset, other, otherOffset, length, ignoreCase); - } - function capitalize($receiver) { - return $receiver.length > 0 ? $receiver.substring(0, 1).toUpperCase() + $receiver.substring(1) : $receiver; - } - function decapitalize($receiver) { - return $receiver.length > 0 ? $receiver.substring(0, 1).toLowerCase() + $receiver.substring(1) : $receiver; - } - function repeat($receiver, n) { - var tmp$; - if (!(n >= 0)) { - var message = "Count 'n' must be non-negative, but was " + n + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - switch (n) { - case 0: - tmp$ = ''; - break; - case 1: - tmp$ = $receiver.toString(); - break; - default:var result = ''; - if (!($receiver.length === 0)) { - var s = $receiver.toString(); - var count = n; - while (true) { - if ((count & 1) === 1) { - result += s; - } - count = count >>> 1; - if (count === 0) { - break; - } - s += s; - } - } - - return result; - } - return tmp$; - } - function replace($receiver, oldValue, newValue, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return $receiver.replace(new RegExp(Regex$Companion_getInstance().escape_61zpoe$(oldValue), ignoreCase ? 'gi' : 'g'), Regex$Companion_getInstance().escapeReplacement_61zpoe$(newValue)); - } - function replace_0($receiver, oldChar, newChar, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return $receiver.replace(new RegExp(Regex$Companion_getInstance().escape_61zpoe$(String.fromCharCode(oldChar)), ignoreCase ? 'gi' : 'g'), String.fromCharCode(newChar)); - } - function replaceFirst($receiver, oldValue, newValue, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return $receiver.replace(new RegExp(Regex$Companion_getInstance().escape_61zpoe$(oldValue), ignoreCase ? 'i' : ''), Regex$Companion_getInstance().escapeReplacement_61zpoe$(newValue)); - } - function replaceFirst_0($receiver, oldChar, newChar, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return $receiver.replace(new RegExp(Regex$Companion_getInstance().escape_61zpoe$(String.fromCharCode(oldChar)), ignoreCase ? 'i' : ''), String.fromCharCode(newChar)); - } - function Appendable() { - } - Appendable.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Appendable', interfaces: []}; - function StringBuilder(content) { - if (content === void 0) - content = ''; - this.string_0 = content; - } - Object.defineProperty(StringBuilder.prototype, 'length', {get: function () { - return this.string_0.length; - }}); - StringBuilder.prototype.charCodeAt = function (index) { - var $receiver = this.string_0; - var tmp$; - if (index >= 0 && index <= get_lastIndex_13($receiver)) - tmp$ = $receiver.charCodeAt(index); - else { - throw new IndexOutOfBoundsException('index: ' + index + ', length: ' + this.length + '}'); - } - return tmp$; - }; - StringBuilder.prototype.subSequence_vux9f0$ = function (startIndex, endIndex) { - return this.string_0.substring(startIndex, endIndex); - }; - StringBuilder.prototype.append_s8itvh$ = function (c) { - this.string_0 += String.fromCharCode(c); - return this; - }; - StringBuilder.prototype.append_gw00v9$ = function (csq) { - this.string_0 += toString(csq); - return this; - }; - StringBuilder.prototype.append_ezbsdh$ = function (csq, start, end) { - this.string_0 += toString(csq).substring(start, end); - return this; - }; - StringBuilder.prototype.append_s8jyv4$ = function (obj) { - this.string_0 += toString(obj); - return this; - }; - StringBuilder.prototype.reverse = function () { - this.string_0 = this.string_0.split('').reverse().join(''); - return this; - }; - StringBuilder.prototype.clear = function () { - this.string_0 = ''; - return this; - }; - StringBuilder.prototype.toString = function () { - return this.string_0; - }; - StringBuilder.$metadata$ = {kind: Kind_CLASS, simpleName: 'StringBuilder', interfaces: [CharSequence, Appendable]}; - function StringBuilder_init(capacity, $this) { - $this = $this || Object.create(StringBuilder.prototype); - StringBuilder_init_1($this); - return $this; - } - function StringBuilder_init_0(content, $this) { - $this = $this || Object.create(StringBuilder.prototype); - StringBuilder.call($this, content.toString()); - return $this; - } - function StringBuilder_init_1($this) { - $this = $this || Object.create(StringBuilder.prototype); - StringBuilder.call($this, ''); - return $this; - } - var clear_0 = defineInlineFunction('kotlin.kotlin.text.clear_dn5lc7$', function ($receiver) { - return $receiver.clear(); - }); - function CharacterCodingException(message) { - Exception_init_0(message, this); - this.name = 'CharacterCodingException'; - } - CharacterCodingException.$metadata$ = {kind: Kind_CLASS, simpleName: 'CharacterCodingException', interfaces: [Exception]}; - function CharacterCodingException_init($this) { - $this = $this || Object.create(CharacterCodingException.prototype); - CharacterCodingException.call($this, null); - return $this; - } - function malformed(size, index, throwOnMalformed) { - if (throwOnMalformed) - throw new CharacterCodingException('Malformed sequence starting at ' + (index - 1 | 0)); - return -size | 0; - } - function codePointFromSurrogate(string, high, index, endIndex, throwOnMalformed) { - if (!(55296 <= high && high <= 56319) || index >= endIndex) { - return malformed(0, index, throwOnMalformed); - } - var low = string.charCodeAt(index) | 0; - if (!(56320 <= low && low <= 57343)) { - return malformed(0, index, throwOnMalformed); - } - return 65536 + ((high & 1023) << 10) | low & 1023; - } - function codePointFrom2(bytes, byte1, index, endIndex, throwOnMalformed) { - if ((byte1 & 30) === 0 || index >= endIndex) { - return malformed(0, index, throwOnMalformed); - } - var byte2 = bytes[index]; - if ((byte2 & 192) !== 128) { - return malformed(0, index, throwOnMalformed); - } - return byte1 << 6 ^ byte2 ^ 3968; - } - function codePointFrom3(bytes, byte1, index, endIndex, throwOnMalformed) { - if (index >= endIndex) { - return malformed(0, index, throwOnMalformed); - } - var byte2 = bytes[index]; - if ((byte1 & 15) === 0) { - if ((byte2 & 224) !== 160) { - return malformed(0, index, throwOnMalformed); - } - } - else if ((byte1 & 15) === 13) { - if ((byte2 & 224) !== 128) { - return malformed(0, index, throwOnMalformed); - } - } - else if ((byte2 & 192) !== 128) { - return malformed(0, index, throwOnMalformed); - } - if ((index + 1 | 0) === endIndex) { - return malformed(1, index, throwOnMalformed); - } - var byte3 = bytes[index + 1 | 0]; - if ((byte3 & 192) !== 128) { - return malformed(1, index, throwOnMalformed); - } - return byte1 << 12 ^ byte2 << 6 ^ byte3 ^ -123008; - } - function codePointFrom4(bytes, byte1, index, endIndex, throwOnMalformed) { - if (index >= endIndex) { - malformed(0, index, throwOnMalformed); - } - var byte2 = bytes[index]; - if ((byte1 & 15) === 0) { - if ((byte2 & 240) <= 128) { - return malformed(0, index, throwOnMalformed); - } - } - else if ((byte1 & 15) === 4) { - if ((byte2 & 240) !== 128) { - return malformed(0, index, throwOnMalformed); - } - } - else if ((byte1 & 15) > 4) { - return malformed(0, index, throwOnMalformed); - } - else if ((byte2 & 192) !== 128) { - return malformed(0, index, throwOnMalformed); - } - if ((index + 1 | 0) === endIndex) { - return malformed(1, index, throwOnMalformed); - } - var byte3 = bytes[index + 1 | 0]; - if ((byte3 & 192) !== 128) { - return malformed(1, index, throwOnMalformed); - } - if ((index + 2 | 0) === endIndex) { - return malformed(2, index, throwOnMalformed); - } - var byte4 = bytes[index + 2 | 0]; - if ((byte4 & 192) !== 128) { - return malformed(2, index, throwOnMalformed); - } - return byte1 << 18 ^ byte2 << 12 ^ byte3 << 6 ^ byte4 ^ 3678080; - } - var MAX_BYTES_PER_CHAR; - var REPLACEMENT_BYTE_SEQUENCE; - function encodeUtf8(string, startIndex, endIndex, throwOnMalformed) { - var tmp$, tmp$_0, tmp$_1, tmp$_2, tmp$_3, tmp$_4, tmp$_5, tmp$_6, tmp$_7, tmp$_8, tmp$_9, tmp$_10, tmp$_11, tmp$_12; - if (!(startIndex >= 0 && endIndex <= string.length && startIndex <= endIndex)) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var bytes = new Int8Array((endIndex - startIndex | 0) * 3 | 0); - var byteIndex = 0; - var charIndex = startIndex; - while (charIndex < endIndex) { - var code = string.charCodeAt((tmp$ = charIndex, charIndex = tmp$ + 1 | 0, tmp$)) | 0; - if (code < 128) { - bytes[tmp$_0 = byteIndex, byteIndex = tmp$_0 + 1 | 0, tmp$_0] = toByte(code); - } - else if (code < 2048) { - bytes[tmp$_1 = byteIndex, byteIndex = tmp$_1 + 1 | 0, tmp$_1] = toByte(code >> 6 | 192); - bytes[tmp$_2 = byteIndex, byteIndex = tmp$_2 + 1 | 0, tmp$_2] = toByte(code & 63 | 128); - } - else if (code < 55296 || code >= 57344) { - bytes[tmp$_3 = byteIndex, byteIndex = tmp$_3 + 1 | 0, tmp$_3] = toByte(code >> 12 | 224); - bytes[tmp$_4 = byteIndex, byteIndex = tmp$_4 + 1 | 0, tmp$_4] = toByte(code >> 6 & 63 | 128); - bytes[tmp$_5 = byteIndex, byteIndex = tmp$_5 + 1 | 0, tmp$_5] = toByte(code & 63 | 128); - } - else { - var codePoint = codePointFromSurrogate(string, code, charIndex, endIndex, throwOnMalformed); - if (codePoint <= 0) { - bytes[tmp$_6 = byteIndex, byteIndex = tmp$_6 + 1 | 0, tmp$_6] = REPLACEMENT_BYTE_SEQUENCE[0]; - bytes[tmp$_7 = byteIndex, byteIndex = tmp$_7 + 1 | 0, tmp$_7] = REPLACEMENT_BYTE_SEQUENCE[1]; - bytes[tmp$_8 = byteIndex, byteIndex = tmp$_8 + 1 | 0, tmp$_8] = REPLACEMENT_BYTE_SEQUENCE[2]; - } - else { - bytes[tmp$_9 = byteIndex, byteIndex = tmp$_9 + 1 | 0, tmp$_9] = toByte(codePoint >> 18 | 240); - bytes[tmp$_10 = byteIndex, byteIndex = tmp$_10 + 1 | 0, tmp$_10] = toByte(codePoint >> 12 & 63 | 128); - bytes[tmp$_11 = byteIndex, byteIndex = tmp$_11 + 1 | 0, tmp$_11] = toByte(codePoint >> 6 & 63 | 128); - bytes[tmp$_12 = byteIndex, byteIndex = tmp$_12 + 1 | 0, tmp$_12] = toByte(codePoint & 63 | 128); - charIndex = charIndex + 1 | 0; - } - } - } - return bytes.length === byteIndex ? bytes : copyOf_16(bytes, byteIndex); - } - var REPLACEMENT_CHAR; - function decodeUtf8(bytes, startIndex, endIndex, throwOnMalformed) { - var tmp$; - if (!(startIndex >= 0 && endIndex <= bytes.length && startIndex <= endIndex)) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var byteIndex = startIndex; - var stringBuilder = StringBuilder_init_1(); - while (byteIndex < endIndex) { - var byte = bytes[tmp$ = byteIndex, byteIndex = tmp$ + 1 | 0, tmp$]; - if (byte >= 0) - stringBuilder.append_s8itvh$(toChar(byte)); - else if (byte >> 5 === -2) { - var code = codePointFrom2(bytes, byte, byteIndex, endIndex, throwOnMalformed); - if (code <= 0) { - stringBuilder.append_s8itvh$(REPLACEMENT_CHAR); - byteIndex = byteIndex + (-code | 0) | 0; - } - else { - stringBuilder.append_s8itvh$(toChar(code)); - byteIndex = byteIndex + 1 | 0; - } - } - else if (byte >> 4 === -2) { - var code_0 = codePointFrom3(bytes, byte, byteIndex, endIndex, throwOnMalformed); - if (code_0 <= 0) { - stringBuilder.append_s8itvh$(REPLACEMENT_CHAR); - byteIndex = byteIndex + (-code_0 | 0) | 0; - } - else { - stringBuilder.append_s8itvh$(toChar(code_0)); - byteIndex = byteIndex + 2 | 0; - } - } - else if (byte >> 3 === -2) { - var code_1 = codePointFrom4(bytes, byte, byteIndex, endIndex, throwOnMalformed); - if (code_1 <= 0) { - stringBuilder.append_s8itvh$(REPLACEMENT_CHAR); - byteIndex = byteIndex + (-code_1 | 0) | 0; - } - else { - var high = code_1 - 65536 >> 10 | 55296; - var low = code_1 & 1023 | 56320; - stringBuilder.append_s8itvh$(toChar(high)); - stringBuilder.append_s8itvh$(toChar(low)); - byteIndex = byteIndex + 3 | 0; - } - } - else { - malformed(0, byteIndex, throwOnMalformed); - stringBuilder.append_s8itvh$(REPLACEMENT_CHAR); - } - } - return stringBuilder.toString(); - } - var WebGLContextAttributes = defineInlineFunction('kotlin.org.khronos.webgl.WebGLContextAttributes_2tn698$', function (alpha, depth, stencil, antialias, premultipliedAlpha, preserveDrawingBuffer, preferLowPowerToHighPerformance, failIfMajorPerformanceCaveat) { - if (alpha === void 0) - alpha = true; - if (depth === void 0) - depth = true; - if (stencil === void 0) - stencil = false; - if (antialias === void 0) - antialias = true; - if (premultipliedAlpha === void 0) - premultipliedAlpha = true; - if (preserveDrawingBuffer === void 0) - preserveDrawingBuffer = false; - if (preferLowPowerToHighPerformance === void 0) - preferLowPowerToHighPerformance = false; - if (failIfMajorPerformanceCaveat === void 0) - failIfMajorPerformanceCaveat = false; - var o = {}; - o['alpha'] = alpha; - o['depth'] = depth; - o['stencil'] = stencil; - o['antialias'] = antialias; - o['premultipliedAlpha'] = premultipliedAlpha; - o['preserveDrawingBuffer'] = preserveDrawingBuffer; - o['preferLowPowerToHighPerformance'] = preferLowPowerToHighPerformance; - o['failIfMajorPerformanceCaveat'] = failIfMajorPerformanceCaveat; - return o; - }); - var WebGLContextEventInit = defineInlineFunction('kotlin.org.khronos.webgl.WebGLContextEventInit_cndsqx$', function (statusMessage, bubbles, cancelable, composed) { - if (statusMessage === void 0) - statusMessage = ''; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['statusMessage'] = statusMessage; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var get_1 = defineInlineFunction('kotlin.org.khronos.webgl.get_xri1zq$', function ($receiver, index) { - return $receiver[index]; - }); - var set_0 = defineInlineFunction('kotlin.org.khronos.webgl.set_wq71gh$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_2 = defineInlineFunction('kotlin.org.khronos.webgl.get_9zp3y9$', function ($receiver, index) { - return $receiver[index]; - }); - var set_1 = defineInlineFunction('kotlin.org.khronos.webgl.set_amemmi$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_3 = defineInlineFunction('kotlin.org.khronos.webgl.get_2joiyx$', function ($receiver, index) { - return $receiver[index]; - }); - var set_2 = defineInlineFunction('kotlin.org.khronos.webgl.set_ttcilq$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_4 = defineInlineFunction('kotlin.org.khronos.webgl.get_cwlqq1$', function ($receiver, index) { - return $receiver[index]; - }); - var set_3 = defineInlineFunction('kotlin.org.khronos.webgl.set_3szanw$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_5 = defineInlineFunction('kotlin.org.khronos.webgl.get_vhpjqk$', function ($receiver, index) { - return $receiver[index]; - }); - var set_4 = defineInlineFunction('kotlin.org.khronos.webgl.set_vhgf5b$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_6 = defineInlineFunction('kotlin.org.khronos.webgl.get_6ngfjl$', function ($receiver, index) { - return $receiver[index]; - }); - var set_5 = defineInlineFunction('kotlin.org.khronos.webgl.set_yyuw59$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_7 = defineInlineFunction('kotlin.org.khronos.webgl.get_jzcbyy$', function ($receiver, index) { - return $receiver[index]; - }); - var set_6 = defineInlineFunction('kotlin.org.khronos.webgl.set_7aci94$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_8 = defineInlineFunction('kotlin.org.khronos.webgl.get_vvlk2q$', function ($receiver, index) { - return $receiver[index]; - }); - var set_7 = defineInlineFunction('kotlin.org.khronos.webgl.set_rpd3xf$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var get_9 = defineInlineFunction('kotlin.org.khronos.webgl.get_yg2kxp$', function ($receiver, index) { - return $receiver[index]; - }); - var set_8 = defineInlineFunction('kotlin.org.khronos.webgl.set_ogqgs1$', function ($receiver, index, value) { - $receiver[index] = value; - }); - var ClipboardEventInit = defineInlineFunction('kotlin.org.w3c.dom.clipboard.ClipboardEventInit_s22cuj$', function (clipboardData, bubbles, cancelable, composed) { - if (clipboardData === void 0) - clipboardData = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['clipboardData'] = clipboardData; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ClipboardPermissionDescriptor = defineInlineFunction('kotlin.org.w3c.dom.clipboard.ClipboardPermissionDescriptor_1v8dbw$', function (allowWithoutGesture) { - if (allowWithoutGesture === void 0) - allowWithoutGesture = false; - var o = {}; - o['allowWithoutGesture'] = allowWithoutGesture; - return o; - }); - var get_10 = defineInlineFunction('kotlin.org.w3c.dom.css.get_hzg8kz$', function ($receiver, index) { - return $receiver[index]; - }); - var get_11 = defineInlineFunction('kotlin.org.w3c.dom.css.get_vcm0yf$', function ($receiver, index) { - return $receiver[index]; - }); - var get_12 = defineInlineFunction('kotlin.org.w3c.dom.css.get_yovegz$', function ($receiver, index) { - return $receiver[index]; - }); - var get_13 = defineInlineFunction('kotlin.org.w3c.dom.css.get_nb2c3o$', function ($receiver, index) { - return $receiver[index]; - }); - var UIEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.UIEventInit_b3va2d$', function (view, detail, bubbles, cancelable, composed) { - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var FocusEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.FocusEventInit_4fuajv$', function (relatedTarget, view, detail, bubbles, cancelable, composed) { - if (relatedTarget === void 0) - relatedTarget = null; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['relatedTarget'] = relatedTarget; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var MouseEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.MouseEventInit_w16xh5$', function (screenX, screenY, clientX, clientY, button, buttons, relatedTarget, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed) { - if (screenX === void 0) - screenX = 0; - if (screenY === void 0) - screenY = 0; - if (clientX === void 0) - clientX = 0; - if (clientY === void 0) - clientY = 0; - if (button === void 0) - button = 0; - if (buttons === void 0) - buttons = 0; - if (relatedTarget === void 0) - relatedTarget = null; - if (ctrlKey === void 0) - ctrlKey = false; - if (shiftKey === void 0) - shiftKey = false; - if (altKey === void 0) - altKey = false; - if (metaKey === void 0) - metaKey = false; - if (modifierAltGraph === void 0) - modifierAltGraph = false; - if (modifierCapsLock === void 0) - modifierCapsLock = false; - if (modifierFn === void 0) - modifierFn = false; - if (modifierFnLock === void 0) - modifierFnLock = false; - if (modifierHyper === void 0) - modifierHyper = false; - if (modifierNumLock === void 0) - modifierNumLock = false; - if (modifierScrollLock === void 0) - modifierScrollLock = false; - if (modifierSuper === void 0) - modifierSuper = false; - if (modifierSymbol === void 0) - modifierSymbol = false; - if (modifierSymbolLock === void 0) - modifierSymbolLock = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['screenX'] = screenX; - o['screenY'] = screenY; - o['clientX'] = clientX; - o['clientY'] = clientY; - o['button'] = button; - o['buttons'] = buttons; - o['relatedTarget'] = relatedTarget; - o['ctrlKey'] = ctrlKey; - o['shiftKey'] = shiftKey; - o['altKey'] = altKey; - o['metaKey'] = metaKey; - o['modifierAltGraph'] = modifierAltGraph; - o['modifierCapsLock'] = modifierCapsLock; - o['modifierFn'] = modifierFn; - o['modifierFnLock'] = modifierFnLock; - o['modifierHyper'] = modifierHyper; - o['modifierNumLock'] = modifierNumLock; - o['modifierScrollLock'] = modifierScrollLock; - o['modifierSuper'] = modifierSuper; - o['modifierSymbol'] = modifierSymbol; - o['modifierSymbolLock'] = modifierSymbolLock; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var EventModifierInit = defineInlineFunction('kotlin.org.w3c.dom.events.EventModifierInit_d8w15x$', function (ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed) { - if (ctrlKey === void 0) - ctrlKey = false; - if (shiftKey === void 0) - shiftKey = false; - if (altKey === void 0) - altKey = false; - if (metaKey === void 0) - metaKey = false; - if (modifierAltGraph === void 0) - modifierAltGraph = false; - if (modifierCapsLock === void 0) - modifierCapsLock = false; - if (modifierFn === void 0) - modifierFn = false; - if (modifierFnLock === void 0) - modifierFnLock = false; - if (modifierHyper === void 0) - modifierHyper = false; - if (modifierNumLock === void 0) - modifierNumLock = false; - if (modifierScrollLock === void 0) - modifierScrollLock = false; - if (modifierSuper === void 0) - modifierSuper = false; - if (modifierSymbol === void 0) - modifierSymbol = false; - if (modifierSymbolLock === void 0) - modifierSymbolLock = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['ctrlKey'] = ctrlKey; - o['shiftKey'] = shiftKey; - o['altKey'] = altKey; - o['metaKey'] = metaKey; - o['modifierAltGraph'] = modifierAltGraph; - o['modifierCapsLock'] = modifierCapsLock; - o['modifierFn'] = modifierFn; - o['modifierFnLock'] = modifierFnLock; - o['modifierHyper'] = modifierHyper; - o['modifierNumLock'] = modifierNumLock; - o['modifierScrollLock'] = modifierScrollLock; - o['modifierSuper'] = modifierSuper; - o['modifierSymbol'] = modifierSymbol; - o['modifierSymbolLock'] = modifierSymbolLock; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var WheelEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.WheelEventInit_jungk3$', function (deltaX, deltaY, deltaZ, deltaMode, screenX, screenY, clientX, clientY, button, buttons, relatedTarget, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed) { - if (deltaX === void 0) - deltaX = 0.0; - if (deltaY === void 0) - deltaY = 0.0; - if (deltaZ === void 0) - deltaZ = 0.0; - if (deltaMode === void 0) - deltaMode = 0; - if (screenX === void 0) - screenX = 0; - if (screenY === void 0) - screenY = 0; - if (clientX === void 0) - clientX = 0; - if (clientY === void 0) - clientY = 0; - if (button === void 0) - button = 0; - if (buttons === void 0) - buttons = 0; - if (relatedTarget === void 0) - relatedTarget = null; - if (ctrlKey === void 0) - ctrlKey = false; - if (shiftKey === void 0) - shiftKey = false; - if (altKey === void 0) - altKey = false; - if (metaKey === void 0) - metaKey = false; - if (modifierAltGraph === void 0) - modifierAltGraph = false; - if (modifierCapsLock === void 0) - modifierCapsLock = false; - if (modifierFn === void 0) - modifierFn = false; - if (modifierFnLock === void 0) - modifierFnLock = false; - if (modifierHyper === void 0) - modifierHyper = false; - if (modifierNumLock === void 0) - modifierNumLock = false; - if (modifierScrollLock === void 0) - modifierScrollLock = false; - if (modifierSuper === void 0) - modifierSuper = false; - if (modifierSymbol === void 0) - modifierSymbol = false; - if (modifierSymbolLock === void 0) - modifierSymbolLock = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['deltaX'] = deltaX; - o['deltaY'] = deltaY; - o['deltaZ'] = deltaZ; - o['deltaMode'] = deltaMode; - o['screenX'] = screenX; - o['screenY'] = screenY; - o['clientX'] = clientX; - o['clientY'] = clientY; - o['button'] = button; - o['buttons'] = buttons; - o['relatedTarget'] = relatedTarget; - o['ctrlKey'] = ctrlKey; - o['shiftKey'] = shiftKey; - o['altKey'] = altKey; - o['metaKey'] = metaKey; - o['modifierAltGraph'] = modifierAltGraph; - o['modifierCapsLock'] = modifierCapsLock; - o['modifierFn'] = modifierFn; - o['modifierFnLock'] = modifierFnLock; - o['modifierHyper'] = modifierHyper; - o['modifierNumLock'] = modifierNumLock; - o['modifierScrollLock'] = modifierScrollLock; - o['modifierSuper'] = modifierSuper; - o['modifierSymbol'] = modifierSymbol; - o['modifierSymbolLock'] = modifierSymbolLock; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var InputEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.InputEventInit_zb3n3s$', function (data, isComposing, view, detail, bubbles, cancelable, composed) { - if (data === void 0) - data = ''; - if (isComposing === void 0) - isComposing = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['data'] = data; - o['isComposing'] = isComposing; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var KeyboardEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.KeyboardEventInit_f1dyzo$', function (key, code, location, repeat, isComposing, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed) { - if (key === void 0) - key = ''; - if (code === void 0) - code = ''; - if (location === void 0) - location = 0; - if (repeat === void 0) - repeat = false; - if (isComposing === void 0) - isComposing = false; - if (ctrlKey === void 0) - ctrlKey = false; - if (shiftKey === void 0) - shiftKey = false; - if (altKey === void 0) - altKey = false; - if (metaKey === void 0) - metaKey = false; - if (modifierAltGraph === void 0) - modifierAltGraph = false; - if (modifierCapsLock === void 0) - modifierCapsLock = false; - if (modifierFn === void 0) - modifierFn = false; - if (modifierFnLock === void 0) - modifierFnLock = false; - if (modifierHyper === void 0) - modifierHyper = false; - if (modifierNumLock === void 0) - modifierNumLock = false; - if (modifierScrollLock === void 0) - modifierScrollLock = false; - if (modifierSuper === void 0) - modifierSuper = false; - if (modifierSymbol === void 0) - modifierSymbol = false; - if (modifierSymbolLock === void 0) - modifierSymbolLock = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['key'] = key; - o['code'] = code; - o['location'] = location; - o['repeat'] = repeat; - o['isComposing'] = isComposing; - o['ctrlKey'] = ctrlKey; - o['shiftKey'] = shiftKey; - o['altKey'] = altKey; - o['metaKey'] = metaKey; - o['modifierAltGraph'] = modifierAltGraph; - o['modifierCapsLock'] = modifierCapsLock; - o['modifierFn'] = modifierFn; - o['modifierFnLock'] = modifierFnLock; - o['modifierHyper'] = modifierHyper; - o['modifierNumLock'] = modifierNumLock; - o['modifierScrollLock'] = modifierScrollLock; - o['modifierSuper'] = modifierSuper; - o['modifierSymbol'] = modifierSymbol; - o['modifierSymbolLock'] = modifierSymbolLock; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var CompositionEventInit = defineInlineFunction('kotlin.org.w3c.dom.events.CompositionEventInit_d8ew9s$', function (data, view, detail, bubbles, cancelable, composed) { - if (data === void 0) - data = ''; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['data'] = data; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var get_14 = defineInlineFunction('kotlin.org.w3c.dom.get_faw09z$', function ($receiver, name) { - return $receiver[name]; - }); - var get_15 = defineInlineFunction('kotlin.org.w3c.dom.get_ewayf0$', function ($receiver, name) { - return $receiver[name]; - }); - var set_9 = defineInlineFunction('kotlin.org.w3c.dom.set_hw3ic1$', function ($receiver, index, option) { - $receiver[index] = option; - }); - var get_16 = defineInlineFunction('kotlin.org.w3c.dom.get_82muyz$', function ($receiver, name) { - return $receiver[name]; - }); - var set_10 = defineInlineFunction('kotlin.org.w3c.dom.set_itmgw7$', function ($receiver, name, value) { - $receiver[name] = value; - }); - var get_17 = defineInlineFunction('kotlin.org.w3c.dom.get_x9t80x$', function ($receiver, index) { - return $receiver[index]; - }); - var get_18 = defineInlineFunction('kotlin.org.w3c.dom.get_s80h6u$', function ($receiver, index) { - return $receiver[index]; - }); - var get_19 = defineInlineFunction('kotlin.org.w3c.dom.get_60td5e$', function ($receiver, index) { - return $receiver[index]; - }); - var get_20 = defineInlineFunction('kotlin.org.w3c.dom.get_5fk35t$', function ($receiver, index) { - return $receiver[index]; - }); - var TrackEventInit = defineInlineFunction('kotlin.org.w3c.dom.TrackEventInit_mfyf40$', function (track, bubbles, cancelable, composed) { - if (track === void 0) - track = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['track'] = track; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var get_21 = defineInlineFunction('kotlin.org.w3c.dom.get_o5xz3$', function ($receiver, index) { - return $receiver[index]; - }); - var get_22 = defineInlineFunction('kotlin.org.w3c.dom.get_ws6i9t$', function ($receiver, name) { - return $receiver[name]; - }); - var get_23 = defineInlineFunction('kotlin.org.w3c.dom.get_kaa3nr$', function ($receiver, index) { - return $receiver[index]; - }); - var set_11 = defineInlineFunction('kotlin.org.w3c.dom.set_9jj6cz$', function ($receiver, index, option) { - $receiver[index] = option; - }); - var RelatedEventInit = defineInlineFunction('kotlin.org.w3c.dom.RelatedEventInit_j4rtn8$', function (relatedTarget, bubbles, cancelable, composed) { - if (relatedTarget === void 0) - relatedTarget = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['relatedTarget'] = relatedTarget; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var AssignedNodesOptions = defineInlineFunction('kotlin.org.w3c.dom.AssignedNodesOptions_1v8dbw$', function (flatten) { - if (flatten === void 0) - flatten = false; - var o = {}; - o['flatten'] = flatten; - return o; - }); - var CanvasRenderingContext2DSettings = defineInlineFunction('kotlin.org.w3c.dom.CanvasRenderingContext2DSettings_1v8dbw$', function (alpha) { - if (alpha === void 0) - alpha = true; - var o = {}; - o['alpha'] = alpha; - return o; - }); - var HitRegionOptions = defineInlineFunction('kotlin.org.w3c.dom.HitRegionOptions_6a0gjt$', function (path, fillRule, id, parentID, cursor, control, label, role) { - if (path === void 0) - path = null; - if (fillRule === void 0) { - fillRule = 'nonzero'; - } - if (id === void 0) - id = ''; - if (parentID === void 0) - parentID = null; - if (cursor === void 0) - cursor = 'inherit'; - if (control === void 0) - control = null; - if (label === void 0) - label = null; - if (role === void 0) - role = null; - var o = {}; - o['path'] = path; - o['fillRule'] = fillRule; - o['id'] = id; - o['parentID'] = parentID; - o['cursor'] = cursor; - o['control'] = control; - o['label'] = label; - o['role'] = role; - return o; - }); - var ImageBitmapRenderingContextSettings = defineInlineFunction('kotlin.org.w3c.dom.ImageBitmapRenderingContextSettings_1v8dbw$', function (alpha) { - if (alpha === void 0) - alpha = true; - var o = {}; - o['alpha'] = alpha; - return o; - }); - var ElementDefinitionOptions = defineInlineFunction('kotlin.org.w3c.dom.ElementDefinitionOptions_pdl1vj$', function (extends_0) { - if (extends_0 === void 0) - extends_0 = undefined; - var o = {}; - o['extends'] = extends_0; - return o; - }); - var get_24 = defineInlineFunction('kotlin.org.w3c.dom.get_c2gw6m$', function ($receiver, index) { - return $receiver[index]; - }); - var DragEventInit = defineInlineFunction('kotlin.org.w3c.dom.DragEventInit_rb6t3c$', function (dataTransfer, screenX, screenY, clientX, clientY, button, buttons, relatedTarget, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed) { - if (dataTransfer === void 0) - dataTransfer = null; - if (screenX === void 0) - screenX = 0; - if (screenY === void 0) - screenY = 0; - if (clientX === void 0) - clientX = 0; - if (clientY === void 0) - clientY = 0; - if (button === void 0) - button = 0; - if (buttons === void 0) - buttons = 0; - if (relatedTarget === void 0) - relatedTarget = null; - if (ctrlKey === void 0) - ctrlKey = false; - if (shiftKey === void 0) - shiftKey = false; - if (altKey === void 0) - altKey = false; - if (metaKey === void 0) - metaKey = false; - if (modifierAltGraph === void 0) - modifierAltGraph = false; - if (modifierCapsLock === void 0) - modifierCapsLock = false; - if (modifierFn === void 0) - modifierFn = false; - if (modifierFnLock === void 0) - modifierFnLock = false; - if (modifierHyper === void 0) - modifierHyper = false; - if (modifierNumLock === void 0) - modifierNumLock = false; - if (modifierScrollLock === void 0) - modifierScrollLock = false; - if (modifierSuper === void 0) - modifierSuper = false; - if (modifierSymbol === void 0) - modifierSymbol = false; - if (modifierSymbolLock === void 0) - modifierSymbolLock = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['dataTransfer'] = dataTransfer; - o['screenX'] = screenX; - o['screenY'] = screenY; - o['clientX'] = clientX; - o['clientY'] = clientY; - o['button'] = button; - o['buttons'] = buttons; - o['relatedTarget'] = relatedTarget; - o['ctrlKey'] = ctrlKey; - o['shiftKey'] = shiftKey; - o['altKey'] = altKey; - o['metaKey'] = metaKey; - o['modifierAltGraph'] = modifierAltGraph; - o['modifierCapsLock'] = modifierCapsLock; - o['modifierFn'] = modifierFn; - o['modifierFnLock'] = modifierFnLock; - o['modifierHyper'] = modifierHyper; - o['modifierNumLock'] = modifierNumLock; - o['modifierScrollLock'] = modifierScrollLock; - o['modifierSuper'] = modifierSuper; - o['modifierSymbol'] = modifierSymbol; - o['modifierSymbolLock'] = modifierSymbolLock; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var PopStateEventInit = defineInlineFunction('kotlin.org.w3c.dom.PopStateEventInit_m0in9k$', function (state, bubbles, cancelable, composed) { - if (state === void 0) - state = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['state'] = state; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var HashChangeEventInit = defineInlineFunction('kotlin.org.w3c.dom.HashChangeEventInit_pex3e4$', function (oldURL, newURL, bubbles, cancelable, composed) { - if (oldURL === void 0) - oldURL = ''; - if (newURL === void 0) - newURL = ''; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['oldURL'] = oldURL; - o['newURL'] = newURL; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var PageTransitionEventInit = defineInlineFunction('kotlin.org.w3c.dom.PageTransitionEventInit_bx6eq4$', function (persisted, bubbles, cancelable, composed) { - if (persisted === void 0) - persisted = false; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['persisted'] = persisted; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ErrorEventInit = defineInlineFunction('kotlin.org.w3c.dom.ErrorEventInit_k9ji8a$', function (message, filename, lineno, colno, error, bubbles, cancelable, composed) { - if (message === void 0) - message = ''; - if (filename === void 0) - filename = ''; - if (lineno === void 0) - lineno = 0; - if (colno === void 0) - colno = 0; - if (error === void 0) - error = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['message'] = message; - o['filename'] = filename; - o['lineno'] = lineno; - o['colno'] = colno; - o['error'] = error; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var PromiseRejectionEventInit = defineInlineFunction('kotlin.org.w3c.dom.PromiseRejectionEventInit_jhmgqd$', function (promise, reason, bubbles, cancelable, composed) { - if (reason === void 0) - reason = undefined; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['promise'] = promise; - o['reason'] = reason; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var get_25 = defineInlineFunction('kotlin.org.w3c.dom.get_l671a0$', function ($receiver, index) { - return $receiver[index]; - }); - var get_26 = defineInlineFunction('kotlin.org.w3c.dom.get_ldwsk8$', function ($receiver, name) { - return $receiver[name]; - }); - var get_27 = defineInlineFunction('kotlin.org.w3c.dom.get_iatcyr$', function ($receiver, index) { - return $receiver[index]; - }); - var get_28 = defineInlineFunction('kotlin.org.w3c.dom.get_usmy71$', function ($receiver, name) { - return $receiver[name]; - }); - var get_29 = defineInlineFunction('kotlin.org.w3c.dom.get_t3yadb$', function ($receiver, index) { - return $receiver[index]; - }); - var get_30 = defineInlineFunction('kotlin.org.w3c.dom.get_bempxb$', function ($receiver, name) { - return $receiver[name]; - }); - var ImageBitmapOptions = defineInlineFunction('kotlin.org.w3c.dom.ImageBitmapOptions_qp88pe$', function (imageOrientation, premultiplyAlpha, colorSpaceConversion, resizeWidth, resizeHeight, resizeQuality) { - if (imageOrientation === void 0) { - imageOrientation = 'none'; - } - if (premultiplyAlpha === void 0) { - premultiplyAlpha = 'default'; - } - if (colorSpaceConversion === void 0) { - colorSpaceConversion = 'default'; - } - if (resizeWidth === void 0) - resizeWidth = undefined; - if (resizeHeight === void 0) - resizeHeight = undefined; - if (resizeQuality === void 0) { - resizeQuality = 'low'; - } - var o = {}; - o['imageOrientation'] = imageOrientation; - o['premultiplyAlpha'] = premultiplyAlpha; - o['colorSpaceConversion'] = colorSpaceConversion; - o['resizeWidth'] = resizeWidth; - o['resizeHeight'] = resizeHeight; - o['resizeQuality'] = resizeQuality; - return o; - }); - var MessageEventInit = defineInlineFunction('kotlin.org.w3c.dom.MessageEventInit_146zbu$', function (data, origin, lastEventId, source, ports, bubbles, cancelable, composed) { - if (data === void 0) - data = null; - if (origin === void 0) - origin = ''; - if (lastEventId === void 0) - lastEventId = ''; - if (source === void 0) - source = null; - if (ports === void 0) - ports = []; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['data'] = data; - o['origin'] = origin; - o['lastEventId'] = lastEventId; - o['source'] = source; - o['ports'] = ports; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var EventSourceInit = defineInlineFunction('kotlin.org.w3c.dom.EventSourceInit_1v8dbw$', function (withCredentials) { - if (withCredentials === void 0) - withCredentials = false; - var o = {}; - o['withCredentials'] = withCredentials; - return o; - }); - var CloseEventInit = defineInlineFunction('kotlin.org.w3c.dom.CloseEventInit_wdtuj7$', function (wasClean, code, reason, bubbles, cancelable, composed) { - if (wasClean === void 0) - wasClean = false; - if (code === void 0) - code = 0; - if (reason === void 0) - reason = ''; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['wasClean'] = wasClean; - o['code'] = code; - o['reason'] = reason; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var WorkerOptions = defineInlineFunction('kotlin.org.w3c.dom.WorkerOptions_sllxcl$', function (type, credentials) { - if (type === void 0) { - type = 'classic'; - } - if (credentials === void 0) { - credentials = 'omit'; - } - var o = {}; - o['type'] = type; - o['credentials'] = credentials; - return o; - }); - var get_31 = defineInlineFunction('kotlin.org.w3c.dom.get_bsm031$', function ($receiver, key) { - return $receiver[key]; - }); - var set_12 = defineInlineFunction('kotlin.org.w3c.dom.set_9wlwlb$', function ($receiver, key, value) { - $receiver[key] = value; - }); - var StorageEventInit = defineInlineFunction('kotlin.org.w3c.dom.StorageEventInit_asvzxz$', function (key, oldValue, newValue, url, storageArea, bubbles, cancelable, composed) { - if (key === void 0) - key = null; - if (oldValue === void 0) - oldValue = null; - if (newValue === void 0) - newValue = null; - if (url === void 0) - url = ''; - if (storageArea === void 0) - storageArea = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['key'] = key; - o['oldValue'] = oldValue; - o['newValue'] = newValue; - o['url'] = url; - o['storageArea'] = storageArea; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var EventInit = defineInlineFunction('kotlin.org.w3c.dom.EventInit_uic7jo$', function (bubbles, cancelable, composed) { - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var CustomEventInit = defineInlineFunction('kotlin.org.w3c.dom.CustomEventInit_m0in9k$', function (detail, bubbles, cancelable, composed) { - if (detail === void 0) - detail = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var EventListenerOptions = defineInlineFunction('kotlin.org.w3c.dom.EventListenerOptions_1v8dbw$', function (capture) { - if (capture === void 0) - capture = false; - var o = {}; - o['capture'] = capture; - return o; - }); - var AddEventListenerOptions = defineInlineFunction('kotlin.org.w3c.dom.AddEventListenerOptions_uic7jo$', function (passive, once, capture) { - if (passive === void 0) - passive = false; - if (once === void 0) - once = false; - if (capture === void 0) - capture = false; - var o = {}; - o['passive'] = passive; - o['once'] = once; - o['capture'] = capture; - return o; - }); - var get_32 = defineInlineFunction('kotlin.org.w3c.dom.get_axj990$', function ($receiver, index) { - return $receiver[index]; - }); - var get_33 = defineInlineFunction('kotlin.org.w3c.dom.get_l6emzv$', function ($receiver, index) { - return $receiver[index]; - }); - var get_34 = defineInlineFunction('kotlin.org.w3c.dom.get_kzcjh1$', function ($receiver, name) { - return $receiver[name]; - }); - var MutationObserverInit = defineInlineFunction('kotlin.org.w3c.dom.MutationObserverInit_c5um2n$', function (childList, attributes, characterData, subtree, attributeOldValue, characterDataOldValue, attributeFilter) { - if (childList === void 0) - childList = false; - if (attributes === void 0) - attributes = undefined; - if (characterData === void 0) - characterData = undefined; - if (subtree === void 0) - subtree = false; - if (attributeOldValue === void 0) - attributeOldValue = undefined; - if (characterDataOldValue === void 0) - characterDataOldValue = undefined; - if (attributeFilter === void 0) - attributeFilter = undefined; - var o = {}; - o['childList'] = childList; - o['attributes'] = attributes; - o['characterData'] = characterData; - o['subtree'] = subtree; - o['attributeOldValue'] = attributeOldValue; - o['characterDataOldValue'] = characterDataOldValue; - o['attributeFilter'] = attributeFilter; - return o; - }); - var GetRootNodeOptions = defineInlineFunction('kotlin.org.w3c.dom.GetRootNodeOptions_1v8dbw$', function (composed) { - if (composed === void 0) - composed = false; - var o = {}; - o['composed'] = composed; - return o; - }); - var ElementCreationOptions = defineInlineFunction('kotlin.org.w3c.dom.ElementCreationOptions_pdl1vj$', function (is_) { - if (is_ === void 0) - is_ = undefined; - var o = {}; - o['is'] = is_; - return o; - }); - var ShadowRootInit = defineInlineFunction('kotlin.org.w3c.dom.ShadowRootInit_16lofx$', function (mode) { - var o = {}; - o['mode'] = mode; - return o; - }); - var get_35 = defineInlineFunction('kotlin.org.w3c.dom.get_rjm7cj$', function ($receiver, index) { - return $receiver[index]; - }); - var get_36 = defineInlineFunction('kotlin.org.w3c.dom.get_oszak3$', function ($receiver, qualifiedName) { - return $receiver[qualifiedName]; - }); - var get_37 = defineInlineFunction('kotlin.org.w3c.dom.get_o72cm9$', function ($receiver, index) { - return $receiver[index]; - }); - var DOMPointInit = defineInlineFunction('kotlin.org.w3c.dom.DOMPointInit_rd1tgs$', function (x, y, z, w) { - if (x === void 0) - x = 0.0; - if (y === void 0) - y = 0.0; - if (z === void 0) - z = 0.0; - if (w === void 0) - w = 1.0; - var o = {}; - o['x'] = x; - o['y'] = y; - o['z'] = z; - o['w'] = w; - return o; - }); - var DOMRectInit = defineInlineFunction('kotlin.org.w3c.dom.DOMRectInit_rd1tgs$', function (x, y, width, height) { - if (x === void 0) - x = 0.0; - if (y === void 0) - y = 0.0; - if (width === void 0) - width = 0.0; - if (height === void 0) - height = 0.0; - var o = {}; - o['x'] = x; - o['y'] = y; - o['width'] = width; - o['height'] = height; - return o; - }); - var get_38 = defineInlineFunction('kotlin.org.w3c.dom.get_p225ue$', function ($receiver, index) { - return $receiver[index]; - }); - var ScrollOptions = defineInlineFunction('kotlin.org.w3c.dom.ScrollOptions_pa3cpp$', function (behavior) { - if (behavior === void 0) { - behavior = 'auto'; - } - var o = {}; - o['behavior'] = behavior; - return o; - }); - var ScrollToOptions = defineInlineFunction('kotlin.org.w3c.dom.ScrollToOptions_5ufhvn$', function (left, top, behavior) { - if (left === void 0) - left = undefined; - if (top === void 0) - top = undefined; - if (behavior === void 0) { - behavior = 'auto'; - } - var o = {}; - o['left'] = left; - o['top'] = top; - o['behavior'] = behavior; - return o; - }); - var MediaQueryListEventInit = defineInlineFunction('kotlin.org.w3c.dom.MediaQueryListEventInit_vkedzz$', function (media, matches, bubbles, cancelable, composed) { - if (media === void 0) - media = ''; - if (matches === void 0) - matches = false; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['media'] = media; - o['matches'] = matches; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ScrollIntoViewOptions = defineInlineFunction('kotlin.org.w3c.dom.ScrollIntoViewOptions_2qltkz$', function (block, inline, behavior) { - if (block === void 0) { - block = 'center'; - } - if (inline === void 0) { - inline = 'center'; - } - if (behavior === void 0) { - behavior = 'auto'; - } - var o = {}; - o['block'] = block; - o['inline'] = inline; - o['behavior'] = behavior; - return o; - }); - var BoxQuadOptions = defineInlineFunction('kotlin.org.w3c.dom.BoxQuadOptions_tnnyad$', function (box, relativeTo) { - if (box === void 0) { - box = 'border'; - } - if (relativeTo === void 0) - relativeTo = undefined; - var o = {}; - o['box'] = box; - o['relativeTo'] = relativeTo; - return o; - }); - var ConvertCoordinateOptions = defineInlineFunction('kotlin.org.w3c.dom.ConvertCoordinateOptions_8oj3e4$', function (fromBox, toBox) { - if (fromBox === void 0) { - fromBox = 'border'; - } - if (toBox === void 0) { - toBox = 'border'; - } - var o = {}; - o['fromBox'] = fromBox; - o['toBox'] = toBox; - return o; - }); - var get_LOADING = defineInlineFunction('kotlin.org.w3c.dom.get_LOADING_cuyr1n$', function ($receiver) { - return 'loading'; - }); - var get_INTERACTIVE = defineInlineFunction('kotlin.org.w3c.dom.get_INTERACTIVE_cuyr1n$', function ($receiver) { - return 'interactive'; - }); - var get_COMPLETE = defineInlineFunction('kotlin.org.w3c.dom.get_COMPLETE_cuyr1n$', function ($receiver) { - return 'complete'; - }); - var get_EMPTY = defineInlineFunction('kotlin.org.w3c.dom.get_EMPTY_k3kzzn$', function ($receiver) { - return ''; - }); - var get_MAYBE = defineInlineFunction('kotlin.org.w3c.dom.get_MAYBE_k3kzzn$', function ($receiver) { - return 'maybe'; - }); - var get_PROBABLY = defineInlineFunction('kotlin.org.w3c.dom.get_PROBABLY_k3kzzn$', function ($receiver) { - return 'probably'; - }); - var get_DISABLED = defineInlineFunction('kotlin.org.w3c.dom.get_DISABLED_ygmcel$', function ($receiver) { - return 'disabled'; - }); - var get_HIDDEN = defineInlineFunction('kotlin.org.w3c.dom.get_HIDDEN_ygmcel$', function ($receiver) { - return 'hidden'; - }); - var get_SHOWING = defineInlineFunction('kotlin.org.w3c.dom.get_SHOWING_ygmcel$', function ($receiver) { - return 'showing'; - }); - var get_SUBTITLES = defineInlineFunction('kotlin.org.w3c.dom.get_SUBTITLES_fw7o78$', function ($receiver) { - return 'subtitles'; - }); - var get_CAPTIONS = defineInlineFunction('kotlin.org.w3c.dom.get_CAPTIONS_fw7o78$', function ($receiver) { - return 'captions'; - }); - var get_DESCRIPTIONS = defineInlineFunction('kotlin.org.w3c.dom.get_DESCRIPTIONS_fw7o78$', function ($receiver) { - return 'descriptions'; - }); - var get_CHAPTERS = defineInlineFunction('kotlin.org.w3c.dom.get_CHAPTERS_fw7o78$', function ($receiver) { - return 'chapters'; - }); - var get_METADATA = defineInlineFunction('kotlin.org.w3c.dom.get_METADATA_fw7o78$', function ($receiver) { - return 'metadata'; - }); - var get_SELECT = defineInlineFunction('kotlin.org.w3c.dom.get_SELECT_efic67$', function ($receiver) { - return 'select'; - }); - var get_START = defineInlineFunction('kotlin.org.w3c.dom.get_START_efic67$', function ($receiver) { - return 'start'; - }); - var get_END = defineInlineFunction('kotlin.org.w3c.dom.get_END_efic67$', function ($receiver) { - return 'end'; - }); - var get_PRESERVE = defineInlineFunction('kotlin.org.w3c.dom.get_PRESERVE_efic67$', function ($receiver) { - return 'preserve'; - }); - var get_NONZERO = defineInlineFunction('kotlin.org.w3c.dom.get_NONZERO_mhbikd$', function ($receiver) { - return 'nonzero'; - }); - var get_EVENODD = defineInlineFunction('kotlin.org.w3c.dom.get_EVENODD_mhbikd$', function ($receiver) { - return 'evenodd'; - }); - var get_LOW = defineInlineFunction('kotlin.org.w3c.dom.get_LOW_lt2gtk$', function ($receiver) { - return 'low'; - }); - var get_MEDIUM = defineInlineFunction('kotlin.org.w3c.dom.get_MEDIUM_lt2gtk$', function ($receiver) { - return 'medium'; - }); - var get_HIGH = defineInlineFunction('kotlin.org.w3c.dom.get_HIGH_lt2gtk$', function ($receiver) { - return 'high'; - }); - var get_BUTT = defineInlineFunction('kotlin.org.w3c.dom.get_BUTT_w26v20$', function ($receiver) { - return 'butt'; - }); - var get_ROUND = defineInlineFunction('kotlin.org.w3c.dom.get_ROUND_w26v20$', function ($receiver) { - return 'round'; - }); - var get_SQUARE = defineInlineFunction('kotlin.org.w3c.dom.get_SQUARE_w26v20$', function ($receiver) { - return 'square'; - }); - var get_ROUND_0 = defineInlineFunction('kotlin.org.w3c.dom.get_ROUND_1xtghu$', function ($receiver) { - return 'round'; - }); - var get_BEVEL = defineInlineFunction('kotlin.org.w3c.dom.get_BEVEL_1xtghu$', function ($receiver) { - return 'bevel'; - }); - var get_MITER = defineInlineFunction('kotlin.org.w3c.dom.get_MITER_1xtghu$', function ($receiver) { - return 'miter'; - }); - var get_START_0 = defineInlineFunction('kotlin.org.w3c.dom.get_START_hbi5si$', function ($receiver) { - return 'start'; - }); - var get_END_0 = defineInlineFunction('kotlin.org.w3c.dom.get_END_hbi5si$', function ($receiver) { - return 'end'; - }); - var get_LEFT = defineInlineFunction('kotlin.org.w3c.dom.get_LEFT_hbi5si$', function ($receiver) { - return 'left'; - }); - var get_RIGHT = defineInlineFunction('kotlin.org.w3c.dom.get_RIGHT_hbi5si$', function ($receiver) { - return 'right'; - }); - var get_CENTER = defineInlineFunction('kotlin.org.w3c.dom.get_CENTER_hbi5si$', function ($receiver) { - return 'center'; - }); - var get_TOP = defineInlineFunction('kotlin.org.w3c.dom.get_TOP_oz2y96$', function ($receiver) { - return 'top'; - }); - var get_HANGING = defineInlineFunction('kotlin.org.w3c.dom.get_HANGING_oz2y96$', function ($receiver) { - return 'hanging'; - }); - var get_MIDDLE = defineInlineFunction('kotlin.org.w3c.dom.get_MIDDLE_oz2y96$', function ($receiver) { - return 'middle'; - }); - var get_ALPHABETIC = defineInlineFunction('kotlin.org.w3c.dom.get_ALPHABETIC_oz2y96$', function ($receiver) { - return 'alphabetic'; - }); - var get_IDEOGRAPHIC = defineInlineFunction('kotlin.org.w3c.dom.get_IDEOGRAPHIC_oz2y96$', function ($receiver) { - return 'ideographic'; - }); - var get_BOTTOM = defineInlineFunction('kotlin.org.w3c.dom.get_BOTTOM_oz2y96$', function ($receiver) { - return 'bottom'; - }); - var get_LTR = defineInlineFunction('kotlin.org.w3c.dom.get_LTR_qxot9j$', function ($receiver) { - return 'ltr'; - }); - var get_RTL = defineInlineFunction('kotlin.org.w3c.dom.get_RTL_qxot9j$', function ($receiver) { - return 'rtl'; - }); - var get_INHERIT = defineInlineFunction('kotlin.org.w3c.dom.get_INHERIT_qxot9j$', function ($receiver) { - return 'inherit'; - }); - var get_AUTO = defineInlineFunction('kotlin.org.w3c.dom.get_AUTO_huqvoj$', function ($receiver) { - return 'auto'; - }); - var get_MANUAL = defineInlineFunction('kotlin.org.w3c.dom.get_MANUAL_huqvoj$', function ($receiver) { - return 'manual'; - }); - var get_NONE = defineInlineFunction('kotlin.org.w3c.dom.get_NONE_xgljrz$', function ($receiver) { - return 'none'; - }); - var get_FLIPY = defineInlineFunction('kotlin.org.w3c.dom.get_FLIPY_xgljrz$', function ($receiver) { - return 'flipY'; - }); - var get_NONE_0 = defineInlineFunction('kotlin.org.w3c.dom.get_NONE_b5608t$', function ($receiver) { - return 'none'; - }); - var get_PREMULTIPLY = defineInlineFunction('kotlin.org.w3c.dom.get_PREMULTIPLY_b5608t$', function ($receiver) { - return 'premultiply'; - }); - var get_DEFAULT = defineInlineFunction('kotlin.org.w3c.dom.get_DEFAULT_b5608t$', function ($receiver) { - return 'default'; - }); - var get_NONE_1 = defineInlineFunction('kotlin.org.w3c.dom.get_NONE_xqeuit$', function ($receiver) { - return 'none'; - }); - var get_DEFAULT_0 = defineInlineFunction('kotlin.org.w3c.dom.get_DEFAULT_xqeuit$', function ($receiver) { - return 'default'; - }); - var get_PIXELATED = defineInlineFunction('kotlin.org.w3c.dom.get_PIXELATED_32fsn1$', function ($receiver) { - return 'pixelated'; - }); - var get_LOW_0 = defineInlineFunction('kotlin.org.w3c.dom.get_LOW_32fsn1$', function ($receiver) { - return 'low'; - }); - var get_MEDIUM_0 = defineInlineFunction('kotlin.org.w3c.dom.get_MEDIUM_32fsn1$', function ($receiver) { - return 'medium'; - }); - var get_HIGH_0 = defineInlineFunction('kotlin.org.w3c.dom.get_HIGH_32fsn1$', function ($receiver) { - return 'high'; - }); - var get_BLOB = defineInlineFunction('kotlin.org.w3c.dom.get_BLOB_qxle9l$', function ($receiver) { - return 'blob'; - }); - var get_ARRAYBUFFER = defineInlineFunction('kotlin.org.w3c.dom.get_ARRAYBUFFER_qxle9l$', function ($receiver) { - return 'arraybuffer'; - }); - var get_CLASSIC = defineInlineFunction('kotlin.org.w3c.dom.get_CLASSIC_xc77to$', function ($receiver) { - return 'classic'; - }); - var get_MODULE = defineInlineFunction('kotlin.org.w3c.dom.get_MODULE_xc77to$', function ($receiver) { - return 'module'; - }); - var get_OPEN = defineInlineFunction('kotlin.org.w3c.dom.get_OPEN_knhupb$', function ($receiver) { - return 'open'; - }); - var get_CLOSED = defineInlineFunction('kotlin.org.w3c.dom.get_CLOSED_knhupb$', function ($receiver) { - return 'closed'; - }); - var get_AUTO_0 = defineInlineFunction('kotlin.org.w3c.dom.get_AUTO_gi1pud$', function ($receiver) { - return 'auto'; - }); - var get_INSTANT = defineInlineFunction('kotlin.org.w3c.dom.get_INSTANT_gi1pud$', function ($receiver) { - return 'instant'; - }); - var get_SMOOTH = defineInlineFunction('kotlin.org.w3c.dom.get_SMOOTH_gi1pud$', function ($receiver) { - return 'smooth'; - }); - var get_START_1 = defineInlineFunction('kotlin.org.w3c.dom.get_START_ltkif$', function ($receiver) { - return 'start'; - }); - var get_CENTER_0 = defineInlineFunction('kotlin.org.w3c.dom.get_CENTER_ltkif$', function ($receiver) { - return 'center'; - }); - var get_END_1 = defineInlineFunction('kotlin.org.w3c.dom.get_END_ltkif$', function ($receiver) { - return 'end'; - }); - var get_NEAREST = defineInlineFunction('kotlin.org.w3c.dom.get_NEAREST_ltkif$', function ($receiver) { - return 'nearest'; - }); - var get_MARGIN = defineInlineFunction('kotlin.org.w3c.dom.get_MARGIN_eb1l8y$', function ($receiver) { - return 'margin'; - }); - var get_BORDER = defineInlineFunction('kotlin.org.w3c.dom.get_BORDER_eb1l8y$', function ($receiver) { - return 'border'; - }); - var get_PADDING = defineInlineFunction('kotlin.org.w3c.dom.get_PADDING_eb1l8y$', function ($receiver) { - return 'padding'; - }); - var get_CONTENT = defineInlineFunction('kotlin.org.w3c.dom.get_CONTENT_eb1l8y$', function ($receiver) { - return 'content'; - }); - var MediaTrackSupportedConstraints = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaTrackSupportedConstraints_ntfy24$', function (width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId) { - if (width === void 0) - width = true; - if (height === void 0) - height = true; - if (aspectRatio === void 0) - aspectRatio = true; - if (frameRate === void 0) - frameRate = true; - if (facingMode === void 0) - facingMode = true; - if (resizeMode === void 0) - resizeMode = true; - if (volume === void 0) - volume = true; - if (sampleRate === void 0) - sampleRate = true; - if (sampleSize === void 0) - sampleSize = true; - if (echoCancellation === void 0) - echoCancellation = true; - if (autoGainControl === void 0) - autoGainControl = true; - if (noiseSuppression === void 0) - noiseSuppression = true; - if (latency === void 0) - latency = true; - if (channelCount === void 0) - channelCount = true; - if (deviceId === void 0) - deviceId = true; - if (groupId === void 0) - groupId = true; - var o = {}; - o['width'] = width; - o['height'] = height; - o['aspectRatio'] = aspectRatio; - o['frameRate'] = frameRate; - o['facingMode'] = facingMode; - o['resizeMode'] = resizeMode; - o['volume'] = volume; - o['sampleRate'] = sampleRate; - o['sampleSize'] = sampleSize; - o['echoCancellation'] = echoCancellation; - o['autoGainControl'] = autoGainControl; - o['noiseSuppression'] = noiseSuppression; - o['latency'] = latency; - o['channelCount'] = channelCount; - o['deviceId'] = deviceId; - o['groupId'] = groupId; - return o; - }); - var MediaTrackCapabilities = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaTrackCapabilities_61f3zg$', function (width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId) { - if (width === void 0) - width = undefined; - if (height === void 0) - height = undefined; - if (aspectRatio === void 0) - aspectRatio = undefined; - if (frameRate === void 0) - frameRate = undefined; - if (facingMode === void 0) - facingMode = undefined; - if (resizeMode === void 0) - resizeMode = undefined; - if (volume === void 0) - volume = undefined; - if (sampleRate === void 0) - sampleRate = undefined; - if (sampleSize === void 0) - sampleSize = undefined; - if (echoCancellation === void 0) - echoCancellation = undefined; - if (autoGainControl === void 0) - autoGainControl = undefined; - if (noiseSuppression === void 0) - noiseSuppression = undefined; - if (latency === void 0) - latency = undefined; - if (channelCount === void 0) - channelCount = undefined; - if (deviceId === void 0) - deviceId = undefined; - if (groupId === void 0) - groupId = undefined; - var o = {}; - o['width'] = width; - o['height'] = height; - o['aspectRatio'] = aspectRatio; - o['frameRate'] = frameRate; - o['facingMode'] = facingMode; - o['resizeMode'] = resizeMode; - o['volume'] = volume; - o['sampleRate'] = sampleRate; - o['sampleSize'] = sampleSize; - o['echoCancellation'] = echoCancellation; - o['autoGainControl'] = autoGainControl; - o['noiseSuppression'] = noiseSuppression; - o['latency'] = latency; - o['channelCount'] = channelCount; - o['deviceId'] = deviceId; - o['groupId'] = groupId; - return o; - }); - var MediaTrackConstraints = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaTrackConstraints_hfkjcw$', function (advanced, width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId) { - if (advanced === void 0) - advanced = undefined; - if (width === void 0) - width = undefined; - if (height === void 0) - height = undefined; - if (aspectRatio === void 0) - aspectRatio = undefined; - if (frameRate === void 0) - frameRate = undefined; - if (facingMode === void 0) - facingMode = undefined; - if (resizeMode === void 0) - resizeMode = undefined; - if (volume === void 0) - volume = undefined; - if (sampleRate === void 0) - sampleRate = undefined; - if (sampleSize === void 0) - sampleSize = undefined; - if (echoCancellation === void 0) - echoCancellation = undefined; - if (autoGainControl === void 0) - autoGainControl = undefined; - if (noiseSuppression === void 0) - noiseSuppression = undefined; - if (latency === void 0) - latency = undefined; - if (channelCount === void 0) - channelCount = undefined; - if (deviceId === void 0) - deviceId = undefined; - if (groupId === void 0) - groupId = undefined; - var o = {}; - o['advanced'] = advanced; - o['width'] = width; - o['height'] = height; - o['aspectRatio'] = aspectRatio; - o['frameRate'] = frameRate; - o['facingMode'] = facingMode; - o['resizeMode'] = resizeMode; - o['volume'] = volume; - o['sampleRate'] = sampleRate; - o['sampleSize'] = sampleSize; - o['echoCancellation'] = echoCancellation; - o['autoGainControl'] = autoGainControl; - o['noiseSuppression'] = noiseSuppression; - o['latency'] = latency; - o['channelCount'] = channelCount; - o['deviceId'] = deviceId; - o['groupId'] = groupId; - return o; - }); - var MediaTrackConstraintSet = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaTrackConstraintSet_cbtu8k$', function (width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId) { - if (width === void 0) - width = undefined; - if (height === void 0) - height = undefined; - if (aspectRatio === void 0) - aspectRatio = undefined; - if (frameRate === void 0) - frameRate = undefined; - if (facingMode === void 0) - facingMode = undefined; - if (resizeMode === void 0) - resizeMode = undefined; - if (volume === void 0) - volume = undefined; - if (sampleRate === void 0) - sampleRate = undefined; - if (sampleSize === void 0) - sampleSize = undefined; - if (echoCancellation === void 0) - echoCancellation = undefined; - if (autoGainControl === void 0) - autoGainControl = undefined; - if (noiseSuppression === void 0) - noiseSuppression = undefined; - if (latency === void 0) - latency = undefined; - if (channelCount === void 0) - channelCount = undefined; - if (deviceId === void 0) - deviceId = undefined; - if (groupId === void 0) - groupId = undefined; - var o = {}; - o['width'] = width; - o['height'] = height; - o['aspectRatio'] = aspectRatio; - o['frameRate'] = frameRate; - o['facingMode'] = facingMode; - o['resizeMode'] = resizeMode; - o['volume'] = volume; - o['sampleRate'] = sampleRate; - o['sampleSize'] = sampleSize; - o['echoCancellation'] = echoCancellation; - o['autoGainControl'] = autoGainControl; - o['noiseSuppression'] = noiseSuppression; - o['latency'] = latency; - o['channelCount'] = channelCount; - o['deviceId'] = deviceId; - o['groupId'] = groupId; - return o; - }); - var MediaTrackSettings = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaTrackSettings_uaqjjf$', function (width, height, aspectRatio, frameRate, facingMode, resizeMode, volume, sampleRate, sampleSize, echoCancellation, autoGainControl, noiseSuppression, latency, channelCount, deviceId, groupId) { - if (width === void 0) - width = undefined; - if (height === void 0) - height = undefined; - if (aspectRatio === void 0) - aspectRatio = undefined; - if (frameRate === void 0) - frameRate = undefined; - if (facingMode === void 0) - facingMode = undefined; - if (resizeMode === void 0) - resizeMode = undefined; - if (volume === void 0) - volume = undefined; - if (sampleRate === void 0) - sampleRate = undefined; - if (sampleSize === void 0) - sampleSize = undefined; - if (echoCancellation === void 0) - echoCancellation = undefined; - if (autoGainControl === void 0) - autoGainControl = undefined; - if (noiseSuppression === void 0) - noiseSuppression = undefined; - if (latency === void 0) - latency = undefined; - if (channelCount === void 0) - channelCount = undefined; - if (deviceId === void 0) - deviceId = undefined; - if (groupId === void 0) - groupId = undefined; - var o = {}; - o['width'] = width; - o['height'] = height; - o['aspectRatio'] = aspectRatio; - o['frameRate'] = frameRate; - o['facingMode'] = facingMode; - o['resizeMode'] = resizeMode; - o['volume'] = volume; - o['sampleRate'] = sampleRate; - o['sampleSize'] = sampleSize; - o['echoCancellation'] = echoCancellation; - o['autoGainControl'] = autoGainControl; - o['noiseSuppression'] = noiseSuppression; - o['latency'] = latency; - o['channelCount'] = channelCount; - o['deviceId'] = deviceId; - o['groupId'] = groupId; - return o; - }); - var MediaStreamTrackEventInit = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaStreamTrackEventInit_echihd$', function (track, bubbles, cancelable, composed) { - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['track'] = track; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var OverconstrainedErrorEventInit = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.OverconstrainedErrorEventInit_3wh255$', function (error, bubbles, cancelable, composed) { - if (error === void 0) - error = null; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['error'] = error; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var MediaStreamConstraints = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.MediaStreamConstraints_wn2jw4$', function (video, audio) { - if (video === void 0) - video = false; - if (audio === void 0) - audio = false; - var o = {}; - o['video'] = video; - o['audio'] = audio; - return o; - }); - var DoubleRange = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.DoubleRange_jma9l8$', function (max, min) { - if (max === void 0) - max = undefined; - if (min === void 0) - min = undefined; - var o = {}; - o['max'] = max; - o['min'] = min; - return o; - }); - var ConstrainDoubleRange = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.ConstrainDoubleRange_rd1tgs$', function (exact, ideal, max, min) { - if (exact === void 0) - exact = undefined; - if (ideal === void 0) - ideal = undefined; - if (max === void 0) - max = undefined; - if (min === void 0) - min = undefined; - var o = {}; - o['exact'] = exact; - o['ideal'] = ideal; - o['max'] = max; - o['min'] = min; - return o; - }); - var ULongRange = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.ULongRange_1g3ugi$', function (max, min) { - if (max === void 0) - max = undefined; - if (min === void 0) - min = undefined; - var o = {}; - o['max'] = max; - o['min'] = min; - return o; - }); - var ConstrainULongRange = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.ConstrainULongRange_po2tg0$', function (exact, ideal, max, min) { - if (exact === void 0) - exact = undefined; - if (ideal === void 0) - ideal = undefined; - if (max === void 0) - max = undefined; - if (min === void 0) - min = undefined; - var o = {}; - o['exact'] = exact; - o['ideal'] = ideal; - o['max'] = max; - o['min'] = min; - return o; - }); - var ConstrainBooleanParameters = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.ConstrainBooleanParameters_vhjpus$', function (exact, ideal) { - if (exact === void 0) - exact = undefined; - if (ideal === void 0) - ideal = undefined; - var o = {}; - o['exact'] = exact; - o['ideal'] = ideal; - return o; - }); - var ConstrainDOMStringParameters = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.ConstrainDOMStringParameters_wn2jw4$', function (exact, ideal) { - if (exact === void 0) - exact = undefined; - if (ideal === void 0) - ideal = undefined; - var o = {}; - o['exact'] = exact; - o['ideal'] = ideal; - return o; - }); - var Capabilities = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.Capabilities', function () { - var o = {}; - return o; - }); - var Settings = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.Settings', function () { - var o = {}; - return o; - }); - var ConstraintSet = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.ConstraintSet', function () { - var o = {}; - return o; - }); - var Constraints = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.Constraints_v92fax$', function (advanced) { - if (advanced === void 0) - advanced = undefined; - var o = {}; - o['advanced'] = advanced; - return o; - }); - var get_LIVE = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_LIVE_tsyfvu$', function ($receiver) { - return 'live'; - }); - var get_ENDED = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_ENDED_tsyfvu$', function ($receiver) { - return 'ended'; - }); - var get_USER = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_USER_ctcynt$', function ($receiver) { - return 'user'; - }); - var get_ENVIRONMENT = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_ENVIRONMENT_ctcynt$', function ($receiver) { - return 'environment'; - }); - var get_LEFT_0 = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_LEFT_ctcynt$', function ($receiver) { - return 'left'; - }); - var get_RIGHT_0 = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_RIGHT_ctcynt$', function ($receiver) { - return 'right'; - }); - var get_NONE_2 = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_NONE_qdzhpp$', function ($receiver) { - return 'none'; - }); - var get_CROP_AND_SCALE = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_CROP_AND_SCALE_qdzhpp$', function ($receiver) { - return 'crop-and-scale'; - }); - var get_AUDIOINPUT = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_AUDIOINPUT_bcgeby$', function ($receiver) { - return 'audioinput'; - }); - var get_AUDIOOUTPUT = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_AUDIOOUTPUT_bcgeby$', function ($receiver) { - return 'audiooutput'; - }); - var get_VIDEOINPUT = defineInlineFunction('kotlin.org.w3c.dom.mediacapture.get_VIDEOINPUT_bcgeby$', function ($receiver) { - return 'videoinput'; - }); - var PointerEventInit = defineInlineFunction('kotlin.org.w3c.dom.pointerevents.PointerEventInit_1dxnaw$', function (pointerId, width, height, pressure, tangentialPressure, tiltX, tiltY, twist, pointerType, isPrimary, screenX, screenY, clientX, clientY, button, buttons, relatedTarget, ctrlKey, shiftKey, altKey, metaKey, modifierAltGraph, modifierCapsLock, modifierFn, modifierFnLock, modifierHyper, modifierNumLock, modifierScrollLock, modifierSuper, modifierSymbol, modifierSymbolLock, view, detail, bubbles, cancelable, composed) { - if (pointerId === void 0) - pointerId = 0; - if (width === void 0) - width = 1.0; - if (height === void 0) - height = 1.0; - if (pressure === void 0) - pressure = 0.0; - if (tangentialPressure === void 0) - tangentialPressure = 0.0; - if (tiltX === void 0) - tiltX = 0; - if (tiltY === void 0) - tiltY = 0; - if (twist === void 0) - twist = 0; - if (pointerType === void 0) - pointerType = ''; - if (isPrimary === void 0) - isPrimary = false; - if (screenX === void 0) - screenX = 0; - if (screenY === void 0) - screenY = 0; - if (clientX === void 0) - clientX = 0; - if (clientY === void 0) - clientY = 0; - if (button === void 0) - button = 0; - if (buttons === void 0) - buttons = 0; - if (relatedTarget === void 0) - relatedTarget = null; - if (ctrlKey === void 0) - ctrlKey = false; - if (shiftKey === void 0) - shiftKey = false; - if (altKey === void 0) - altKey = false; - if (metaKey === void 0) - metaKey = false; - if (modifierAltGraph === void 0) - modifierAltGraph = false; - if (modifierCapsLock === void 0) - modifierCapsLock = false; - if (modifierFn === void 0) - modifierFn = false; - if (modifierFnLock === void 0) - modifierFnLock = false; - if (modifierHyper === void 0) - modifierHyper = false; - if (modifierNumLock === void 0) - modifierNumLock = false; - if (modifierScrollLock === void 0) - modifierScrollLock = false; - if (modifierSuper === void 0) - modifierSuper = false; - if (modifierSymbol === void 0) - modifierSymbol = false; - if (modifierSymbolLock === void 0) - modifierSymbolLock = false; - if (view === void 0) - view = null; - if (detail === void 0) - detail = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['pointerId'] = pointerId; - o['width'] = width; - o['height'] = height; - o['pressure'] = pressure; - o['tangentialPressure'] = tangentialPressure; - o['tiltX'] = tiltX; - o['tiltY'] = tiltY; - o['twist'] = twist; - o['pointerType'] = pointerType; - o['isPrimary'] = isPrimary; - o['screenX'] = screenX; - o['screenY'] = screenY; - o['clientX'] = clientX; - o['clientY'] = clientY; - o['button'] = button; - o['buttons'] = buttons; - o['relatedTarget'] = relatedTarget; - o['ctrlKey'] = ctrlKey; - o['shiftKey'] = shiftKey; - o['altKey'] = altKey; - o['metaKey'] = metaKey; - o['modifierAltGraph'] = modifierAltGraph; - o['modifierCapsLock'] = modifierCapsLock; - o['modifierFn'] = modifierFn; - o['modifierFnLock'] = modifierFnLock; - o['modifierHyper'] = modifierHyper; - o['modifierNumLock'] = modifierNumLock; - o['modifierScrollLock'] = modifierScrollLock; - o['modifierSuper'] = modifierSuper; - o['modifierSymbol'] = modifierSymbol; - o['modifierSymbolLock'] = modifierSymbolLock; - o['view'] = view; - o['detail'] = detail; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var SVGBoundingBoxOptions = defineInlineFunction('kotlin.org.w3c.dom.svg.SVGBoundingBoxOptions_bx6eq4$', function (fill, stroke, markers, clipped) { - if (fill === void 0) - fill = true; - if (stroke === void 0) - stroke = false; - if (markers === void 0) - markers = false; - if (clipped === void 0) - clipped = false; - var o = {}; - o['fill'] = fill; - o['stroke'] = stroke; - o['markers'] = markers; - o['clipped'] = clipped; - return o; - }); - var get_39 = defineInlineFunction('kotlin.org.w3c.dom.svg.get_2fgwj9$', function ($receiver, index) { - return $receiver[index]; - }); - var set_13 = defineInlineFunction('kotlin.org.w3c.dom.svg.set_xg4o68$', function ($receiver, index, newItem) { - $receiver[index] = newItem; - }); - var get_40 = defineInlineFunction('kotlin.org.w3c.dom.svg.get_nujcb1$', function ($receiver, index) { - return $receiver[index]; - }); - var set_14 = defineInlineFunction('kotlin.org.w3c.dom.svg.set_vul1sp$', function ($receiver, index, newItem) { - $receiver[index] = newItem; - }); - var get_41 = defineInlineFunction('kotlin.org.w3c.dom.svg.get_ml6vgw$', function ($receiver, index) { - return $receiver[index]; - }); - var set_15 = defineInlineFunction('kotlin.org.w3c.dom.svg.set_tsl60p$', function ($receiver, index, newItem) { - $receiver[index] = newItem; - }); - var get_42 = defineInlineFunction('kotlin.org.w3c.dom.svg.get_f2nmth$', function ($receiver, index) { - return $receiver[index]; - }); - var set_16 = defineInlineFunction('kotlin.org.w3c.dom.svg.set_nr97t$', function ($receiver, index, newItem) { - $receiver[index] = newItem; - }); - var get_43 = defineInlineFunction('kotlin.org.w3c.dom.svg.get_xcci3g$', function ($receiver, index) { - return $receiver[index]; - }); - var set_17 = defineInlineFunction('kotlin.org.w3c.dom.svg.set_7s907r$', function ($receiver, index, newItem) { - $receiver[index] = newItem; - }); - var get_44 = defineInlineFunction('kotlin.org.w3c.dom.svg.get_r7cbpc$', function ($receiver, index) { - return $receiver[index]; - }); - var set_18 = defineInlineFunction('kotlin.org.w3c.dom.svg.set_8k1hvb$', function ($receiver, index, newItem) { - $receiver[index] = newItem; - }); - var RequestInit = defineInlineFunction('kotlin.org.w3c.fetch.RequestInit_302zsh$', function (method, headers, body, referrer, referrerPolicy, mode, credentials, cache, redirect, integrity, keepalive, window_0) { - if (method === void 0) - method = undefined; - if (headers === void 0) - headers = undefined; - if (body === void 0) - body = undefined; - if (referrer === void 0) - referrer = undefined; - if (referrerPolicy === void 0) - referrerPolicy = undefined; - if (mode === void 0) - mode = undefined; - if (credentials === void 0) - credentials = undefined; - if (cache === void 0) - cache = undefined; - if (redirect === void 0) - redirect = undefined; - if (integrity === void 0) - integrity = undefined; - if (keepalive === void 0) - keepalive = undefined; - if (window_0 === void 0) - window_0 = undefined; - var o = {}; - o['method'] = method; - o['headers'] = headers; - o['body'] = body; - o['referrer'] = referrer; - o['referrerPolicy'] = referrerPolicy; - o['mode'] = mode; - o['credentials'] = credentials; - o['cache'] = cache; - o['redirect'] = redirect; - o['integrity'] = integrity; - o['keepalive'] = keepalive; - o['window'] = window_0; - return o; - }); - var ResponseInit = defineInlineFunction('kotlin.org.w3c.fetch.ResponseInit_gk6zn2$', function (status, statusText, headers) { - if (status === void 0) - status = 200; - if (statusText === void 0) - statusText = 'OK'; - if (headers === void 0) - headers = undefined; - var o = {}; - o['status'] = status; - o['statusText'] = statusText; - o['headers'] = headers; - return o; - }); - var get_EMPTY_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_EMPTY_ih0r03$', function ($receiver) { - return ''; - }); - var get_AUDIO = defineInlineFunction('kotlin.org.w3c.fetch.get_AUDIO_ih0r03$', function ($receiver) { - return 'audio'; - }); - var get_FONT = defineInlineFunction('kotlin.org.w3c.fetch.get_FONT_ih0r03$', function ($receiver) { - return 'font'; - }); - var get_IMAGE = defineInlineFunction('kotlin.org.w3c.fetch.get_IMAGE_ih0r03$', function ($receiver) { - return 'image'; - }); - var get_SCRIPT = defineInlineFunction('kotlin.org.w3c.fetch.get_SCRIPT_ih0r03$', function ($receiver) { - return 'script'; - }); - var get_STYLE = defineInlineFunction('kotlin.org.w3c.fetch.get_STYLE_ih0r03$', function ($receiver) { - return 'style'; - }); - var get_TRACK = defineInlineFunction('kotlin.org.w3c.fetch.get_TRACK_ih0r03$', function ($receiver) { - return 'track'; - }); - var get_VIDEO = defineInlineFunction('kotlin.org.w3c.fetch.get_VIDEO_ih0r03$', function ($receiver) { - return 'video'; - }); - var get_EMPTY_1 = defineInlineFunction('kotlin.org.w3c.fetch.get_EMPTY_dgizjn$', function ($receiver) { - return ''; - }); - var get_DOCUMENT = defineInlineFunction('kotlin.org.w3c.fetch.get_DOCUMENT_dgizjn$', function ($receiver) { - return 'document'; - }); - var get_EMBED = defineInlineFunction('kotlin.org.w3c.fetch.get_EMBED_dgizjn$', function ($receiver) { - return 'embed'; - }); - var get_FONT_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_FONT_dgizjn$', function ($receiver) { - return 'font'; - }); - var get_IMAGE_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_IMAGE_dgizjn$', function ($receiver) { - return 'image'; - }); - var get_MANIFEST = defineInlineFunction('kotlin.org.w3c.fetch.get_MANIFEST_dgizjn$', function ($receiver) { - return 'manifest'; - }); - var get_MEDIA = defineInlineFunction('kotlin.org.w3c.fetch.get_MEDIA_dgizjn$', function ($receiver) { - return 'media'; - }); - var get_OBJECT = defineInlineFunction('kotlin.org.w3c.fetch.get_OBJECT_dgizjn$', function ($receiver) { - return 'object'; - }); - var get_REPORT = defineInlineFunction('kotlin.org.w3c.fetch.get_REPORT_dgizjn$', function ($receiver) { - return 'report'; - }); - var get_SCRIPT_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_SCRIPT_dgizjn$', function ($receiver) { - return 'script'; - }); - var get_SERVICEWORKER = defineInlineFunction('kotlin.org.w3c.fetch.get_SERVICEWORKER_dgizjn$', function ($receiver) { - return 'serviceworker'; - }); - var get_SHAREDWORKER = defineInlineFunction('kotlin.org.w3c.fetch.get_SHAREDWORKER_dgizjn$', function ($receiver) { - return 'sharedworker'; - }); - var get_STYLE_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_STYLE_dgizjn$', function ($receiver) { - return 'style'; - }); - var get_WORKER = defineInlineFunction('kotlin.org.w3c.fetch.get_WORKER_dgizjn$', function ($receiver) { - return 'worker'; - }); - var get_XSLT = defineInlineFunction('kotlin.org.w3c.fetch.get_XSLT_dgizjn$', function ($receiver) { - return 'xslt'; - }); - var get_NAVIGATE = defineInlineFunction('kotlin.org.w3c.fetch.get_NAVIGATE_jvdbus$', function ($receiver) { - return 'navigate'; - }); - var get_SAME_ORIGIN = defineInlineFunction('kotlin.org.w3c.fetch.get_SAME_ORIGIN_jvdbus$', function ($receiver) { - return 'same-origin'; - }); - var get_NO_CORS = defineInlineFunction('kotlin.org.w3c.fetch.get_NO_CORS_jvdbus$', function ($receiver) { - return 'no-cors'; - }); - var get_CORS = defineInlineFunction('kotlin.org.w3c.fetch.get_CORS_jvdbus$', function ($receiver) { - return 'cors'; - }); - var get_OMIT = defineInlineFunction('kotlin.org.w3c.fetch.get_OMIT_yuzaxt$', function ($receiver) { - return 'omit'; - }); - var get_SAME_ORIGIN_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_SAME_ORIGIN_yuzaxt$', function ($receiver) { - return 'same-origin'; - }); - var get_INCLUDE = defineInlineFunction('kotlin.org.w3c.fetch.get_INCLUDE_yuzaxt$', function ($receiver) { - return 'include'; - }); - var get_DEFAULT_1 = defineInlineFunction('kotlin.org.w3c.fetch.get_DEFAULT_iyytcp$', function ($receiver) { - return 'default'; - }); - var get_NO_STORE = defineInlineFunction('kotlin.org.w3c.fetch.get_NO_STORE_iyytcp$', function ($receiver) { - return 'no-store'; - }); - var get_RELOAD = defineInlineFunction('kotlin.org.w3c.fetch.get_RELOAD_iyytcp$', function ($receiver) { - return 'reload'; - }); - var get_NO_CACHE = defineInlineFunction('kotlin.org.w3c.fetch.get_NO_CACHE_iyytcp$', function ($receiver) { - return 'no-cache'; - }); - var get_FORCE_CACHE = defineInlineFunction('kotlin.org.w3c.fetch.get_FORCE_CACHE_iyytcp$', function ($receiver) { - return 'force-cache'; - }); - var get_ONLY_IF_CACHED = defineInlineFunction('kotlin.org.w3c.fetch.get_ONLY_IF_CACHED_iyytcp$', function ($receiver) { - return 'only-if-cached'; - }); - var get_FOLLOW = defineInlineFunction('kotlin.org.w3c.fetch.get_FOLLOW_tow8et$', function ($receiver) { - return 'follow'; - }); - var get_ERROR = defineInlineFunction('kotlin.org.w3c.fetch.get_ERROR_tow8et$', function ($receiver) { - return 'error'; - }); - var get_MANUAL_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_MANUAL_tow8et$', function ($receiver) { - return 'manual'; - }); - var get_BASIC = defineInlineFunction('kotlin.org.w3c.fetch.get_BASIC_1el1vz$', function ($receiver) { - return 'basic'; - }); - var get_CORS_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_CORS_1el1vz$', function ($receiver) { - return 'cors'; - }); - var get_DEFAULT_2 = defineInlineFunction('kotlin.org.w3c.fetch.get_DEFAULT_1el1vz$', function ($receiver) { - return 'default'; - }); - var get_ERROR_0 = defineInlineFunction('kotlin.org.w3c.fetch.get_ERROR_1el1vz$', function ($receiver) { - return 'error'; - }); - var get_OPAQUE = defineInlineFunction('kotlin.org.w3c.fetch.get_OPAQUE_1el1vz$', function ($receiver) { - return 'opaque'; - }); - var get_OPAQUEREDIRECT = defineInlineFunction('kotlin.org.w3c.fetch.get_OPAQUEREDIRECT_1el1vz$', function ($receiver) { - return 'opaqueredirect'; - }); - var BlobPropertyBag = defineInlineFunction('kotlin.org.w3c.files.BlobPropertyBag_pdl1vj$', function (type) { - if (type === void 0) - type = ''; - var o = {}; - o['type'] = type; - return o; - }); - var FilePropertyBag = defineInlineFunction('kotlin.org.w3c.files.FilePropertyBag_3gd7sg$', function (lastModified, type) { - if (lastModified === void 0) - lastModified = undefined; - if (type === void 0) - type = ''; - var o = {}; - o['lastModified'] = lastModified; - o['type'] = type; - return o; - }); - var get_45 = defineInlineFunction('kotlin.org.w3c.files.get_frimup$', function ($receiver, index) { - return $receiver[index]; - }); - var NotificationOptions = defineInlineFunction('kotlin.org.w3c.notifications.NotificationOptions_kxkl36$', function (dir, lang, body, tag, image, icon, badge, sound, vibrate, timestamp, renotify, silent, noscreen, requireInteraction, sticky, data, actions) { - if (dir === void 0) { - dir = 'auto'; - } - if (lang === void 0) - lang = ''; - if (body === void 0) - body = ''; - if (tag === void 0) - tag = ''; - if (image === void 0) - image = undefined; - if (icon === void 0) - icon = undefined; - if (badge === void 0) - badge = undefined; - if (sound === void 0) - sound = undefined; - if (vibrate === void 0) - vibrate = undefined; - if (timestamp === void 0) - timestamp = undefined; - if (renotify === void 0) - renotify = false; - if (silent === void 0) - silent = false; - if (noscreen === void 0) - noscreen = false; - if (requireInteraction === void 0) - requireInteraction = false; - if (sticky === void 0) - sticky = false; - if (data === void 0) - data = null; - if (actions === void 0) - actions = []; - var o = {}; - o['dir'] = dir; - o['lang'] = lang; - o['body'] = body; - o['tag'] = tag; - o['image'] = image; - o['icon'] = icon; - o['badge'] = badge; - o['sound'] = sound; - o['vibrate'] = vibrate; - o['timestamp'] = timestamp; - o['renotify'] = renotify; - o['silent'] = silent; - o['noscreen'] = noscreen; - o['requireInteraction'] = requireInteraction; - o['sticky'] = sticky; - o['data'] = data; - o['actions'] = actions; - return o; - }); - var NotificationAction = defineInlineFunction('kotlin.org.w3c.notifications.NotificationAction_eaqb6n$', function (action, title, icon) { - if (icon === void 0) - icon = undefined; - var o = {}; - o['action'] = action; - o['title'] = title; - o['icon'] = icon; - return o; - }); - var GetNotificationOptions = defineInlineFunction('kotlin.org.w3c.notifications.GetNotificationOptions_pdl1vj$', function (tag) { - if (tag === void 0) - tag = ''; - var o = {}; - o['tag'] = tag; - return o; - }); - var NotificationEventInit = defineInlineFunction('kotlin.org.w3c.notifications.NotificationEventInit_wmlth4$', function (notification, action, bubbles, cancelable, composed) { - if (action === void 0) - action = ''; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['notification'] = notification; - o['action'] = action; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var get_DEFAULT_3 = defineInlineFunction('kotlin.org.w3c.notifications.get_DEFAULT_4wcaio$', function ($receiver) { - return 'default'; - }); - var get_DENIED = defineInlineFunction('kotlin.org.w3c.notifications.get_DENIED_4wcaio$', function ($receiver) { - return 'denied'; - }); - var get_GRANTED = defineInlineFunction('kotlin.org.w3c.notifications.get_GRANTED_4wcaio$', function ($receiver) { - return 'granted'; - }); - var get_AUTO_1 = defineInlineFunction('kotlin.org.w3c.notifications.get_AUTO_6wyje4$', function ($receiver) { - return 'auto'; - }); - var get_LTR_0 = defineInlineFunction('kotlin.org.w3c.notifications.get_LTR_6wyje4$', function ($receiver) { - return 'ltr'; - }); - var get_RTL_0 = defineInlineFunction('kotlin.org.w3c.notifications.get_RTL_6wyje4$', function ($receiver) { - return 'rtl'; - }); - var RegistrationOptions = defineInlineFunction('kotlin.org.w3c.workers.RegistrationOptions_dbr88v$', function (scope, type) { - if (scope === void 0) - scope = undefined; - if (type === void 0) { - type = 'classic'; - } - var o = {}; - o['scope'] = scope; - o['type'] = type; - return o; - }); - var ServiceWorkerMessageEventInit = defineInlineFunction('kotlin.org.w3c.workers.ServiceWorkerMessageEventInit_d2wyw1$', function (data, origin, lastEventId, source, ports, bubbles, cancelable, composed) { - if (data === void 0) - data = undefined; - if (origin === void 0) - origin = undefined; - if (lastEventId === void 0) - lastEventId = undefined; - if (source === void 0) - source = undefined; - if (ports === void 0) - ports = undefined; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['data'] = data; - o['origin'] = origin; - o['lastEventId'] = lastEventId; - o['source'] = source; - o['ports'] = ports; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ClientQueryOptions = defineInlineFunction('kotlin.org.w3c.workers.ClientQueryOptions_d3lhiw$', function (includeUncontrolled, type) { - if (includeUncontrolled === void 0) - includeUncontrolled = false; - if (type === void 0) { - type = 'window'; - } - var o = {}; - o['includeUncontrolled'] = includeUncontrolled; - o['type'] = type; - return o; - }); - var ExtendableEventInit = defineInlineFunction('kotlin.org.w3c.workers.ExtendableEventInit_uic7jo$', function (bubbles, cancelable, composed) { - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ForeignFetchOptions = defineInlineFunction('kotlin.org.w3c.workers.ForeignFetchOptions_aye5cc$', function (scopes, origins) { - var o = {}; - o['scopes'] = scopes; - o['origins'] = origins; - return o; - }); - var FetchEventInit = defineInlineFunction('kotlin.org.w3c.workers.FetchEventInit_bfhkw8$', function (request, clientId, isReload, bubbles, cancelable, composed) { - if (clientId === void 0) - clientId = null; - if (isReload === void 0) - isReload = false; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['request'] = request; - o['clientId'] = clientId; - o['isReload'] = isReload; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ForeignFetchEventInit = defineInlineFunction('kotlin.org.w3c.workers.ForeignFetchEventInit_kdt7mo$', function (request, origin, bubbles, cancelable, composed) { - if (origin === void 0) - origin = 'null'; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['request'] = request; - o['origin'] = origin; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var ForeignFetchResponse = defineInlineFunction('kotlin.org.w3c.workers.ForeignFetchResponse_ikkqih$', function (response, origin, headers) { - if (origin === void 0) - origin = undefined; - if (headers === void 0) - headers = undefined; - var o = {}; - o['response'] = response; - o['origin'] = origin; - o['headers'] = headers; - return o; - }); - var ExtendableMessageEventInit = defineInlineFunction('kotlin.org.w3c.workers.ExtendableMessageEventInit_ud4veo$', function (data, origin, lastEventId, source, ports, bubbles, cancelable, composed) { - if (data === void 0) - data = undefined; - if (origin === void 0) - origin = undefined; - if (lastEventId === void 0) - lastEventId = undefined; - if (source === void 0) - source = undefined; - if (ports === void 0) - ports = undefined; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['data'] = data; - o['origin'] = origin; - o['lastEventId'] = lastEventId; - o['source'] = source; - o['ports'] = ports; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var CacheQueryOptions = defineInlineFunction('kotlin.org.w3c.workers.CacheQueryOptions_dh4ton$', function (ignoreSearch, ignoreMethod, ignoreVary, cacheName) { - if (ignoreSearch === void 0) - ignoreSearch = false; - if (ignoreMethod === void 0) - ignoreMethod = false; - if (ignoreVary === void 0) - ignoreVary = false; - if (cacheName === void 0) - cacheName = undefined; - var o = {}; - o['ignoreSearch'] = ignoreSearch; - o['ignoreMethod'] = ignoreMethod; - o['ignoreVary'] = ignoreVary; - o['cacheName'] = cacheName; - return o; - }); - var CacheBatchOperation = defineInlineFunction('kotlin.org.w3c.workers.CacheBatchOperation_e4hn3k$', function (type, request, response, options) { - if (type === void 0) - type = undefined; - if (request === void 0) - request = undefined; - if (response === void 0) - response = undefined; - if (options === void 0) - options = undefined; - var o = {}; - o['type'] = type; - o['request'] = request; - o['response'] = response; - o['options'] = options; - return o; - }); - var get_INSTALLING = defineInlineFunction('kotlin.org.w3c.workers.get_INSTALLING_7rndk9$', function ($receiver) { - return 'installing'; - }); - var get_INSTALLED = defineInlineFunction('kotlin.org.w3c.workers.get_INSTALLED_7rndk9$', function ($receiver) { - return 'installed'; - }); - var get_ACTIVATING = defineInlineFunction('kotlin.org.w3c.workers.get_ACTIVATING_7rndk9$', function ($receiver) { - return 'activating'; - }); - var get_ACTIVATED = defineInlineFunction('kotlin.org.w3c.workers.get_ACTIVATED_7rndk9$', function ($receiver) { - return 'activated'; - }); - var get_REDUNDANT = defineInlineFunction('kotlin.org.w3c.workers.get_REDUNDANT_7rndk9$', function ($receiver) { - return 'redundant'; - }); - var get_AUXILIARY = defineInlineFunction('kotlin.org.w3c.workers.get_AUXILIARY_1foc4s$', function ($receiver) { - return 'auxiliary'; - }); - var get_TOP_LEVEL = defineInlineFunction('kotlin.org.w3c.workers.get_TOP_LEVEL_1foc4s$', function ($receiver) { - return 'top-level'; - }); - var get_NESTED = defineInlineFunction('kotlin.org.w3c.workers.get_NESTED_1foc4s$', function ($receiver) { - return 'nested'; - }); - var get_NONE_3 = defineInlineFunction('kotlin.org.w3c.workers.get_NONE_1foc4s$', function ($receiver) { - return 'none'; - }); - var get_WINDOW = defineInlineFunction('kotlin.org.w3c.workers.get_WINDOW_jpgnoe$', function ($receiver) { - return 'window'; - }); - var get_WORKER_0 = defineInlineFunction('kotlin.org.w3c.workers.get_WORKER_jpgnoe$', function ($receiver) { - return 'worker'; - }); - var get_SHAREDWORKER_0 = defineInlineFunction('kotlin.org.w3c.workers.get_SHAREDWORKER_jpgnoe$', function ($receiver) { - return 'sharedworker'; - }); - var get_ALL = defineInlineFunction('kotlin.org.w3c.workers.get_ALL_jpgnoe$', function ($receiver) { - return 'all'; - }); - var ProgressEventInit = defineInlineFunction('kotlin.org.w3c.xhr.ProgressEventInit_swrtea$', function (lengthComputable, loaded, total, bubbles, cancelable, composed) { - if (lengthComputable === void 0) - lengthComputable = false; - if (loaded === void 0) - loaded = 0; - if (total === void 0) - total = 0; - if (bubbles === void 0) - bubbles = false; - if (cancelable === void 0) - cancelable = false; - if (composed === void 0) - composed = false; - var o = {}; - o['lengthComputable'] = lengthComputable; - o['loaded'] = loaded; - o['total'] = total; - o['bubbles'] = bubbles; - o['cancelable'] = cancelable; - o['composed'] = composed; - return o; - }); - var get_EMPTY_2 = defineInlineFunction('kotlin.org.w3c.xhr.get_EMPTY_8edqmh$', function ($receiver) { - return ''; - }); - var get_ARRAYBUFFER_0 = defineInlineFunction('kotlin.org.w3c.xhr.get_ARRAYBUFFER_8edqmh$', function ($receiver) { - return 'arraybuffer'; - }); - var get_BLOB_0 = defineInlineFunction('kotlin.org.w3c.xhr.get_BLOB_8edqmh$', function ($receiver) { - return 'blob'; - }); - var get_DOCUMENT_0 = defineInlineFunction('kotlin.org.w3c.xhr.get_DOCUMENT_8edqmh$', function ($receiver) { - return 'document'; - }); - var get_JSON = defineInlineFunction('kotlin.org.w3c.xhr.get_JSON_8edqmh$', function ($receiver) { - return 'json'; - }); - var get_TEXT = defineInlineFunction('kotlin.org.w3c.xhr.get_TEXT_8edqmh$', function ($receiver) { - return 'text'; - }); - function Experimental(level) { - if (level === void 0) - level = Experimental$Level$ERROR_getInstance(); - this.level = level; - } - function Experimental$Level(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function Experimental$Level_initFields() { - Experimental$Level_initFields = function () { - }; - Experimental$Level$WARNING_instance = new Experimental$Level('WARNING', 0); - Experimental$Level$ERROR_instance = new Experimental$Level('ERROR', 1); - } - var Experimental$Level$WARNING_instance; - function Experimental$Level$WARNING_getInstance() { - Experimental$Level_initFields(); - return Experimental$Level$WARNING_instance; - } - var Experimental$Level$ERROR_instance; - function Experimental$Level$ERROR_getInstance() { - Experimental$Level_initFields(); - return Experimental$Level$ERROR_instance; - } - Experimental$Level.$metadata$ = {kind: Kind_CLASS, simpleName: 'Level', interfaces: [Enum]}; - function Experimental$Level$values() { - return [Experimental$Level$WARNING_getInstance(), Experimental$Level$ERROR_getInstance()]; - } - Experimental$Level.values = Experimental$Level$values; - function Experimental$Level$valueOf(name) { - switch (name) { - case 'WARNING': - return Experimental$Level$WARNING_getInstance(); - case 'ERROR': - return Experimental$Level$ERROR_getInstance(); - default:throwISE('No enum constant kotlin.Experimental.Level.' + name); - } - } - Experimental$Level.valueOf_61zpoe$ = Experimental$Level$valueOf; - Experimental.$metadata$ = {kind: Kind_CLASS, simpleName: 'Experimental', interfaces: [Annotation]}; - function UseExperimental(markerClass) { - this.markerClass = markerClass; - } - UseExperimental.$metadata$ = {kind: Kind_CLASS, simpleName: 'UseExperimental', interfaces: [Annotation]}; - function WasExperimental(markerClass) { - this.markerClass = markerClass; - } - WasExperimental.$metadata$ = {kind: Kind_CLASS, simpleName: 'WasExperimental', interfaces: [Annotation]}; - function ExperimentalStdlibApi() { - } - ExperimentalStdlibApi.$metadata$ = {kind: Kind_CLASS, simpleName: 'ExperimentalStdlibApi', interfaces: [Annotation]}; - function BuilderInference() { - } - BuilderInference.$metadata$ = {kind: Kind_CLASS, simpleName: 'BuilderInference', interfaces: [Annotation]}; - function ExperimentalMultiplatform() { - } - ExperimentalMultiplatform.$metadata$ = {kind: Kind_CLASS, simpleName: 'ExperimentalMultiplatform', interfaces: [Annotation]}; - function OptionalExpectation() { - } - OptionalExpectation.$metadata$ = {kind: Kind_CLASS, simpleName: 'OptionalExpectation', interfaces: [Annotation]}; - function AbstractCollection() { - } - AbstractCollection.prototype.contains_11rb$ = function (element) { - var any$result; - any$break: do { - var tmp$; - if (Kotlin.isType(this, Collection) && this.isEmpty()) { - any$result = false; - break any$break; - } - tmp$ = this.iterator(); - while (tmp$.hasNext()) { - var element_0 = tmp$.next(); - if (equals(element_0, element)) { - any$result = true; - break any$break; - } - } - any$result = false; - } - while (false); - return any$result; - }; - AbstractCollection.prototype.containsAll_brywnq$ = function (elements) { - var all$result; - all$break: do { - var tmp$; - if (Kotlin.isType(elements, Collection) && elements.isEmpty()) { - all$result = true; - break all$break; - } - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!this.contains_11rb$(element)) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - AbstractCollection.prototype.isEmpty = function () { - return this.size === 0; - }; - function AbstractCollection$toString$lambda(this$AbstractCollection) { - return function (it) { - return it === this$AbstractCollection ? '(this Collection)' : toString(it); - }; - } - AbstractCollection.prototype.toString = function () { - return joinToString_8(this, ', ', '[', ']', void 0, void 0, AbstractCollection$toString$lambda(this)); - }; - AbstractCollection.prototype.toArray = function () { - return copyToArrayImpl(this); - }; - AbstractCollection.prototype.toArray_ro6dgy$ = function (array) { - return copyToArrayImpl_0(this, array); - }; - AbstractCollection.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractCollection', interfaces: [Collection]}; - function State(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function State_initFields() { - State_initFields = function () { - }; - State$Ready_instance = new State('Ready', 0); - State$NotReady_instance = new State('NotReady', 1); - State$Done_instance = new State('Done', 2); - State$Failed_instance = new State('Failed', 3); - } - var State$Ready_instance; - function State$Ready_getInstance() { - State_initFields(); - return State$Ready_instance; - } - var State$NotReady_instance; - function State$NotReady_getInstance() { - State_initFields(); - return State$NotReady_instance; - } - var State$Done_instance; - function State$Done_getInstance() { - State_initFields(); - return State$Done_instance; - } - var State$Failed_instance; - function State$Failed_getInstance() { - State_initFields(); - return State$Failed_instance; - } - State.$metadata$ = {kind: Kind_CLASS, simpleName: 'State', interfaces: [Enum]}; - function State$values() { - return [State$Ready_getInstance(), State$NotReady_getInstance(), State$Done_getInstance(), State$Failed_getInstance()]; - } - State.values = State$values; - function State$valueOf(name) { - switch (name) { - case 'Ready': - return State$Ready_getInstance(); - case 'NotReady': - return State$NotReady_getInstance(); - case 'Done': - return State$Done_getInstance(); - case 'Failed': - return State$Failed_getInstance(); - default:throwISE('No enum constant kotlin.collections.State.' + name); - } - } - State.valueOf_61zpoe$ = State$valueOf; - function AbstractIterator() { - this.state_smy23j$_0 = State$NotReady_getInstance(); - this.nextValue_phdh64$_0 = null; - } - AbstractIterator.prototype.hasNext = function () { - var tmp$; - if (!(this.state_smy23j$_0 !== State$Failed_getInstance())) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init_0(message.toString()); - } - switch (this.state_smy23j$_0.name) { - case 'Done': - tmp$ = false; - break; - case 'Ready': - tmp$ = true; - break; - default:tmp$ = this.tryToComputeNext_ser32m$_0(); - break; - } - return tmp$; - }; - AbstractIterator.prototype.next = function () { - var tmp$; - if (!this.hasNext()) - throw NoSuchElementException_init(); - this.state_smy23j$_0 = State$NotReady_getInstance(); - return (tmp$ = this.nextValue_phdh64$_0) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }; - AbstractIterator.prototype.tryToComputeNext_ser32m$_0 = function () { - this.state_smy23j$_0 = State$Failed_getInstance(); - this.computeNext(); - return this.state_smy23j$_0 === State$Ready_getInstance(); - }; - AbstractIterator.prototype.setNext_11rb$ = function (value) { - this.nextValue_phdh64$_0 = value; - this.state_smy23j$_0 = State$Ready_getInstance(); - }; - AbstractIterator.prototype.done = function () { - this.state_smy23j$_0 = State$Done_getInstance(); - }; - AbstractIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractIterator', interfaces: [Iterator]}; - function AbstractList() { - AbstractList$Companion_getInstance(); - AbstractCollection.call(this); - } - AbstractList.prototype.iterator = function () { - return new AbstractList$IteratorImpl(this); - }; - AbstractList.prototype.indexOf_11rb$ = function (element) { - var indexOfFirst$result; - indexOfFirst$break: do { - var tmp$; - var index = 0; - tmp$ = this.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if (equals(item, element)) { - indexOfFirst$result = index; - break indexOfFirst$break; - } - index = index + 1 | 0; - } - indexOfFirst$result = -1; - } - while (false); - return indexOfFirst$result; - }; - AbstractList.prototype.lastIndexOf_11rb$ = function (element) { - var indexOfLast$result; - indexOfLast$break: do { - var iterator = this.listIterator_za3lpa$(this.size); - while (iterator.hasPrevious()) { - if (equals(iterator.previous(), element)) { - indexOfLast$result = iterator.nextIndex(); - break indexOfLast$break; - } - } - indexOfLast$result = -1; - } - while (false); - return indexOfLast$result; - }; - AbstractList.prototype.listIterator = function () { - return new AbstractList$ListIteratorImpl(this, 0); - }; - AbstractList.prototype.listIterator_za3lpa$ = function (index) { - return new AbstractList$ListIteratorImpl(this, index); - }; - AbstractList.prototype.subList_vux9f0$ = function (fromIndex, toIndex) { - return new AbstractList$SubList(this, fromIndex, toIndex); - }; - function AbstractList$SubList(list, fromIndex, toIndex) { - AbstractList.call(this); - this.list_0 = list; - this.fromIndex_0 = fromIndex; - this._size_0 = 0; - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(this.fromIndex_0, toIndex, this.list_0.size); - this._size_0 = toIndex - this.fromIndex_0 | 0; - } - AbstractList$SubList.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this._size_0); - return this.list_0.get_za3lpa$(this.fromIndex_0 + index | 0); - }; - Object.defineProperty(AbstractList$SubList.prototype, 'size', {get: function () { - return this._size_0; - }}); - AbstractList$SubList.$metadata$ = {kind: Kind_CLASS, simpleName: 'SubList', interfaces: [RandomAccess, AbstractList]}; - AbstractList.prototype.equals = function (other) { - if (other === this) - return true; - if (!Kotlin.isType(other, List)) - return false; - return AbstractList$Companion_getInstance().orderedEquals_e92ka7$(this, other); - }; - AbstractList.prototype.hashCode = function () { - return AbstractList$Companion_getInstance().orderedHashCode_nykoif$(this); - }; - function AbstractList$IteratorImpl($outer) { - this.$outer = $outer; - this.index_0 = 0; - } - AbstractList$IteratorImpl.prototype.hasNext = function () { - return this.index_0 < this.$outer.size; - }; - AbstractList$IteratorImpl.prototype.next = function () { - var tmp$, tmp$_0; - if (!this.hasNext()) - throw NoSuchElementException_init(); - tmp$_0 = (tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$); - return this.$outer.get_za3lpa$(tmp$_0); - }; - AbstractList$IteratorImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'IteratorImpl', interfaces: [Iterator]}; - function AbstractList$ListIteratorImpl($outer, index) { - this.$outer = $outer; - AbstractList$IteratorImpl.call(this, this.$outer); - AbstractList$Companion_getInstance().checkPositionIndex_6xvm5r$(index, this.$outer.size); - this.index_0 = index; - } - AbstractList$ListIteratorImpl.prototype.hasPrevious = function () { - return this.index_0 > 0; - }; - AbstractList$ListIteratorImpl.prototype.nextIndex = function () { - return this.index_0; - }; - AbstractList$ListIteratorImpl.prototype.previous = function () { - if (!this.hasPrevious()) - throw NoSuchElementException_init(); - return this.$outer.get_za3lpa$((this.index_0 = this.index_0 - 1 | 0, this.index_0)); - }; - AbstractList$ListIteratorImpl.prototype.previousIndex = function () { - return this.index_0 - 1 | 0; - }; - AbstractList$ListIteratorImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'ListIteratorImpl', interfaces: [ListIterator, AbstractList$IteratorImpl]}; - function AbstractList$Companion() { - AbstractList$Companion_instance = this; - } - AbstractList$Companion.prototype.checkElementIndex_6xvm5r$ = function (index, size) { - if (index < 0 || index >= size) { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + size); - } - }; - AbstractList$Companion.prototype.checkPositionIndex_6xvm5r$ = function (index, size) { - if (index < 0 || index > size) { - throw new IndexOutOfBoundsException('index: ' + index + ', size: ' + size); - } - }; - AbstractList$Companion.prototype.checkRangeIndexes_cub51b$ = function (fromIndex, toIndex, size) { - if (fromIndex < 0 || toIndex > size) { - throw new IndexOutOfBoundsException('fromIndex: ' + fromIndex + ', toIndex: ' + toIndex + ', size: ' + size); - } - if (fromIndex > toIndex) { - throw IllegalArgumentException_init_0('fromIndex: ' + fromIndex + ' > toIndex: ' + toIndex); - } - }; - AbstractList$Companion.prototype.checkBoundsIndexes_cub51b$ = function (startIndex, endIndex, size) { - if (startIndex < 0 || endIndex > size) { - throw new IndexOutOfBoundsException('startIndex: ' + startIndex + ', endIndex: ' + endIndex + ', size: ' + size); - } - if (startIndex > endIndex) { - throw IllegalArgumentException_init_0('startIndex: ' + startIndex + ' > endIndex: ' + endIndex); - } - }; - AbstractList$Companion.prototype.orderedHashCode_nykoif$ = function (c) { - var tmp$, tmp$_0; - var hashCode_0 = 1; - tmp$ = c.iterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - hashCode_0 = (31 * hashCode_0 | 0) + ((tmp$_0 = e != null ? hashCode(e) : null) != null ? tmp$_0 : 0) | 0; - } - return hashCode_0; - }; - AbstractList$Companion.prototype.orderedEquals_e92ka7$ = function (c, other) { - var tmp$; - if (c.size !== other.size) - return false; - var otherIterator = other.iterator(); - tmp$ = c.iterator(); - while (tmp$.hasNext()) { - var elem = tmp$.next(); - var elemOther = otherIterator.next(); - if (!equals(elem, elemOther)) { - return false; - } - } - return true; - }; - AbstractList$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var AbstractList$Companion_instance = null; - function AbstractList$Companion_getInstance() { - if (AbstractList$Companion_instance === null) { - new AbstractList$Companion(); - } - return AbstractList$Companion_instance; - } - AbstractList.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractList', interfaces: [List, AbstractCollection]}; - function AbstractMap() { - AbstractMap$Companion_getInstance(); - this._keys_up5z3z$_0 = null; - this._values_6nw1f1$_0 = null; - } - AbstractMap.prototype.containsKey_11rb$ = function (key) { - return this.implFindEntry_8k1i24$_0(key) != null; - }; - AbstractMap.prototype.containsValue_11rc$ = function (value) { - var $receiver = this.entries; - var any$result; - any$break: do { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - any$result = false; - break any$break; - } - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (equals(element.value, value)) { - any$result = true; - break any$break; - } - } - any$result = false; - } - while (false); - return any$result; - }; - AbstractMap.prototype.containsEntry_8hxqw4$ = function (entry) { - if (!Kotlin.isType(entry, Map$Entry)) - return false; - var key = entry.key; - var value = entry.value; - var tmp$; - var ourValue = (Kotlin.isType(tmp$ = this, Map) ? tmp$ : throwCCE()).get_11rb$(key); - if (!equals(value, ourValue)) { - return false; - } - var tmp$_0 = ourValue == null; - if (tmp$_0) { - var tmp$_1; - tmp$_0 = !(Kotlin.isType(tmp$_1 = this, Map) ? tmp$_1 : throwCCE()).containsKey_11rb$(key); - } - if (tmp$_0) { - return false; - } - return true; - }; - AbstractMap.prototype.equals = function (other) { - if (other === this) - return true; - if (!Kotlin.isType(other, Map)) - return false; - if (this.size !== other.size) - return false; - var $receiver = other.entries; - var all$result; - all$break: do { - var tmp$; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - all$result = true; - break all$break; - } - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!this.containsEntry_8hxqw4$(element)) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - AbstractMap.prototype.get_11rb$ = function (key) { - var tmp$; - return (tmp$ = this.implFindEntry_8k1i24$_0(key)) != null ? tmp$.value : null; - }; - AbstractMap.prototype.hashCode = function () { - return hashCode(this.entries); - }; - AbstractMap.prototype.isEmpty = function () { - return this.size === 0; - }; - Object.defineProperty(AbstractMap.prototype, 'size', {get: function () { - return this.entries.size; - }}); - function AbstractMap$get_AbstractMap$keys$ObjectLiteral(this$AbstractMap) { - this.this$AbstractMap = this$AbstractMap; - AbstractSet.call(this); - } - AbstractMap$get_AbstractMap$keys$ObjectLiteral.prototype.contains_11rb$ = function (element) { - return this.this$AbstractMap.containsKey_11rb$(element); - }; - function AbstractMap$get_AbstractMap$keys$ObjectLiteral$iterator$ObjectLiteral(closure$entryIterator) { - this.closure$entryIterator = closure$entryIterator; - } - AbstractMap$get_AbstractMap$keys$ObjectLiteral$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.closure$entryIterator.hasNext(); - }; - AbstractMap$get_AbstractMap$keys$ObjectLiteral$iterator$ObjectLiteral.prototype.next = function () { - return this.closure$entryIterator.next().key; - }; - AbstractMap$get_AbstractMap$keys$ObjectLiteral$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - AbstractMap$get_AbstractMap$keys$ObjectLiteral.prototype.iterator = function () { - var entryIterator = this.this$AbstractMap.entries.iterator(); - return new AbstractMap$get_AbstractMap$keys$ObjectLiteral$iterator$ObjectLiteral(entryIterator); - }; - Object.defineProperty(AbstractMap$get_AbstractMap$keys$ObjectLiteral.prototype, 'size', {get: function () { - return this.this$AbstractMap.size; - }}); - AbstractMap$get_AbstractMap$keys$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractSet]}; - Object.defineProperty(AbstractMap.prototype, 'keys', {get: function () { - if (this._keys_up5z3z$_0 == null) { - this._keys_up5z3z$_0 = new AbstractMap$get_AbstractMap$keys$ObjectLiteral(this); - } - return ensureNotNull(this._keys_up5z3z$_0); - }}); - function AbstractMap$toString$lambda(this$AbstractMap) { - return function (it) { - return this$AbstractMap.toString_55he67$_0(it); - }; - } - AbstractMap.prototype.toString = function () { - return joinToString_8(this.entries, ', ', '{', '}', void 0, void 0, AbstractMap$toString$lambda(this)); - }; - AbstractMap.prototype.toString_55he67$_0 = function (entry) { - return this.toString_kthv8s$_0(entry.key) + '=' + this.toString_kthv8s$_0(entry.value); - }; - AbstractMap.prototype.toString_kthv8s$_0 = function (o) { - return o === this ? '(this Map)' : toString(o); - }; - function AbstractMap$get_AbstractMap$values$ObjectLiteral(this$AbstractMap) { - this.this$AbstractMap = this$AbstractMap; - AbstractCollection.call(this); - } - AbstractMap$get_AbstractMap$values$ObjectLiteral.prototype.contains_11rb$ = function (element) { - return this.this$AbstractMap.containsValue_11rc$(element); - }; - function AbstractMap$get_AbstractMap$values$ObjectLiteral$iterator$ObjectLiteral(closure$entryIterator) { - this.closure$entryIterator = closure$entryIterator; - } - AbstractMap$get_AbstractMap$values$ObjectLiteral$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.closure$entryIterator.hasNext(); - }; - AbstractMap$get_AbstractMap$values$ObjectLiteral$iterator$ObjectLiteral.prototype.next = function () { - return this.closure$entryIterator.next().value; - }; - AbstractMap$get_AbstractMap$values$ObjectLiteral$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - AbstractMap$get_AbstractMap$values$ObjectLiteral.prototype.iterator = function () { - var entryIterator = this.this$AbstractMap.entries.iterator(); - return new AbstractMap$get_AbstractMap$values$ObjectLiteral$iterator$ObjectLiteral(entryIterator); - }; - Object.defineProperty(AbstractMap$get_AbstractMap$values$ObjectLiteral.prototype, 'size', {get: function () { - return this.this$AbstractMap.size; - }}); - AbstractMap$get_AbstractMap$values$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractCollection]}; - Object.defineProperty(AbstractMap.prototype, 'values', {get: function () { - if (this._values_6nw1f1$_0 == null) { - this._values_6nw1f1$_0 = new AbstractMap$get_AbstractMap$values$ObjectLiteral(this); - } - return ensureNotNull(this._values_6nw1f1$_0); - }}); - AbstractMap.prototype.implFindEntry_8k1i24$_0 = function (key) { - var $receiver = this.entries; - var firstOrNull$result; - firstOrNull$break: do { - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (equals(element.key, key)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - return firstOrNull$result; - }; - function AbstractMap$Companion() { - AbstractMap$Companion_instance = this; - } - AbstractMap$Companion.prototype.entryHashCode_9fthdn$ = function (e) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - return ((tmp$_0 = (tmp$ = e.key) != null ? hashCode(tmp$) : null) != null ? tmp$_0 : 0) ^ ((tmp$_2 = (tmp$_1 = e.value) != null ? hashCode(tmp$_1) : null) != null ? tmp$_2 : 0); - }; - AbstractMap$Companion.prototype.entryToString_9fthdn$ = function (e) { - return toString(e.key) + '=' + toString(e.value); - }; - AbstractMap$Companion.prototype.entryEquals_js7fox$ = function (e, other) { - if (!Kotlin.isType(other, Map$Entry)) - return false; - return equals(e.key, other.key) && equals(e.value, other.value); - }; - AbstractMap$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var AbstractMap$Companion_instance = null; - function AbstractMap$Companion_getInstance() { - if (AbstractMap$Companion_instance === null) { - new AbstractMap$Companion(); - } - return AbstractMap$Companion_instance; - } - AbstractMap.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractMap', interfaces: [Map]}; - function AbstractSet() { - AbstractSet$Companion_getInstance(); - AbstractCollection.call(this); - } - AbstractSet.prototype.equals = function (other) { - if (other === this) - return true; - if (!Kotlin.isType(other, Set)) - return false; - return AbstractSet$Companion_getInstance().setEquals_y8f7en$(this, other); - }; - AbstractSet.prototype.hashCode = function () { - return AbstractSet$Companion_getInstance().unorderedHashCode_nykoif$(this); - }; - function AbstractSet$Companion() { - AbstractSet$Companion_instance = this; - } - AbstractSet$Companion.prototype.unorderedHashCode_nykoif$ = function (c) { - var tmp$; - var hashCode_0 = 0; - tmp$ = c.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - var tmp$_0; - hashCode_0 = hashCode_0 + ((tmp$_0 = element != null ? hashCode(element) : null) != null ? tmp$_0 : 0) | 0; - } - return hashCode_0; - }; - AbstractSet$Companion.prototype.setEquals_y8f7en$ = function (c, other) { - if (c.size !== other.size) - return false; - return c.containsAll_brywnq$(other); - }; - AbstractSet$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var AbstractSet$Companion_instance = null; - function AbstractSet$Companion_getInstance() { - if (AbstractSet$Companion_instance === null) { - new AbstractSet$Companion(); - } - return AbstractSet$Companion_instance; - } - AbstractSet.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractSet', interfaces: [Set, AbstractCollection]}; - function flatten($receiver) { - var tmp$; - var tmp$_0; - var sum = 0; - for (tmp$_0 = 0; tmp$_0 !== $receiver.length; ++tmp$_0) { - var element = $receiver[tmp$_0]; - sum = sum + element.length | 0; - } - var result = ArrayList_init_0(sum); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element_0 = $receiver[tmp$]; - addAll_1(result, element_0); - } - return result; - } - function unzip($receiver) { - var tmp$; - var listT = ArrayList_init_0($receiver.length); - var listR = ArrayList_init_0($receiver.length); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var pair = $receiver[tmp$]; - listT.add_11rb$(pair.first); - listR.add_11rb$(pair.second); - } - return to(listT, listR); - } - var isNullOrEmpty = defineInlineFunction('kotlin.kotlin.collections.isNullOrEmpty_tfvi98$', function ($receiver) { - var tmp$ = $receiver == null; - if (!tmp$) { - tmp$ = $receiver.length === 0; - } - return tmp$; - }); - var ifEmpty = defineInlineFunction('kotlin.kotlin.collections.ifEmpty_wfsi02$', function ($receiver, defaultValue) { - return $receiver.length === 0 ? defaultValue() : $receiver; - }); - function contentDeepEqualsImpl($receiver, other) { - if ($receiver === other) - return true; - if ($receiver.length !== other.length) - return false; - for (var i = 0; i !== $receiver.length; ++i) { - var v1 = $receiver[i]; - var v2 = other[i]; - if (v1 === v2) { - continue; - } - else if (v1 == null || v2 == null) { - return false; - } - if (Kotlin.isArray(v1) && Kotlin.isArray(v2)) { - if (!contentDeepEquals(v1, v2)) - return false; - } - else if (Kotlin.isByteArray(v1) && Kotlin.isByteArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isShortArray(v1) && Kotlin.isShortArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isIntArray(v1) && Kotlin.isIntArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isLongArray(v1) && Kotlin.isLongArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isFloatArray(v1) && Kotlin.isFloatArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isDoubleArray(v1) && Kotlin.isDoubleArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isCharArray(v1) && Kotlin.isCharArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isBooleanArray(v1) && Kotlin.isBooleanArray(v2)) { - if (!contentEquals(v1, v2)) - return false; - } - else if (Kotlin.isType(v1, UByteArray) && Kotlin.isType(v2, UByteArray)) { - if (!contentEquals_2(v1, v2)) - return false; - } - else if (Kotlin.isType(v1, UShortArray) && Kotlin.isType(v2, UShortArray)) { - if (!contentEquals_3(v1, v2)) - return false; - } - else if (Kotlin.isType(v1, UIntArray) && Kotlin.isType(v2, UIntArray)) { - if (!contentEquals_0(v1, v2)) - return false; - } - else if (Kotlin.isType(v1, ULongArray) && Kotlin.isType(v2, ULongArray)) { - if (!contentEquals_1(v1, v2)) - return false; - } - else if (!equals(v1, v2)) - return false; - } - return true; - } - function contentDeepToStringImpl($receiver) { - var length = (coerceAtMost_2($receiver.length, 429496729) * 5 | 0) + 2 | 0; - var $receiver_0 = StringBuilder_init(length); - contentDeepToStringInternal($receiver, $receiver_0, ArrayList_init()); - return $receiver_0.toString(); - } - function contentDeepToStringInternal($receiver, result, processed) { - if (processed.contains_11rb$($receiver)) { - result.append_gw00v9$('[...]'); - return; - } - processed.add_11rb$($receiver); - result.append_s8itvh$(91); - for (var i = 0; i !== $receiver.length; ++i) { - if (i !== 0) { - result.append_gw00v9$(', '); - } - var element = $receiver[i]; - if (element == null) - result.append_gw00v9$('null'); - else if (Kotlin.isArray(element)) - contentDeepToStringInternal(element, result, processed); - else if (Kotlin.isByteArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isShortArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isIntArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isLongArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isFloatArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isDoubleArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isCharArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isBooleanArray(element)) - result.append_gw00v9$(arrayToString(element)); - else if (Kotlin.isType(element, UByteArray)) - result.append_gw00v9$(contentToString_1(element)); - else if (Kotlin.isType(element, UShortArray)) - result.append_gw00v9$(contentToString_2(element)); - else if (Kotlin.isType(element, UIntArray)) - result.append_gw00v9$(contentToString(element)); - else if (Kotlin.isType(element, ULongArray)) - result.append_gw00v9$(contentToString_0(element)); - else - result.append_gw00v9$(element.toString()); - } - result.append_s8itvh$(93); - processed.removeAt_za3lpa$(get_lastIndex_12(processed)); - } - function EmptyIterator() { - EmptyIterator_instance = this; - } - EmptyIterator.prototype.hasNext = function () { - return false; - }; - EmptyIterator.prototype.hasPrevious = function () { - return false; - }; - EmptyIterator.prototype.nextIndex = function () { - return 0; - }; - EmptyIterator.prototype.previousIndex = function () { - return -1; - }; - EmptyIterator.prototype.next = function () { - throw NoSuchElementException_init(); - }; - EmptyIterator.prototype.previous = function () { - throw NoSuchElementException_init(); - }; - EmptyIterator.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptyIterator', interfaces: [ListIterator]}; - var EmptyIterator_instance = null; - function EmptyIterator_getInstance() { - if (EmptyIterator_instance === null) { - new EmptyIterator(); - } - return EmptyIterator_instance; - } - function EmptyList() { - EmptyList_instance = this; - this.serialVersionUID_0 = L_7390468764508069838; - } - EmptyList.prototype.equals = function (other) { - return Kotlin.isType(other, List) && other.isEmpty(); - }; - EmptyList.prototype.hashCode = function () { - return 1; - }; - EmptyList.prototype.toString = function () { - return '[]'; - }; - Object.defineProperty(EmptyList.prototype, 'size', {get: function () { - return 0; - }}); - EmptyList.prototype.isEmpty = function () { - return true; - }; - EmptyList.prototype.contains_11rb$ = function (element) { - return false; - }; - EmptyList.prototype.containsAll_brywnq$ = function (elements) { - return elements.isEmpty(); - }; - EmptyList.prototype.get_za3lpa$ = function (index) { - throw new IndexOutOfBoundsException("Empty list doesn't contain element at index " + index + '.'); - }; - EmptyList.prototype.indexOf_11rb$ = function (element) { - return -1; - }; - EmptyList.prototype.lastIndexOf_11rb$ = function (element) { - return -1; - }; - EmptyList.prototype.iterator = function () { - return EmptyIterator_getInstance(); - }; - EmptyList.prototype.listIterator = function () { - return EmptyIterator_getInstance(); - }; - EmptyList.prototype.listIterator_za3lpa$ = function (index) { - if (index !== 0) - throw new IndexOutOfBoundsException('Index: ' + index); - return EmptyIterator_getInstance(); - }; - EmptyList.prototype.subList_vux9f0$ = function (fromIndex, toIndex) { - if (fromIndex === 0 && toIndex === 0) - return this; - throw new IndexOutOfBoundsException('fromIndex: ' + fromIndex + ', toIndex: ' + toIndex); - }; - EmptyList.prototype.readResolve_0 = function () { - return EmptyList_getInstance(); - }; - EmptyList.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptyList', interfaces: [RandomAccess, Serializable, List]}; - var EmptyList_instance = null; - function EmptyList_getInstance() { - if (EmptyList_instance === null) { - new EmptyList(); - } - return EmptyList_instance; - } - function asCollection($receiver) { - return new ArrayAsCollection($receiver, false); - } - function ArrayAsCollection(values, isVarargs) { - this.values = values; - this.isVarargs = isVarargs; - } - Object.defineProperty(ArrayAsCollection.prototype, 'size', {get: function () { - return this.values.length; - }}); - ArrayAsCollection.prototype.isEmpty = function () { - return this.values.length === 0; - }; - ArrayAsCollection.prototype.contains_11rb$ = function (element) { - return contains(this.values, element); - }; - ArrayAsCollection.prototype.containsAll_brywnq$ = function (elements) { - var all$result; - all$break: do { - var tmp$; - if (Kotlin.isType(elements, Collection) && elements.isEmpty()) { - all$result = true; - break all$break; - } - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!this.contains_11rb$(element)) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - ArrayAsCollection.prototype.iterator = function () { - return Kotlin.arrayIterator(this.values); - }; - ArrayAsCollection.prototype.toArray = function () { - var $receiver = this.values; - return this.isVarargs ? $receiver : $receiver.slice(); - }; - ArrayAsCollection.$metadata$ = {kind: Kind_CLASS, simpleName: 'ArrayAsCollection', interfaces: [Collection]}; - function emptyList() { - return EmptyList_getInstance(); - } - function listOf_0(elements) { - return elements.length > 0 ? asList(elements) : emptyList(); - } - var listOf_1 = defineInlineFunction('kotlin.kotlin.collections.listOf_287e2$', wrapFunction(function () { - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function () { - return emptyList(); - }; - })); - var mutableListOf = defineInlineFunction('kotlin.kotlin.collections.mutableListOf_287e2$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function () { - return ArrayList_init(); - }; - })); - var arrayListOf = defineInlineFunction('kotlin.kotlin.collections.arrayListOf_287e2$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - return function () { - return ArrayList_init(); - }; - })); - function mutableListOf_0(elements) { - return elements.length === 0 ? ArrayList_init() : ArrayList_init_1(new ArrayAsCollection(elements, true)); - } - function arrayListOf_0(elements) { - return elements.length === 0 ? ArrayList_init() : ArrayList_init_1(new ArrayAsCollection(elements, true)); - } - function listOfNotNull(element) { - return element != null ? listOf(element) : emptyList(); - } - function listOfNotNull_0(elements) { - return filterNotNull(elements); - } - var List_0 = defineInlineFunction('kotlin.kotlin.collections.List_rz0iom$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function (size, init) { - var list = ArrayList_init(size); - for (var index = 0; index < size; index++) { - list.add_11rb$(init(index)); - } - return list; - }; - })); - var MutableList_0 = defineInlineFunction('kotlin.kotlin.collections.MutableList_rz0iom$', wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_ww73n8$; - return function (size, init) { - var list = ArrayList_init(size); - for (var index = 0; index < size; index++) { - list.add_11rb$(init(index)); - } - return list; - }; - })); - function get_indices_12($receiver) { - return new IntRange(0, $receiver.size - 1 | 0); - } - function get_lastIndex_12($receiver) { - return $receiver.size - 1 | 0; - } - var isNotEmpty_8 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_4c7yge$', function ($receiver) { - return !$receiver.isEmpty(); - }); - var isNullOrEmpty_0 = defineInlineFunction('kotlin.kotlin.collections.isNullOrEmpty_13nbcr$', function ($receiver) { - return $receiver == null || $receiver.isEmpty(); - }); - var orEmpty_0 = defineInlineFunction('kotlin.kotlin.collections.orEmpty_13nbcr$', wrapFunction(function () { - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver) { - return $receiver != null ? $receiver : emptyList(); - }; - })); - var orEmpty_1 = defineInlineFunction('kotlin.kotlin.collections.orEmpty_63d8zf$', wrapFunction(function () { - var emptyList = _.kotlin.collections.emptyList_287e2$; - return function ($receiver) { - return $receiver != null ? $receiver : emptyList(); - }; - })); - var ifEmpty_0 = defineInlineFunction('kotlin.kotlin.collections.ifEmpty_tc13va$', function ($receiver, defaultValue) { - return $receiver.isEmpty() ? defaultValue() : $receiver; - }); - var containsAll = defineInlineFunction('kotlin.kotlin.collections.containsAll_4mi8vl$', function ($receiver, elements) { - return $receiver.containsAll_brywnq$(elements); - }); - function optimizeReadOnlyList($receiver) { - switch ($receiver.size) { - case 0: - return emptyList(); - case 1: - return listOf($receiver.get_za3lpa$(0)); - default:return $receiver; - } - } - function binarySearch($receiver, element, fromIndex, toIndex) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = $receiver.size; - rangeCheck($receiver.size, fromIndex, toIndex); - var low = fromIndex; - var high = toIndex - 1 | 0; - while (low <= high) { - var mid = low + high >>> 1; - var midVal = $receiver.get_za3lpa$(mid); - var cmp = compareValues(midVal, element); - if (cmp < 0) - low = mid + 1 | 0; - else if (cmp > 0) - high = mid - 1 | 0; - else - return mid; - } - return -(low + 1 | 0) | 0; - } - function binarySearch_0($receiver, element, comparator, fromIndex, toIndex) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = $receiver.size; - rangeCheck($receiver.size, fromIndex, toIndex); - var low = fromIndex; - var high = toIndex - 1 | 0; - while (low <= high) { - var mid = low + high >>> 1; - var midVal = $receiver.get_za3lpa$(mid); - var cmp = comparator.compare(midVal, element); - if (cmp < 0) - low = mid + 1 | 0; - else if (cmp > 0) - high = mid - 1 | 0; - else - return mid; - } - return -(low + 1 | 0) | 0; - } - var binarySearchBy = defineInlineFunction('kotlin.kotlin.collections.binarySearchBy_7gj2ve$', wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - var binarySearch = _.kotlin.collections.binarySearch_sr7qim$; - function binarySearchBy$lambda(closure$selector, closure$key) { - return function (it) { - return compareValues(closure$selector(it), closure$key); - }; - } - return function ($receiver, key, fromIndex, toIndex, selector) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = $receiver.size; - return binarySearch($receiver, fromIndex, toIndex, binarySearchBy$lambda(selector, key)); - }; - })); - function binarySearch_1($receiver, fromIndex, toIndex, comparison) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = $receiver.size; - rangeCheck($receiver.size, fromIndex, toIndex); - var low = fromIndex; - var high = toIndex - 1 | 0; - while (low <= high) { - var mid = low + high >>> 1; - var midVal = $receiver.get_za3lpa$(mid); - var cmp = comparison(midVal); - if (cmp < 0) - low = mid + 1 | 0; - else if (cmp > 0) - high = mid - 1 | 0; - else - return mid; - } - return -(low + 1 | 0) | 0; - } - function rangeCheck(size, fromIndex, toIndex) { - if (fromIndex > toIndex) - throw IllegalArgumentException_init_0('fromIndex (' + fromIndex + ') is greater than toIndex (' + toIndex + ').'); - else if (fromIndex < 0) - throw new IndexOutOfBoundsException('fromIndex (' + fromIndex + ') is less than zero.'); - else if (toIndex > size) - throw new IndexOutOfBoundsException('toIndex (' + toIndex + ') is greater than size (' + size + ').'); - } - function throwIndexOverflow() { - throw new ArithmeticException('Index overflow has happened.'); - } - function throwCountOverflow() { - throw new ArithmeticException('Count overflow has happened.'); - } - function Grouping() { - } - Grouping.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Grouping', interfaces: []}; - var aggregate = defineInlineFunction('kotlin.kotlin.collections.aggregate_kz95qp$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, operation) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - destination.put_xwzc9p$(key, operation(key, accumulator, e, accumulator == null && !destination.containsKey_11rb$(key))); - } - return destination; - }; - })); - var aggregateTo = defineInlineFunction('kotlin.kotlin.collections.aggregateTo_qtifb3$', function ($receiver, destination, operation) { - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - destination.put_xwzc9p$(key, operation(key, accumulator, e, accumulator == null && !destination.containsKey_11rb$(key))); - } - return destination; - }); - var fold_15 = defineInlineFunction('kotlin.kotlin.collections.fold_2g9ybd$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, initialValueSelector, operation) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var tmp$_0; - destination.put_xwzc9p$(key, operation(key, accumulator == null && !destination.containsKey_11rb$(key) ? initialValueSelector(key, e) : (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(), e)); - } - return destination; - }; - })); - var foldTo = defineInlineFunction('kotlin.kotlin.collections.foldTo_ldb57n$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, destination, initialValueSelector, operation) { - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var tmp$_0; - destination.put_xwzc9p$(key, operation(key, accumulator == null && !destination.containsKey_11rb$(key) ? initialValueSelector(key, e) : (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(), e)); - } - return destination; - }; - })); - var fold_16 = defineInlineFunction('kotlin.kotlin.collections.fold_id3q3f$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, initialValue, operation) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var tmp$_0; - destination.put_xwzc9p$(key, operation(accumulator == null && !destination.containsKey_11rb$(key) ? initialValue : (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(), e)); - } - return destination; - }; - })); - var foldTo_0 = defineInlineFunction('kotlin.kotlin.collections.foldTo_1dwgsv$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, destination, initialValue, operation) { - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var tmp$_0; - destination.put_xwzc9p$(key, operation(accumulator == null && !destination.containsKey_11rb$(key) ? initialValue : (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(), e)); - } - return destination; - }; - })); - var reduce_15 = defineInlineFunction('kotlin.kotlin.collections.reduce_hy0spo$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, operation) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var operation$result; - var tmp$_0; - if (accumulator == null && !destination.containsKey_11rb$(key)) { - operation$result = e; - } - else { - operation$result = operation(key, (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(), e); - } - destination.put_xwzc9p$(key, operation$result); - } - return destination; - }; - })); - var reduceTo = defineInlineFunction('kotlin.kotlin.collections.reduceTo_vpctix$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, destination, operation) { - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var operation$result; - var tmp$_0; - if (accumulator == null && !destination.containsKey_11rb$(key)) { - operation$result = e; - } - else { - operation$result = operation(key, (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE(), e); - } - destination.put_xwzc9p$(key, operation$result); - } - return destination; - }; - })); - function eachCountTo($receiver, destination) { - var tmp$; - tmp$ = $receiver.sourceIterator(); - while (tmp$.hasNext()) { - var e = tmp$.next(); - var key = $receiver.keyOf_11rb$(e); - var accumulator = destination.get_11rb$(key); - var tmp$_0; - destination.put_xwzc9p$(key, (accumulator == null && !destination.containsKey_11rb$(key) ? 0 : (tmp$_0 = accumulator) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE()) + 1 | 0); - } - return destination; - } - function IndexedValue(index, value) { - this.index = index; - this.value = value; - } - IndexedValue.$metadata$ = {kind: Kind_CLASS, simpleName: 'IndexedValue', interfaces: []}; - IndexedValue.prototype.component1 = function () { - return this.index; - }; - IndexedValue.prototype.component2 = function () { - return this.value; - }; - IndexedValue.prototype.copy_wxm5ur$ = function (index, value) { - return new IndexedValue(index === void 0 ? this.index : index, value === void 0 ? this.value : value); - }; - IndexedValue.prototype.toString = function () { - return 'IndexedValue(index=' + Kotlin.toString(this.index) + (', value=' + Kotlin.toString(this.value)) + ')'; - }; - IndexedValue.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.index) | 0; - result = result * 31 + Kotlin.hashCode(this.value) | 0; - return result; - }; - IndexedValue.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && (Kotlin.equals(this.index, other.index) && Kotlin.equals(this.value, other.value))))); - }; - var Iterable_0 = defineInlineFunction('kotlin.kotlin.collections.Iterable_ms0qmx$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Iterable = _.kotlin.collections.Iterable; - function Iterable$ObjectLiteral(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Iterable$ObjectLiteral.prototype.iterator = function () { - return this.closure$iterator(); - }; - Iterable$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterable]}; - return function (iterator) { - return new Iterable$ObjectLiteral(iterator); - }; - })); - function IndexingIterable(iteratorFactory) { - this.iteratorFactory_0 = iteratorFactory; - } - IndexingIterable.prototype.iterator = function () { - return new IndexingIterator(this.iteratorFactory_0()); - }; - IndexingIterable.$metadata$ = {kind: Kind_CLASS, simpleName: 'IndexingIterable', interfaces: [Iterable]}; - function collectionSizeOrNull($receiver) { - return Kotlin.isType($receiver, Collection) ? $receiver.size : null; - } - function collectionSizeOrDefault($receiver, default_0) { - return Kotlin.isType($receiver, Collection) ? $receiver.size : default_0; - } - function safeToConvertToSet($receiver) { - return $receiver.size > 2 && Kotlin.isType($receiver, ArrayList); - } - function convertToSetForSetOperationWith($receiver, source) { - if (Kotlin.isType($receiver, Set)) - return $receiver; - else if (Kotlin.isType($receiver, Collection)) - if (Kotlin.isType(source, Collection) && source.size < 2) - return $receiver; - else - return safeToConvertToSet($receiver) ? toHashSet_8($receiver) : $receiver; - else - return toHashSet_8($receiver); - } - function convertToSetForSetOperation($receiver) { - if (Kotlin.isType($receiver, Set)) - return $receiver; - else if (Kotlin.isType($receiver, Collection)) - return safeToConvertToSet($receiver) ? toHashSet_8($receiver) : $receiver; - else - return toHashSet_8($receiver); - } - function flatten_0($receiver) { - var tmp$; - var result = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - addAll(result, element); - } - return result; - } - function unzip_0($receiver) { - var tmp$; - var expectedSize = collectionSizeOrDefault($receiver, 10); - var listT = ArrayList_init_0(expectedSize); - var listR = ArrayList_init_0(expectedSize); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var pair = tmp$.next(); - listT.add_11rb$(pair.first); - listR.add_11rb$(pair.second); - } - return to(listT, listR); - } - var iterator_0 = defineInlineFunction('kotlin.kotlin.collections.iterator_35ci02$', function ($receiver) { - return $receiver; - }); - function withIndex_15($receiver) { - return new IndexingIterator($receiver); - } - var forEach_16 = defineInlineFunction('kotlin.kotlin.collections.forEach_p594rv$', function ($receiver, operation) { - while ($receiver.hasNext()) { - var element = $receiver.next(); - operation(element); - } - }); - function IndexingIterator(iterator) { - this.iterator_0 = iterator; - this.index_0 = 0; - } - IndexingIterator.prototype.hasNext = function () { - return this.iterator_0.hasNext(); - }; - IndexingIterator.prototype.next = function () { - var tmp$; - return new IndexedValue(checkIndexOverflow((tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$)), this.iterator_0.next()); - }; - IndexingIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'IndexingIterator', interfaces: [Iterator]}; - var getValue = defineInlineFunction('kotlin.kotlin.collections.getValue_u8h43m$', wrapFunction(function () { - var getOrImplicitDefault = _.kotlin.collections.getOrImplicitDefault_t9ocha$; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, thisRef, property) { - var tmp$; - return (tmp$ = getOrImplicitDefault($receiver, property.callableName)) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - }; - })); - var getValue_0 = defineInlineFunction('kotlin.kotlin.collections.getValue_th1e6g$', wrapFunction(function () { - var getOrImplicitDefault = _.kotlin.collections.getOrImplicitDefault_t9ocha$; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, thisRef, property) { - var tmp$; - return (tmp$ = getOrImplicitDefault($receiver, property.callableName)) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - }; - })); - var getValue_1 = defineInlineFunction('kotlin.kotlin.collections.getValue_ag2o6f$', wrapFunction(function () { - var getOrImplicitDefault = _.kotlin.collections.getOrImplicitDefault_t9ocha$; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, thisRef, property) { - var tmp$; - return (tmp$ = getOrImplicitDefault($receiver, property.callableName)) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - }; - })); - var setValue = defineInlineFunction('kotlin.kotlin.collections.setValue_p0hbkv$', function ($receiver, thisRef, property, value) { - $receiver.put_xwzc9p$(property.callableName, value); - }); - function getOrImplicitDefault($receiver, key) { - if (Kotlin.isType($receiver, MapWithDefault)) - return $receiver.getOrImplicitDefault_11rb$(key); - var getOrElseNullable$result; - var tmp$; - var value = $receiver.get_11rb$(key); - if (value == null && !$receiver.containsKey_11rb$(key)) { - throw new NoSuchElementException('Key ' + key + ' is missing in the map.'); - } - else { - getOrElseNullable$result = (tmp$ = value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - } - return getOrElseNullable$result; - } - function withDefault($receiver, defaultValue) { - if (Kotlin.isType($receiver, MapWithDefault)) - return withDefault($receiver.map, defaultValue); - else - return new MapWithDefaultImpl($receiver, defaultValue); - } - function withDefault_0($receiver, defaultValue) { - if (Kotlin.isType($receiver, MutableMapWithDefault)) - return withDefault_0($receiver.map, defaultValue); - else - return new MutableMapWithDefaultImpl($receiver, defaultValue); - } - function MapWithDefault() { - } - MapWithDefault.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MapWithDefault', interfaces: [Map]}; - function MutableMapWithDefault() { - } - MutableMapWithDefault.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MutableMapWithDefault', interfaces: [MapWithDefault, MutableMap]}; - function MapWithDefaultImpl(map, default_0) { - this.map_tyjeqh$_0 = map; - this.default_0 = default_0; - } - Object.defineProperty(MapWithDefaultImpl.prototype, 'map', {get: function () { - return this.map_tyjeqh$_0; - }}); - MapWithDefaultImpl.prototype.equals = function (other) { - return equals(this.map, other); - }; - MapWithDefaultImpl.prototype.hashCode = function () { - return hashCode(this.map); - }; - MapWithDefaultImpl.prototype.toString = function () { - return this.map.toString(); - }; - Object.defineProperty(MapWithDefaultImpl.prototype, 'size', {get: function () { - return this.map.size; - }}); - MapWithDefaultImpl.prototype.isEmpty = function () { - return this.map.isEmpty(); - }; - MapWithDefaultImpl.prototype.containsKey_11rb$ = function (key) { - return this.map.containsKey_11rb$(key); - }; - MapWithDefaultImpl.prototype.containsValue_11rc$ = function (value) { - return this.map.containsValue_11rc$(value); - }; - MapWithDefaultImpl.prototype.get_11rb$ = function (key) { - return this.map.get_11rb$(key); - }; - Object.defineProperty(MapWithDefaultImpl.prototype, 'keys', {get: function () { - return this.map.keys; - }}); - Object.defineProperty(MapWithDefaultImpl.prototype, 'values', {get: function () { - return this.map.values; - }}); - Object.defineProperty(MapWithDefaultImpl.prototype, 'entries', {get: function () { - return this.map.entries; - }}); - MapWithDefaultImpl.prototype.getOrImplicitDefault_11rb$ = function (key) { - var $receiver = this.map; - var getOrElseNullable$result; - var tmp$; - var value = $receiver.get_11rb$(key); - if (value == null && !$receiver.containsKey_11rb$(key)) { - getOrElseNullable$result = this.default_0(key); - } - else { - getOrElseNullable$result = (tmp$ = value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - } - return getOrElseNullable$result; - }; - MapWithDefaultImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'MapWithDefaultImpl', interfaces: [MapWithDefault]}; - function MutableMapWithDefaultImpl(map, default_0) { - this.map_a09uzx$_0 = map; - this.default_0 = default_0; - } - Object.defineProperty(MutableMapWithDefaultImpl.prototype, 'map', {get: function () { - return this.map_a09uzx$_0; - }}); - MutableMapWithDefaultImpl.prototype.equals = function (other) { - return equals(this.map, other); - }; - MutableMapWithDefaultImpl.prototype.hashCode = function () { - return hashCode(this.map); - }; - MutableMapWithDefaultImpl.prototype.toString = function () { - return this.map.toString(); - }; - Object.defineProperty(MutableMapWithDefaultImpl.prototype, 'size', {get: function () { - return this.map.size; - }}); - MutableMapWithDefaultImpl.prototype.isEmpty = function () { - return this.map.isEmpty(); - }; - MutableMapWithDefaultImpl.prototype.containsKey_11rb$ = function (key) { - return this.map.containsKey_11rb$(key); - }; - MutableMapWithDefaultImpl.prototype.containsValue_11rc$ = function (value) { - return this.map.containsValue_11rc$(value); - }; - MutableMapWithDefaultImpl.prototype.get_11rb$ = function (key) { - return this.map.get_11rb$(key); - }; - Object.defineProperty(MutableMapWithDefaultImpl.prototype, 'keys', {get: function () { - return this.map.keys; - }}); - Object.defineProperty(MutableMapWithDefaultImpl.prototype, 'values', {get: function () { - return this.map.values; - }}); - Object.defineProperty(MutableMapWithDefaultImpl.prototype, 'entries', {get: function () { - return this.map.entries; - }}); - MutableMapWithDefaultImpl.prototype.put_xwzc9p$ = function (key, value) { - return this.map.put_xwzc9p$(key, value); - }; - MutableMapWithDefaultImpl.prototype.remove_11rb$ = function (key) { - return this.map.remove_11rb$(key); - }; - MutableMapWithDefaultImpl.prototype.putAll_a2k3zr$ = function (from) { - this.map.putAll_a2k3zr$(from); - }; - MutableMapWithDefaultImpl.prototype.clear = function () { - this.map.clear(); - }; - MutableMapWithDefaultImpl.prototype.getOrImplicitDefault_11rb$ = function (key) { - var $receiver = this.map; - var getOrElseNullable$result; - var tmp$; - var value = $receiver.get_11rb$(key); - if (value == null && !$receiver.containsKey_11rb$(key)) { - getOrElseNullable$result = this.default_0(key); - } - else { - getOrElseNullable$result = (tmp$ = value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - } - return getOrElseNullable$result; - }; - MutableMapWithDefaultImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'MutableMapWithDefaultImpl', interfaces: [MutableMapWithDefault]}; - function EmptyMap() { - EmptyMap_instance = this; - this.serialVersionUID_0 = L8246714829545688274; - } - EmptyMap.prototype.equals = function (other) { - return Kotlin.isType(other, Map) && other.isEmpty(); - }; - EmptyMap.prototype.hashCode = function () { - return 0; - }; - EmptyMap.prototype.toString = function () { - return '{}'; - }; - Object.defineProperty(EmptyMap.prototype, 'size', {get: function () { - return 0; - }}); - EmptyMap.prototype.isEmpty = function () { - return true; - }; - EmptyMap.prototype.containsKey_11rb$ = function (key) { - return false; - }; - EmptyMap.prototype.containsValue_11rc$ = function (value) { - return false; - }; - EmptyMap.prototype.get_11rb$ = function (key) { - return null; - }; - Object.defineProperty(EmptyMap.prototype, 'entries', {get: function () { - return EmptySet_getInstance(); - }}); - Object.defineProperty(EmptyMap.prototype, 'keys', {get: function () { - return EmptySet_getInstance(); - }}); - Object.defineProperty(EmptyMap.prototype, 'values', {get: function () { - return EmptyList_getInstance(); - }}); - EmptyMap.prototype.readResolve_0 = function () { - return EmptyMap_getInstance(); - }; - EmptyMap.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptyMap', interfaces: [Serializable, Map]}; - var EmptyMap_instance = null; - function EmptyMap_getInstance() { - if (EmptyMap_instance === null) { - new EmptyMap(); - } - return EmptyMap_instance; - } - function emptyMap() { - var tmp$; - return Kotlin.isType(tmp$ = EmptyMap_getInstance(), Map) ? tmp$ : throwCCE_0(); - } - function mapOf_0(pairs) { - return pairs.length > 0 ? toMap_2(pairs, LinkedHashMap_init_2(mapCapacity(pairs.length))) : emptyMap(); - } - var mapOf_1 = defineInlineFunction('kotlin.kotlin.collections.mapOf_q3lmfv$', wrapFunction(function () { - var emptyMap = _.kotlin.collections.emptyMap_q3lmfv$; - return function () { - return emptyMap(); - }; - })); - var mutableMapOf = defineInlineFunction('kotlin.kotlin.collections.mutableMapOf_q3lmfv$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function () { - return LinkedHashMap_init(); - }; - })); - function mutableMapOf_0(pairs) { - var $receiver = LinkedHashMap_init_2(mapCapacity(pairs.length)); - putAll($receiver, pairs); - return $receiver; - } - var hashMapOf = defineInlineFunction('kotlin.kotlin.collections.hashMapOf_q3lmfv$', wrapFunction(function () { - var HashMap_init = _.kotlin.collections.HashMap_init_q3lmfv$; - return function () { - return HashMap_init(); - }; - })); - function hashMapOf_0(pairs) { - var $receiver = HashMap_init_2(mapCapacity(pairs.length)); - putAll($receiver, pairs); - return $receiver; - } - var linkedMapOf = defineInlineFunction('kotlin.kotlin.collections.linkedMapOf_q3lmfv$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function () { - return LinkedHashMap_init(); - }; - })); - function linkedMapOf_0(pairs) { - return toMap_2(pairs, LinkedHashMap_init_2(mapCapacity(pairs.length))); - } - function mapCapacity(expectedSize) { - if (expectedSize < 3) { - return expectedSize + 1 | 0; - } - if (expectedSize < 1073741824) { - return expectedSize + (expectedSize / 3 | 0) | 0; - } - return 2147483647; - } - var INT_MAX_POWER_OF_TWO; - var isNotEmpty_9 = defineInlineFunction('kotlin.kotlin.collections.isNotEmpty_abgq59$', function ($receiver) { - return !$receiver.isEmpty(); - }); - var isNullOrEmpty_1 = defineInlineFunction('kotlin.kotlin.collections.isNullOrEmpty_13qzv0$', function ($receiver) { - return $receiver == null || $receiver.isEmpty(); - }); - var orEmpty_2 = defineInlineFunction('kotlin.kotlin.collections.orEmpty_f3wkhh$', wrapFunction(function () { - var emptyMap = _.kotlin.collections.emptyMap_q3lmfv$; - return function ($receiver) { - return $receiver != null ? $receiver : emptyMap(); - }; - })); - var ifEmpty_1 = defineInlineFunction('kotlin.kotlin.collections.ifEmpty_geskui$', function ($receiver, defaultValue) { - return $receiver.isEmpty() ? defaultValue() : $receiver; - }); - var contains_51 = defineInlineFunction('kotlin.kotlin.collections.contains_4pa84t$', wrapFunction(function () { - var Map = _.kotlin.collections.Map; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, key) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, Map) ? tmp$ : throwCCE()).containsKey_11rb$(key); - }; - })); - var get_46 = defineInlineFunction('kotlin.kotlin.collections.get_4pa84t$', wrapFunction(function () { - var Map = _.kotlin.collections.Map; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, key) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, Map) ? tmp$ : throwCCE()).get_11rb$(key); - }; - })); - var set_19 = defineInlineFunction('kotlin.kotlin.collections.set_6y9eq4$', function ($receiver, key, value) { - $receiver.put_xwzc9p$(key, value); - }); - var containsKey = defineInlineFunction('kotlin.kotlin.collections.containsKey_ysgkzk$', wrapFunction(function () { - var Map = _.kotlin.collections.Map; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, key) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, Map) ? tmp$ : throwCCE()).containsKey_11rb$(key); - }; - })); - var containsValue = defineInlineFunction('kotlin.kotlin.collections.containsValue_bvbopf$', function ($receiver, value) { - return $receiver.containsValue_11rc$(value); - }); - var remove = defineInlineFunction('kotlin.kotlin.collections.remove_vbdv38$', wrapFunction(function () { - var MutableMap = _.kotlin.collections.MutableMap; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, key) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, MutableMap) ? tmp$ : throwCCE()).remove_11rb$(key); - }; - })); - var component1_13 = defineInlineFunction('kotlin.kotlin.collections.component1_gzf0zl$', function ($receiver) { - return $receiver.key; - }); - var component2_13 = defineInlineFunction('kotlin.kotlin.collections.component2_gzf0zl$', function ($receiver) { - return $receiver.value; - }); - var toPair = defineInlineFunction('kotlin.kotlin.collections.toPair_gzf0zl$', wrapFunction(function () { - var Pair_init = _.kotlin.Pair; - return function ($receiver) { - return new Pair_init($receiver.key, $receiver.value); - }; - })); - var getOrElse_14 = defineInlineFunction('kotlin.kotlin.collections.getOrElse_illxjf$', function ($receiver, key, defaultValue) { - var tmp$; - return (tmp$ = $receiver.get_11rb$(key)) != null ? tmp$ : defaultValue(); - }); - var getOrElseNullable = defineInlineFunction('kotlin.kotlin.collections.getOrElseNullable_e54js$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, key, defaultValue) { - var tmp$; - var value = $receiver.get_11rb$(key); - if (value == null && !$receiver.containsKey_11rb$(key)) { - return defaultValue(); - } - else { - return (tmp$ = value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - } - }; - })); - function getValue_2($receiver, key) { - return getOrImplicitDefault($receiver, key); - } - var getOrPut = defineInlineFunction('kotlin.kotlin.collections.getOrPut_9wl75a$', function ($receiver, key, defaultValue) { - var tmp$; - var value = $receiver.get_11rb$(key); - if (value == null) { - var answer = defaultValue(); - $receiver.put_xwzc9p$(key, answer); - tmp$ = answer; - } - else { - tmp$ = value; - } - return tmp$; - }); - var iterator_1 = defineInlineFunction('kotlin.kotlin.collections.iterator_abgq59$', function ($receiver) { - return $receiver.entries.iterator(); - }); - var iterator_2 = defineInlineFunction('kotlin.kotlin.collections.iterator_5rvit3$', function ($receiver) { - return $receiver.entries.iterator(); - }); - var mapValuesTo = defineInlineFunction('kotlin.kotlin.collections.mapValuesTo_8auxj8$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(element.key, transform(element)); - } - return destination; - }); - var mapKeysTo = defineInlineFunction('kotlin.kotlin.collections.mapKeysTo_l1xmvz$', function ($receiver, destination, transform) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(transform(element), element.value); - } - return destination; - }); - function putAll($receiver, pairs) { - var tmp$; - for (tmp$ = 0; tmp$ !== pairs.length; ++tmp$) { - var tmp$_0 = pairs[tmp$]; - var key = tmp$_0.component1(), value = tmp$_0.component2(); - $receiver.put_xwzc9p$(key, value); - } - } - function putAll_0($receiver, pairs) { - var tmp$; - tmp$ = pairs.iterator(); - while (tmp$.hasNext()) { - var tmp$_0 = tmp$.next(); - var key = tmp$_0.component1(), value = tmp$_0.component2(); - $receiver.put_xwzc9p$(key, value); - } - } - function putAll_1($receiver, pairs) { - var tmp$; - tmp$ = pairs.iterator(); - while (tmp$.hasNext()) { - var tmp$_0 = tmp$.next(); - var key = tmp$_0.component1(), value = tmp$_0.component2(); - $receiver.put_xwzc9p$(key, value); - } - } - var mapValues = defineInlineFunction('kotlin.kotlin.collections.mapValues_8169ik$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var destination = LinkedHashMap_init(mapCapacity($receiver.size)); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(element.key, transform(element)); - } - return destination; - }; - })); - var mapKeys = defineInlineFunction('kotlin.kotlin.collections.mapKeys_8169ik$', wrapFunction(function () { - var mapCapacity = _.kotlin.collections.mapCapacity_za3lpa$; - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_bwtc7$; - return function ($receiver, transform) { - var destination = LinkedHashMap_init(mapCapacity($receiver.size)); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - destination.put_xwzc9p$(transform(element), element.value); - } - return destination; - }; - })); - var filterKeys = defineInlineFunction('kotlin.kotlin.collections.filterKeys_bbcyu0$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, predicate) { - var tmp$; - var result = LinkedHashMap_init(); - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var entry = tmp$.next(); - if (predicate(entry.key)) { - result.put_xwzc9p$(entry.key, entry.value); - } - } - return result; - }; - })); - var filterValues = defineInlineFunction('kotlin.kotlin.collections.filterValues_btttvb$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, predicate) { - var tmp$; - var result = LinkedHashMap_init(); - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var entry = tmp$.next(); - if (predicate(entry.value)) { - result.put_xwzc9p$(entry.key, entry.value); - } - } - return result; - }; - })); - var filterTo_15 = defineInlineFunction('kotlin.kotlin.collections.filterTo_6i6lq2$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - destination.put_xwzc9p$(element.key, element.value); - } - } - return destination; - }); - var filter_16 = defineInlineFunction('kotlin.kotlin.collections.filter_9peqz9$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, predicate) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (predicate(element)) { - destination.put_xwzc9p$(element.key, element.value); - } - } - return destination; - }; - })); - var filterNotTo_15 = defineInlineFunction('kotlin.kotlin.collections.filterNotTo_6i6lq2$', function ($receiver, destination, predicate) { - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) { - destination.put_xwzc9p$(element.key, element.value); - } - } - return destination; - }); - var filterNot_16 = defineInlineFunction('kotlin.kotlin.collections.filterNot_9peqz9$', wrapFunction(function () { - var LinkedHashMap_init = _.kotlin.collections.LinkedHashMap_init_q3lmfv$; - return function ($receiver, predicate) { - var destination = LinkedHashMap_init(); - var tmp$; - tmp$ = $receiver.entries.iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - if (!predicate(element)) { - destination.put_xwzc9p$(element.key, element.value); - } - } - return destination; - }; - })); - function toMap($receiver) { - var tmp$; - if (Kotlin.isType($receiver, Collection)) { - switch ($receiver.size) { - case 0: - tmp$ = emptyMap(); - break; - case 1: - tmp$ = mapOf(Kotlin.isType($receiver, List) ? $receiver.get_za3lpa$(0) : $receiver.iterator().next()); - break; - default:tmp$ = toMap_0($receiver, LinkedHashMap_init_2(mapCapacity($receiver.size))); - break; - } - return tmp$; - } - return optimizeReadOnlyMap(toMap_0($receiver, LinkedHashMap_init())); - } - function toMap_0($receiver, destination) { - putAll_0(destination, $receiver); - return destination; - } - function toMap_1($receiver) { - switch ($receiver.length) { - case 0: - return emptyMap(); - case 1: - return mapOf($receiver[0]); - default:return toMap_2($receiver, LinkedHashMap_init_2(mapCapacity($receiver.length))); - } - } - function toMap_2($receiver, destination) { - putAll(destination, $receiver); - return destination; - } - function toMap_3($receiver) { - return optimizeReadOnlyMap(toMap_4($receiver, LinkedHashMap_init())); - } - function toMap_4($receiver, destination) { - putAll_1(destination, $receiver); - return destination; - } - function toMap_5($receiver) { - switch ($receiver.size) { - case 0: - return emptyMap(); - case 1: - return toMutableMap($receiver); - default:return toMutableMap($receiver); - } - } - function toMutableMap($receiver) { - return LinkedHashMap_init_3($receiver); - } - function toMap_6($receiver, destination) { - destination.putAll_a2k3zr$($receiver); - return destination; - } - function plus_54($receiver, pair) { - var tmp$; - if ($receiver.isEmpty()) - tmp$ = mapOf(pair); - else { - var $receiver_0 = LinkedHashMap_init_3($receiver); - $receiver_0.put_xwzc9p$(pair.first, pair.second); - tmp$ = $receiver_0; - } - return tmp$; - } - function plus_55($receiver, pairs) { - var tmp$; - if ($receiver.isEmpty()) - tmp$ = toMap(pairs); - else { - var $receiver_0 = LinkedHashMap_init_3($receiver); - putAll_0($receiver_0, pairs); - tmp$ = $receiver_0; - } - return tmp$; - } - function plus_56($receiver, pairs) { - var tmp$; - if ($receiver.isEmpty()) - tmp$ = toMap_1(pairs); - else { - var $receiver_0 = LinkedHashMap_init_3($receiver); - putAll($receiver_0, pairs); - tmp$ = $receiver_0; - } - return tmp$; - } - function plus_57($receiver, pairs) { - var $receiver_0 = LinkedHashMap_init_3($receiver); - putAll_1($receiver_0, pairs); - return optimizeReadOnlyMap($receiver_0); - } - function plus_58($receiver, map) { - var $receiver_0 = LinkedHashMap_init_3($receiver); - $receiver_0.putAll_a2k3zr$(map); - return $receiver_0; - } - var plusAssign = defineInlineFunction('kotlin.kotlin.collections.plusAssign_iu53pl$', function ($receiver, pair) { - $receiver.put_xwzc9p$(pair.first, pair.second); - }); - var plusAssign_0 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_cweazw$', wrapFunction(function () { - var putAll = _.kotlin.collections.putAll_cweazw$; - return function ($receiver, pairs) { - putAll($receiver, pairs); - }; - })); - var plusAssign_1 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_5gv49o$', wrapFunction(function () { - var putAll = _.kotlin.collections.putAll_5gv49o$; - return function ($receiver, pairs) { - putAll($receiver, pairs); - }; - })); - var plusAssign_2 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_2ud8ki$', wrapFunction(function () { - var putAll = _.kotlin.collections.putAll_2ud8ki$; - return function ($receiver, pairs) { - putAll($receiver, pairs); - }; - })); - var plusAssign_3 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_i7ax6h$', function ($receiver, map) { - $receiver.putAll_a2k3zr$(map); - }); - function minus_11($receiver, key) { - var $receiver_0 = toMutableMap($receiver); - $receiver_0.remove_11rb$(key); - return optimizeReadOnlyMap($receiver_0); - } - function minus_12($receiver, keys) { - var $receiver_0 = toMutableMap($receiver); - removeAll_2($receiver_0.keys, keys); - return optimizeReadOnlyMap($receiver_0); - } - function minus_13($receiver, keys) { - var $receiver_0 = toMutableMap($receiver); - removeAll_4($receiver_0.keys, keys); - return optimizeReadOnlyMap($receiver_0); - } - function minus_14($receiver, keys) { - var $receiver_0 = toMutableMap($receiver); - removeAll_3($receiver_0.keys, keys); - return optimizeReadOnlyMap($receiver_0); - } - var minusAssign = defineInlineFunction('kotlin.kotlin.collections.minusAssign_5rmzjt$', function ($receiver, key) { - $receiver.remove_11rb$(key); - }); - var minusAssign_0 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_zgveeq$', wrapFunction(function () { - var removeAll = _.kotlin.collections.removeAll_ipc267$; - return function ($receiver, keys) { - removeAll($receiver.keys, keys); - }; - })); - var minusAssign_1 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_kom96y$', wrapFunction(function () { - var removeAll = _.kotlin.collections.removeAll_ye1y7v$; - return function ($receiver, keys) { - removeAll($receiver.keys, keys); - }; - })); - var minusAssign_2 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_1zq34s$', wrapFunction(function () { - var removeAll = _.kotlin.collections.removeAll_tj7pfx$; - return function ($receiver, keys) { - removeAll($receiver.keys, keys); - }; - })); - function optimizeReadOnlyMap($receiver) { - switch ($receiver.size) { - case 0: - return emptyMap(); - case 1: - return $receiver; - default:return $receiver; - } - } - var remove_0 = defineInlineFunction('kotlin.kotlin.collections.remove_cz4ny2$', wrapFunction(function () { - var MutableCollection = _.kotlin.collections.MutableCollection; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, element) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, MutableCollection) ? tmp$ : throwCCE()).remove_11rb$(element); - }; - })); - var removeAll = defineInlineFunction('kotlin.kotlin.collections.removeAll_qrknmz$', wrapFunction(function () { - var MutableCollection = _.kotlin.collections.MutableCollection; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, elements) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, MutableCollection) ? tmp$ : throwCCE()).removeAll_brywnq$(elements); - }; - })); - var retainAll = defineInlineFunction('kotlin.kotlin.collections.retainAll_qrknmz$', wrapFunction(function () { - var MutableCollection = _.kotlin.collections.MutableCollection; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, elements) { - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, MutableCollection) ? tmp$ : throwCCE()).retainAll_brywnq$(elements); - }; - })); - var remove_1 = defineInlineFunction('kotlin.kotlin.collections.remove_tkbrz9$', function ($receiver, index) { - return $receiver.removeAt_za3lpa$(index); - }); - var plusAssign_4 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_mohyd4$', function ($receiver, element) { - $receiver.add_11rb$(element); - }); - var plusAssign_5 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_ipc267$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ipc267$; - return function ($receiver, elements) { - addAll($receiver, elements); - }; - })); - var plusAssign_6 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_x8tvoq$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_ye1y7v$; - return function ($receiver, elements) { - addAll($receiver, elements); - }; - })); - var plusAssign_7 = defineInlineFunction('kotlin.kotlin.collections.plusAssign_tj7pfx$', wrapFunction(function () { - var addAll = _.kotlin.collections.addAll_tj7pfx$; - return function ($receiver, elements) { - addAll($receiver, elements); - }; - })); - var minusAssign_3 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_mohyd4$', function ($receiver, element) { - $receiver.remove_11rb$(element); - }); - var minusAssign_4 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_ipc267$', wrapFunction(function () { - var removeAll = _.kotlin.collections.removeAll_ipc267$; - return function ($receiver, elements) { - removeAll($receiver, elements); - }; - })); - var minusAssign_5 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_x8tvoq$', wrapFunction(function () { - var removeAll = _.kotlin.collections.removeAll_ye1y7v$; - return function ($receiver, elements) { - removeAll($receiver, elements); - }; - })); - var minusAssign_6 = defineInlineFunction('kotlin.kotlin.collections.minusAssign_tj7pfx$', wrapFunction(function () { - var removeAll = _.kotlin.collections.removeAll_tj7pfx$; - return function ($receiver, elements) { - removeAll($receiver, elements); - }; - })); - function addAll($receiver, elements) { - var tmp$; - if (Kotlin.isType(elements, Collection)) - return $receiver.addAll_brywnq$(elements); - else { - var result = false; - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ($receiver.add_11rb$(item)) - result = true; - } - return result; - } - } - function addAll_0($receiver, elements) { - var tmp$; - var result = false; - tmp$ = elements.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - if ($receiver.add_11rb$(item)) - result = true; - } - return result; - } - function addAll_1($receiver, elements) { - return $receiver.addAll_brywnq$(asList(elements)); - } - function removeAll_0($receiver, predicate) { - return filterInPlace($receiver, predicate, true); - } - function retainAll_0($receiver, predicate) { - return filterInPlace($receiver, predicate, false); - } - function filterInPlace($receiver, predicate, predicateResultToRemove) { - var result = {v: false}; - var $receiver_0 = $receiver.iterator(); - while ($receiver_0.hasNext()) - if (predicate($receiver_0.next()) === predicateResultToRemove) { - $receiver_0.remove(); - result.v = true; - } - return result.v; - } - function removeAll_1($receiver, predicate) { - return filterInPlace_0($receiver, predicate, true); - } - function retainAll_1($receiver, predicate) { - return filterInPlace_0($receiver, predicate, false); - } - function filterInPlace_0($receiver, predicate, predicateResultToRemove) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - if (!Kotlin.isType($receiver, RandomAccess)) - return filterInPlace(Kotlin.isType(tmp$ = $receiver, MutableIterable) ? tmp$ : throwCCE_0(), predicate, predicateResultToRemove); - var writeIndex = 0; - tmp$_0 = get_lastIndex_12($receiver); - for (var readIndex = 0; readIndex <= tmp$_0; readIndex++) { - var element = $receiver.get_za3lpa$(readIndex); - if (predicate(element) === predicateResultToRemove) - continue; - if (writeIndex !== readIndex) - $receiver.set_wxm5ur$(writeIndex, element); - writeIndex = writeIndex + 1 | 0; - } - if (writeIndex < $receiver.size) { - tmp$_1 = get_lastIndex_12($receiver); - tmp$_2 = writeIndex; - for (var removeIndex = tmp$_1; removeIndex >= tmp$_2; removeIndex--) - $receiver.removeAt_za3lpa$(removeIndex); - return true; - } - else { - return false; - } - } - function removeAll_2($receiver, elements) { - var elements_0 = convertToSetForSetOperationWith(elements, $receiver); - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, MutableCollection) ? tmp$ : throwCCE()).removeAll_brywnq$(elements_0); - } - function removeAll_3($receiver, elements) { - var set = toHashSet_9(elements); - return !set.isEmpty() && $receiver.removeAll_brywnq$(set); - } - function removeAll_4($receiver, elements) { - return !(elements.length === 0) && $receiver.removeAll_brywnq$(toHashSet(elements)); - } - function retainAll_2($receiver, elements) { - var elements_0 = convertToSetForSetOperationWith(elements, $receiver); - var tmp$; - return (Kotlin.isType(tmp$ = $receiver, MutableCollection) ? tmp$ : throwCCE()).retainAll_brywnq$(elements_0); - } - function retainAll_3($receiver, elements) { - if (!(elements.length === 0)) - return $receiver.retainAll_brywnq$(toHashSet(elements)); - else - return retainNothing($receiver); - } - function retainAll_4($receiver, elements) { - var set = toHashSet_9(elements); - if (!set.isEmpty()) - return $receiver.retainAll_brywnq$(set); - else - return retainNothing($receiver); - } - function retainNothing($receiver) { - var result = !$receiver.isEmpty(); - $receiver.clear(); - return result; - } - function shuffle_0($receiver, random) { - for (var i = get_lastIndex_12($receiver); i >= 1; i--) { - var j = random.nextInt_za3lpa$(i + 1 | 0); - var copy = $receiver.get_za3lpa$(i); - $receiver.set_wxm5ur$(i, $receiver.get_za3lpa$(j)); - $receiver.set_wxm5ur$(j, copy); - } - } - function shuffled_0($receiver, random) { - var $receiver_0 = toMutableList_8($receiver); - shuffle_0($receiver_0, random); - return $receiver_0; - } - function ReversedListReadOnly(delegate) { - AbstractList.call(this); - this.delegate_0 = delegate; - } - Object.defineProperty(ReversedListReadOnly.prototype, 'size', {get: function () { - return this.delegate_0.size; - }}); - ReversedListReadOnly.prototype.get_za3lpa$ = function (index) { - return this.delegate_0.get_za3lpa$(reverseElementIndex(this, index)); - }; - ReversedListReadOnly.$metadata$ = {kind: Kind_CLASS, simpleName: 'ReversedListReadOnly', interfaces: [AbstractList]}; - function ReversedList(delegate) { - AbstractMutableList.call(this); - this.delegate_0 = delegate; - } - Object.defineProperty(ReversedList.prototype, 'size', {get: function () { - return this.delegate_0.size; - }}); - ReversedList.prototype.get_za3lpa$ = function (index) { - return this.delegate_0.get_za3lpa$(reverseElementIndex(this, index)); - }; - ReversedList.prototype.clear = function () { - this.delegate_0.clear(); - }; - ReversedList.prototype.removeAt_za3lpa$ = function (index) { - return this.delegate_0.removeAt_za3lpa$(reverseElementIndex(this, index)); - }; - ReversedList.prototype.set_wxm5ur$ = function (index, element) { - return this.delegate_0.set_wxm5ur$(reverseElementIndex(this, index), element); - }; - ReversedList.prototype.add_wxm5ur$ = function (index, element) { - this.delegate_0.add_wxm5ur$(reversePositionIndex(this, index), element); - }; - ReversedList.$metadata$ = {kind: Kind_CLASS, simpleName: 'ReversedList', interfaces: [AbstractMutableList]}; - function reverseElementIndex($receiver, index) { - var tmp$; - tmp$ = get_lastIndex_12($receiver); - if (0 <= index && index <= tmp$) - return get_lastIndex_12($receiver) - index | 0; - else - throw new IndexOutOfBoundsException('Element index ' + index + ' must be in range [' + new IntRange(0, get_lastIndex_12($receiver)) + '].'); - } - function reversePositionIndex($receiver, index) { - var tmp$; - tmp$ = $receiver.size; - if (0 <= index && index <= tmp$) - return $receiver.size - index | 0; - else - throw new IndexOutOfBoundsException('Position index ' + index + ' must be in range [' + new IntRange(0, $receiver.size) + '].'); - } - function asReversed($receiver) { - return new ReversedListReadOnly($receiver); - } - function asReversed_0($receiver) { - return new ReversedList($receiver); - } - function Sequence() { - } - Sequence.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Sequence', interfaces: []}; - function Sequence$ObjectLiteral_2(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral_2.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral_2.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function sequence$lambda(closure$block) { - return function () { - return iterator_3(closure$block); - }; - } - function sequence(block) { - return new Sequence$ObjectLiteral_2(sequence$lambda(block)); - } - var buildSequence = defineInlineFunction('kotlin.kotlin.sequences.buildSequence_o0x0bg$', wrapFunction(function () { - var iterator = _.kotlin.sequences.iterator_o0x0bg$; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Sequence = _.kotlin.sequences.Sequence; - function Sequence$ObjectLiteral(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function buildSequence$lambda(closure$builderAction) { - return function () { - return iterator(closure$builderAction); - }; - } - return function (builderAction) { - return new Sequence$ObjectLiteral(buildSequence$lambda(builderAction)); - }; - })); - function iterator_3(block) { - var iterator = new SequenceBuilderIterator(); - iterator.nextStep = createCoroutineUnintercepted_0(block, iterator, iterator); - return iterator; - } - var buildIterator = defineInlineFunction('kotlin.kotlin.sequences.buildIterator_o0x0bg$', wrapFunction(function () { - var iterator = _.kotlin.sequences.iterator_o0x0bg$; - return function (builderAction) { - return iterator(builderAction); - }; - })); - function SequenceScope() { - } - SequenceScope.prototype.yieldAll_p1ys8y$ = function (elements, continuation) { - if (Kotlin.isType(elements, Collection) && elements.isEmpty()) - return; - return this.yieldAll_1phuh2$(elements.iterator(), continuation); - }; - SequenceScope.prototype.yieldAll_swo9gw$ = function (sequence, continuation) { - return this.yieldAll_1phuh2$(sequence.iterator(), continuation); - }; - SequenceScope.$metadata$ = {kind: Kind_CLASS, simpleName: 'SequenceScope', interfaces: []}; - var State_NotReady; - var State_ManyNotReady; - var State_ManyReady; - var State_Ready; - var State_Done; - var State_Failed; - function SequenceBuilderIterator() { - SequenceScope.call(this); - this.state_0 = 0; - this.nextValue_0 = null; - this.nextIterator_0 = null; - this.nextStep = null; - } - SequenceBuilderIterator.prototype.hasNext = function () { - while (true) { - switch (this.state_0) { - case 0: - break; - case 1: - if (ensureNotNull(this.nextIterator_0).hasNext()) { - this.state_0 = 2; - return true; - } - else { - this.nextIterator_0 = null; - } - - break; - case 4: - return false; - case 3: - case 2: - return true; - default:throw this.exceptionalState_0(); - } - this.state_0 = 5; - var step = ensureNotNull(this.nextStep); - this.nextStep = null; - step.resumeWith_tl1gpc$(new Result(Unit_getInstance())); - } - }; - SequenceBuilderIterator.prototype.next = function () { - var tmp$; - switch (this.state_0) { - case 0: - case 1: - return this.nextNotReady_0(); - case 2: - this.state_0 = 1; - return ensureNotNull(this.nextIterator_0).next(); - case 3: - this.state_0 = 0; - var result = (tmp$ = this.nextValue_0) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - this.nextValue_0 = null; - return result; - default:throw this.exceptionalState_0(); - } - }; - SequenceBuilderIterator.prototype.nextNotReady_0 = function () { - if (!this.hasNext()) - throw NoSuchElementException_init(); - else - return this.next(); - }; - SequenceBuilderIterator.prototype.exceptionalState_0 = function () { - switch (this.state_0) { - case 4: - return NoSuchElementException_init(); - case 5: - return IllegalStateException_init_0('Iterator has failed.'); - default:return IllegalStateException_init_0('Unexpected state of the iterator: ' + this.state_0); - } - }; - function SequenceBuilderIterator$yield$lambda(this$SequenceBuilderIterator) { - return function (c) { - this$SequenceBuilderIterator.nextStep = c; - return get_COROUTINE_SUSPENDED(); - }; - } - SequenceBuilderIterator.prototype.yield_11rb$ = function (value, continuation) { - this.nextValue_0 = value; - this.state_0 = 3; - return SequenceBuilderIterator$yield$lambda(this)(continuation); - }; - function SequenceBuilderIterator$yieldAll$lambda(this$SequenceBuilderIterator) { - return function (c) { - this$SequenceBuilderIterator.nextStep = c; - return get_COROUTINE_SUSPENDED(); - }; - } - SequenceBuilderIterator.prototype.yieldAll_1phuh2$ = function (iterator, continuation) { - if (!iterator.hasNext()) - return; - this.nextIterator_0 = iterator; - this.state_0 = 2; - return SequenceBuilderIterator$yieldAll$lambda(this)(continuation); - }; - SequenceBuilderIterator.prototype.resumeWith_tl1gpc$ = function (result) { - var tmp$; - throwOnFailure(result); - (tmp$ = result.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - this.state_0 = 4; - }; - Object.defineProperty(SequenceBuilderIterator.prototype, 'context', {get: function () { - return EmptyCoroutineContext_getInstance(); - }}); - SequenceBuilderIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'SequenceBuilderIterator', interfaces: [Continuation, Iterator, SequenceScope]}; - function Sequence$ObjectLiteral_3(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral_3.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral_3.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - var Sequence_0 = defineInlineFunction('kotlin.kotlin.sequences.Sequence_ms0qmx$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Sequence = _.kotlin.sequences.Sequence; - function Sequence$ObjectLiteral(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - return function (iterator) { - return new Sequence$ObjectLiteral(iterator); - }; - })); - function asSequence$lambda_10(this$asSequence) { - return function () { - return this$asSequence; - }; - } - function asSequence_12($receiver) { - return constrainOnce(new Sequence$ObjectLiteral_3(asSequence$lambda_10($receiver))); - } - function sequenceOf(elements) { - return elements.length === 0 ? emptySequence() : asSequence(elements); - } - function emptySequence() { - return EmptySequence_getInstance(); - } - function EmptySequence() { - EmptySequence_instance = this; - } - EmptySequence.prototype.iterator = function () { - return EmptyIterator_getInstance(); - }; - EmptySequence.prototype.drop_za3lpa$ = function (n) { - return EmptySequence_getInstance(); - }; - EmptySequence.prototype.take_za3lpa$ = function (n) { - return EmptySequence_getInstance(); - }; - EmptySequence.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptySequence', interfaces: [DropTakeSequence, Sequence]}; - var EmptySequence_instance = null; - function EmptySequence_getInstance() { - if (EmptySequence_instance === null) { - new EmptySequence(); - } - return EmptySequence_instance; - } - var orEmpty_3 = defineInlineFunction('kotlin.kotlin.sequences.orEmpty_eamxo5$', wrapFunction(function () { - var emptySequence = _.kotlin.sequences.emptySequence_287e2$; - return function ($receiver) { - return $receiver != null ? $receiver : emptySequence(); - }; - })); - function Coroutine$ifEmpty$lambda(this$ifEmpty_0, closure$defaultValue_0, $receiver_0, controller, continuation_0) { - CoroutineImpl.call(this, continuation_0); - this.$controller = controller; - this.exceptionState_0 = 1; - this.local$this$ifEmpty = this$ifEmpty_0; - this.local$closure$defaultValue = closure$defaultValue_0; - this.local$$receiver = $receiver_0; - } - Coroutine$ifEmpty$lambda.$metadata$ = {kind: Kotlin.Kind.CLASS, simpleName: null, interfaces: [CoroutineImpl]}; - Coroutine$ifEmpty$lambda.prototype = Object.create(CoroutineImpl.prototype); - Coroutine$ifEmpty$lambda.prototype.constructor = Coroutine$ifEmpty$lambda; - Coroutine$ifEmpty$lambda.prototype.doResume = function () { - do - try { - switch (this.state_0) { - case 0: - var iterator = this.local$this$ifEmpty.iterator(); - if (iterator.hasNext()) { - this.state_0 = 3; - this.result_0 = this.local$$receiver.yieldAll_1phuh2$(iterator, this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - } - else { - this.state_0 = 2; - this.result_0 = this.local$$receiver.yieldAll_swo9gw$(this.local$closure$defaultValue(), this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - } - - case 1: - throw this.exception_0; - case 2: - return Unit; - case 3: - return Unit; - case 4: - return; - default:this.state_0 = 1; - throw new Error('State Machine Unreachable execution'); - } - } - catch (e) { - if (this.state_0 === 1) { - this.exceptionState_0 = this.state_0; - throw e; - } - else { - this.state_0 = this.exceptionState_0; - this.exception_0 = e; - } - } - while (true); - }; - function ifEmpty$lambda(this$ifEmpty_0, closure$defaultValue_0) { - return function ($receiver_0, continuation_0, suspended) { - var instance = new Coroutine$ifEmpty$lambda(this$ifEmpty_0, closure$defaultValue_0, $receiver_0, this, continuation_0); - if (suspended) - return instance; - else - return instance.doResume(null); - }; - } - function ifEmpty_2($receiver, defaultValue) { - return sequence(ifEmpty$lambda($receiver, defaultValue)); - } - function flatten$lambda(it) { - return it.iterator(); - } - function flatten_1($receiver) { - return flatten_3($receiver, flatten$lambda); - } - function flatten$lambda_0(it) { - return it.iterator(); - } - function flatten_2($receiver) { - return flatten_3($receiver, flatten$lambda_0); - } - function flatten$lambda_1(it) { - return it; - } - function flatten_3($receiver, iterator) { - var tmp$; - if (Kotlin.isType($receiver, TransformingSequence)) { - return (Kotlin.isType(tmp$ = $receiver, TransformingSequence) ? tmp$ : throwCCE_0()).flatten_1tglza$(iterator); - } - return new FlatteningSequence($receiver, flatten$lambda_1, iterator); - } - function unzip_1($receiver) { - var tmp$; - var listT = ArrayList_init(); - var listR = ArrayList_init(); - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var pair = tmp$.next(); - listT.add_11rb$(pair.first); - listR.add_11rb$(pair.second); - } - return to(listT, listR); - } - function FilteringSequence(sequence, sendWhen, predicate) { - if (sendWhen === void 0) - sendWhen = true; - this.sequence_0 = sequence; - this.sendWhen_0 = sendWhen; - this.predicate_0 = predicate; - } - function FilteringSequence$iterator$ObjectLiteral(this$FilteringSequence) { - this.this$FilteringSequence = this$FilteringSequence; - this.iterator = this$FilteringSequence.sequence_0.iterator(); - this.nextState = -1; - this.nextItem = null; - } - FilteringSequence$iterator$ObjectLiteral.prototype.calcNext_0 = function () { - while (this.iterator.hasNext()) { - var item = this.iterator.next(); - if (this.this$FilteringSequence.predicate_0(item) === this.this$FilteringSequence.sendWhen_0) { - this.nextItem = item; - this.nextState = 1; - return; - } - } - this.nextState = 0; - }; - FilteringSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (this.nextState === -1) - this.calcNext_0(); - if (this.nextState === 0) - throw NoSuchElementException_init(); - var result = this.nextItem; - this.nextItem = null; - this.nextState = -1; - return (tmp$ = result) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }; - FilteringSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - if (this.nextState === -1) - this.calcNext_0(); - return this.nextState === 1; - }; - FilteringSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - FilteringSequence.prototype.iterator = function () { - return new FilteringSequence$iterator$ObjectLiteral(this); - }; - FilteringSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'FilteringSequence', interfaces: [Sequence]}; - function TransformingSequence(sequence, transformer) { - this.sequence_0 = sequence; - this.transformer_0 = transformer; - } - function TransformingSequence$iterator$ObjectLiteral(this$TransformingSequence) { - this.this$TransformingSequence = this$TransformingSequence; - this.iterator = this$TransformingSequence.sequence_0.iterator(); - } - TransformingSequence$iterator$ObjectLiteral.prototype.next = function () { - return this.this$TransformingSequence.transformer_0(this.iterator.next()); - }; - TransformingSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.iterator.hasNext(); - }; - TransformingSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - TransformingSequence.prototype.iterator = function () { - return new TransformingSequence$iterator$ObjectLiteral(this); - }; - TransformingSequence.prototype.flatten_1tglza$ = function (iterator) { - return new FlatteningSequence(this.sequence_0, this.transformer_0, iterator); - }; - TransformingSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'TransformingSequence', interfaces: [Sequence]}; - function TransformingIndexedSequence(sequence, transformer) { - this.sequence_0 = sequence; - this.transformer_0 = transformer; - } - function TransformingIndexedSequence$iterator$ObjectLiteral(this$TransformingIndexedSequence) { - this.this$TransformingIndexedSequence = this$TransformingIndexedSequence; - this.iterator = this$TransformingIndexedSequence.sequence_0.iterator(); - this.index = 0; - } - TransformingIndexedSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - return this.this$TransformingIndexedSequence.transformer_0(checkIndexOverflow((tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$)), this.iterator.next()); - }; - TransformingIndexedSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.iterator.hasNext(); - }; - TransformingIndexedSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - TransformingIndexedSequence.prototype.iterator = function () { - return new TransformingIndexedSequence$iterator$ObjectLiteral(this); - }; - TransformingIndexedSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'TransformingIndexedSequence', interfaces: [Sequence]}; - function IndexingSequence(sequence) { - this.sequence_0 = sequence; - } - function IndexingSequence$iterator$ObjectLiteral(this$IndexingSequence) { - this.iterator = this$IndexingSequence.sequence_0.iterator(); - this.index = 0; - } - IndexingSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - return new IndexedValue(checkIndexOverflow((tmp$ = this.index, this.index = tmp$ + 1 | 0, tmp$)), this.iterator.next()); - }; - IndexingSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.iterator.hasNext(); - }; - IndexingSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - IndexingSequence.prototype.iterator = function () { - return new IndexingSequence$iterator$ObjectLiteral(this); - }; - IndexingSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'IndexingSequence', interfaces: [Sequence]}; - function MergingSequence(sequence1, sequence2, transform) { - this.sequence1_0 = sequence1; - this.sequence2_0 = sequence2; - this.transform_0 = transform; - } - function MergingSequence$iterator$ObjectLiteral(this$MergingSequence) { - this.this$MergingSequence = this$MergingSequence; - this.iterator1 = this$MergingSequence.sequence1_0.iterator(); - this.iterator2 = this$MergingSequence.sequence2_0.iterator(); - } - MergingSequence$iterator$ObjectLiteral.prototype.next = function () { - return this.this$MergingSequence.transform_0(this.iterator1.next(), this.iterator2.next()); - }; - MergingSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.iterator1.hasNext() && this.iterator2.hasNext(); - }; - MergingSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - MergingSequence.prototype.iterator = function () { - return new MergingSequence$iterator$ObjectLiteral(this); - }; - MergingSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'MergingSequence', interfaces: [Sequence]}; - function FlatteningSequence(sequence, transformer, iterator) { - this.sequence_0 = sequence; - this.transformer_0 = transformer; - this.iterator_0 = iterator; - } - function FlatteningSequence$iterator$ObjectLiteral(this$FlatteningSequence) { - this.this$FlatteningSequence = this$FlatteningSequence; - this.iterator = this$FlatteningSequence.sequence_0.iterator(); - this.itemIterator = null; - } - FlatteningSequence$iterator$ObjectLiteral.prototype.next = function () { - if (!this.ensureItemIterator_0()) - throw NoSuchElementException_init(); - return ensureNotNull(this.itemIterator).next(); - }; - FlatteningSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.ensureItemIterator_0(); - }; - FlatteningSequence$iterator$ObjectLiteral.prototype.ensureItemIterator_0 = function () { - var tmp$; - if (((tmp$ = this.itemIterator) != null ? tmp$.hasNext() : null) === false) - this.itemIterator = null; - while (this.itemIterator == null) { - if (!this.iterator.hasNext()) { - return false; - } - else { - var element = this.iterator.next(); - var nextItemIterator = this.this$FlatteningSequence.iterator_0(this.this$FlatteningSequence.transformer_0(element)); - if (nextItemIterator.hasNext()) { - this.itemIterator = nextItemIterator; - return true; - } - } - } - return true; - }; - FlatteningSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - FlatteningSequence.prototype.iterator = function () { - return new FlatteningSequence$iterator$ObjectLiteral(this); - }; - FlatteningSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'FlatteningSequence', interfaces: [Sequence]}; - function DropTakeSequence() { - } - DropTakeSequence.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'DropTakeSequence', interfaces: [Sequence]}; - function SubSequence(sequence, startIndex, endIndex) { - this.sequence_0 = sequence; - this.startIndex_0 = startIndex; - this.endIndex_0 = endIndex; - if (!(this.startIndex_0 >= 0)) { - var message = 'startIndex should be non-negative, but is ' + this.startIndex_0; - throw IllegalArgumentException_init_0(message.toString()); - } - if (!(this.endIndex_0 >= 0)) { - var message_0 = 'endIndex should be non-negative, but is ' + this.endIndex_0; - throw IllegalArgumentException_init_0(message_0.toString()); - } - if (!(this.endIndex_0 >= this.startIndex_0)) { - var message_1 = 'endIndex should be not less than startIndex, but was ' + this.endIndex_0 + ' < ' + this.startIndex_0; - throw IllegalArgumentException_init_0(message_1.toString()); - } - } - Object.defineProperty(SubSequence.prototype, 'count_0', {get: function () { - return this.endIndex_0 - this.startIndex_0 | 0; - }}); - SubSequence.prototype.drop_za3lpa$ = function (n) { - return n >= this.count_0 ? emptySequence() : new SubSequence(this.sequence_0, this.startIndex_0 + n | 0, this.endIndex_0); - }; - SubSequence.prototype.take_za3lpa$ = function (n) { - return n >= this.count_0 ? this : new SubSequence(this.sequence_0, this.startIndex_0, this.startIndex_0 + n | 0); - }; - function SubSequence$iterator$ObjectLiteral(this$SubSequence) { - this.this$SubSequence = this$SubSequence; - this.iterator = this$SubSequence.sequence_0.iterator(); - this.position = 0; - } - SubSequence$iterator$ObjectLiteral.prototype.drop_0 = function () { - while (this.position < this.this$SubSequence.startIndex_0 && this.iterator.hasNext()) { - this.iterator.next(); - this.position = this.position + 1 | 0; - } - }; - SubSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - this.drop_0(); - return this.position < this.this$SubSequence.endIndex_0 && this.iterator.hasNext(); - }; - SubSequence$iterator$ObjectLiteral.prototype.next = function () { - this.drop_0(); - if (this.position >= this.this$SubSequence.endIndex_0) - throw NoSuchElementException_init(); - this.position = this.position + 1 | 0; - return this.iterator.next(); - }; - SubSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - SubSequence.prototype.iterator = function () { - return new SubSequence$iterator$ObjectLiteral(this); - }; - SubSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'SubSequence', interfaces: [DropTakeSequence, Sequence]}; - function TakeSequence(sequence, count) { - this.sequence_0 = sequence; - this.count_0 = count; - if (!(this.count_0 >= 0)) { - var message = 'count must be non-negative, but was ' + this.count_0 + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - } - TakeSequence.prototype.drop_za3lpa$ = function (n) { - return n >= this.count_0 ? emptySequence() : new SubSequence(this.sequence_0, n, this.count_0); - }; - TakeSequence.prototype.take_za3lpa$ = function (n) { - return n >= this.count_0 ? this : new TakeSequence(this.sequence_0, n); - }; - function TakeSequence$iterator$ObjectLiteral(this$TakeSequence) { - this.left = this$TakeSequence.count_0; - this.iterator = this$TakeSequence.sequence_0.iterator(); - } - TakeSequence$iterator$ObjectLiteral.prototype.next = function () { - if (this.left === 0) - throw NoSuchElementException_init(); - this.left = this.left - 1 | 0; - return this.iterator.next(); - }; - TakeSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - return this.left > 0 && this.iterator.hasNext(); - }; - TakeSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - TakeSequence.prototype.iterator = function () { - return new TakeSequence$iterator$ObjectLiteral(this); - }; - TakeSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'TakeSequence', interfaces: [DropTakeSequence, Sequence]}; - function TakeWhileSequence(sequence, predicate) { - this.sequence_0 = sequence; - this.predicate_0 = predicate; - } - function TakeWhileSequence$iterator$ObjectLiteral(this$TakeWhileSequence) { - this.this$TakeWhileSequence = this$TakeWhileSequence; - this.iterator = this$TakeWhileSequence.sequence_0.iterator(); - this.nextState = -1; - this.nextItem = null; - } - TakeWhileSequence$iterator$ObjectLiteral.prototype.calcNext_0 = function () { - if (this.iterator.hasNext()) { - var item = this.iterator.next(); - if (this.this$TakeWhileSequence.predicate_0(item)) { - this.nextState = 1; - this.nextItem = item; - return; - } - } - this.nextState = 0; - }; - TakeWhileSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (this.nextState === -1) - this.calcNext_0(); - if (this.nextState === 0) - throw NoSuchElementException_init(); - var result = (tmp$ = this.nextItem) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - this.nextItem = null; - this.nextState = -1; - return result; - }; - TakeWhileSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - if (this.nextState === -1) - this.calcNext_0(); - return this.nextState === 1; - }; - TakeWhileSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - TakeWhileSequence.prototype.iterator = function () { - return new TakeWhileSequence$iterator$ObjectLiteral(this); - }; - TakeWhileSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'TakeWhileSequence', interfaces: [Sequence]}; - function DropSequence(sequence, count) { - this.sequence_0 = sequence; - this.count_0 = count; - if (!(this.count_0 >= 0)) { - var message = 'count must be non-negative, but was ' + this.count_0 + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - } - DropSequence.prototype.drop_za3lpa$ = function (n) { - var n1 = this.count_0 + n | 0; - return n1 < 0 ? new DropSequence(this, n) : new DropSequence(this.sequence_0, n1); - }; - DropSequence.prototype.take_za3lpa$ = function (n) { - var n1 = this.count_0 + n | 0; - return n1 < 0 ? new TakeSequence(this, n) : new SubSequence(this.sequence_0, this.count_0, n1); - }; - function DropSequence$iterator$ObjectLiteral(this$DropSequence) { - this.iterator = this$DropSequence.sequence_0.iterator(); - this.left = this$DropSequence.count_0; - } - DropSequence$iterator$ObjectLiteral.prototype.drop_0 = function () { - while (this.left > 0 && this.iterator.hasNext()) { - this.iterator.next(); - this.left = this.left - 1 | 0; - } - }; - DropSequence$iterator$ObjectLiteral.prototype.next = function () { - this.drop_0(); - return this.iterator.next(); - }; - DropSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - this.drop_0(); - return this.iterator.hasNext(); - }; - DropSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - DropSequence.prototype.iterator = function () { - return new DropSequence$iterator$ObjectLiteral(this); - }; - DropSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'DropSequence', interfaces: [DropTakeSequence, Sequence]}; - function DropWhileSequence(sequence, predicate) { - this.sequence_0 = sequence; - this.predicate_0 = predicate; - } - function DropWhileSequence$iterator$ObjectLiteral(this$DropWhileSequence) { - this.this$DropWhileSequence = this$DropWhileSequence; - this.iterator = this$DropWhileSequence.sequence_0.iterator(); - this.dropState = -1; - this.nextItem = null; - } - DropWhileSequence$iterator$ObjectLiteral.prototype.drop_0 = function () { - while (this.iterator.hasNext()) { - var item = this.iterator.next(); - if (!this.this$DropWhileSequence.predicate_0(item)) { - this.nextItem = item; - this.dropState = 1; - return; - } - } - this.dropState = 0; - }; - DropWhileSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (this.dropState === -1) - this.drop_0(); - if (this.dropState === 1) { - var result = (tmp$ = this.nextItem) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - this.nextItem = null; - this.dropState = 0; - return result; - } - return this.iterator.next(); - }; - DropWhileSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - if (this.dropState === -1) - this.drop_0(); - return this.dropState === 1 || this.iterator.hasNext(); - }; - DropWhileSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - DropWhileSequence.prototype.iterator = function () { - return new DropWhileSequence$iterator$ObjectLiteral(this); - }; - DropWhileSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'DropWhileSequence', interfaces: [Sequence]}; - function DistinctSequence(source, keySelector) { - this.source_0 = source; - this.keySelector_0 = keySelector; - } - DistinctSequence.prototype.iterator = function () { - return new DistinctIterator(this.source_0.iterator(), this.keySelector_0); - }; - DistinctSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'DistinctSequence', interfaces: [Sequence]}; - function DistinctIterator(source, keySelector) { - AbstractIterator.call(this); - this.source_0 = source; - this.keySelector_0 = keySelector; - this.observed_0 = HashSet_init(); - } - DistinctIterator.prototype.computeNext = function () { - while (this.source_0.hasNext()) { - var next = this.source_0.next(); - var key = this.keySelector_0(next); - if (this.observed_0.add_11rb$(key)) { - this.setNext_11rb$(next); - return; - } - } - this.done(); - }; - DistinctIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'DistinctIterator', interfaces: [AbstractIterator]}; - function GeneratorSequence(getInitialValue, getNextValue) { - this.getInitialValue_0 = getInitialValue; - this.getNextValue_0 = getNextValue; - } - function GeneratorSequence$iterator$ObjectLiteral(this$GeneratorSequence) { - this.this$GeneratorSequence = this$GeneratorSequence; - this.nextItem = null; - this.nextState = -2; - } - GeneratorSequence$iterator$ObjectLiteral.prototype.calcNext_0 = function () { - this.nextItem = this.nextState === -2 ? this.this$GeneratorSequence.getInitialValue_0() : this.this$GeneratorSequence.getNextValue_0(ensureNotNull(this.nextItem)); - this.nextState = this.nextItem == null ? 0 : 1; - }; - GeneratorSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (this.nextState < 0) - this.calcNext_0(); - if (this.nextState === 0) - throw NoSuchElementException_init(); - var result = Kotlin.isType(tmp$ = this.nextItem, Any) ? tmp$ : throwCCE_0(); - this.nextState = -1; - return result; - }; - GeneratorSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - if (this.nextState < 0) - this.calcNext_0(); - return this.nextState === 1; - }; - GeneratorSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - GeneratorSequence.prototype.iterator = function () { - return new GeneratorSequence$iterator$ObjectLiteral(this); - }; - GeneratorSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'GeneratorSequence', interfaces: [Sequence]}; - function constrainOnce($receiver) { - return Kotlin.isType($receiver, ConstrainedOnceSequence) ? $receiver : new ConstrainedOnceSequence($receiver); - } - function generateSequence$lambda(closure$nextFunction) { - return function (it) { - return closure$nextFunction(); - }; - } - function generateSequence(nextFunction) { - return constrainOnce(new GeneratorSequence(nextFunction, generateSequence$lambda(nextFunction))); - } - function generateSequence$lambda_0(closure$seed) { - return function () { - return closure$seed; - }; - } - function generateSequence_0(seed, nextFunction) { - return seed == null ? EmptySequence_getInstance() : new GeneratorSequence(generateSequence$lambda_0(seed), nextFunction); - } - function generateSequence_1(seedFunction, nextFunction) { - return new GeneratorSequence(seedFunction, nextFunction); - } - function EmptySet() { - EmptySet_instance = this; - this.serialVersionUID_0 = L3406603774387020532; - } - EmptySet.prototype.equals = function (other) { - return Kotlin.isType(other, Set) && other.isEmpty(); - }; - EmptySet.prototype.hashCode = function () { - return 0; - }; - EmptySet.prototype.toString = function () { - return '[]'; - }; - Object.defineProperty(EmptySet.prototype, 'size', {get: function () { - return 0; - }}); - EmptySet.prototype.isEmpty = function () { - return true; - }; - EmptySet.prototype.contains_11rb$ = function (element) { - return false; - }; - EmptySet.prototype.containsAll_brywnq$ = function (elements) { - return elements.isEmpty(); - }; - EmptySet.prototype.iterator = function () { - return EmptyIterator_getInstance(); - }; - EmptySet.prototype.readResolve_0 = function () { - return EmptySet_getInstance(); - }; - EmptySet.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptySet', interfaces: [Serializable, Set]}; - var EmptySet_instance = null; - function EmptySet_getInstance() { - if (EmptySet_instance === null) { - new EmptySet(); - } - return EmptySet_instance; - } - function emptySet() { - return EmptySet_getInstance(); - } - function setOf_0(elements) { - return elements.length > 0 ? toSet(elements) : emptySet(); - } - var setOf_1 = defineInlineFunction('kotlin.kotlin.collections.setOf_287e2$', wrapFunction(function () { - var emptySet = _.kotlin.collections.emptySet_287e2$; - return function () { - return emptySet(); - }; - })); - var mutableSetOf = defineInlineFunction('kotlin.kotlin.collections.mutableSetOf_287e2$', wrapFunction(function () { - var LinkedHashSet_init = _.kotlin.collections.LinkedHashSet_init_287e2$; - return function () { - return LinkedHashSet_init(); - }; - })); - function mutableSetOf_0(elements) { - return toCollection(elements, LinkedHashSet_init_3(mapCapacity(elements.length))); - } - var hashSetOf = defineInlineFunction('kotlin.kotlin.collections.hashSetOf_287e2$', wrapFunction(function () { - var HashSet_init = _.kotlin.collections.HashSet_init_287e2$; - return function () { - return HashSet_init(); - }; - })); - function hashSetOf_0(elements) { - return toCollection(elements, HashSet_init_2(mapCapacity(elements.length))); - } - var linkedSetOf = defineInlineFunction('kotlin.kotlin.collections.linkedSetOf_287e2$', wrapFunction(function () { - var LinkedHashSet_init = _.kotlin.collections.LinkedHashSet_init_287e2$; - return function () { - return LinkedHashSet_init(); - }; - })); - function linkedSetOf_0(elements) { - return toCollection(elements, LinkedHashSet_init_3(mapCapacity(elements.length))); - } - var orEmpty_4 = defineInlineFunction('kotlin.kotlin.collections.orEmpty_og2qkj$', wrapFunction(function () { - var emptySet = _.kotlin.collections.emptySet_287e2$; - return function ($receiver) { - return $receiver != null ? $receiver : emptySet(); - }; - })); - function optimizeReadOnlySet($receiver) { - switch ($receiver.size) { - case 0: - return emptySet(); - case 1: - return setOf($receiver.iterator().next()); - default:return $receiver; - } - } - function Sequence$ObjectLiteral_4(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral_4.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral_4.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function checkWindowSizeStep(size, step) { - if (!(size > 0 && step > 0)) { - var message = size !== step ? 'Both size ' + size + ' and step ' + step + ' must be greater than zero.' : 'size ' + size + ' must be greater than zero.'; - throw IllegalArgumentException_init_0(message.toString()); - } - } - function windowedSequence$lambda_1(this$windowedSequence, closure$size, closure$step, closure$partialWindows, closure$reuseBuffer) { - return function () { - return windowedIterator(this$windowedSequence.iterator(), closure$size, closure$step, closure$partialWindows, closure$reuseBuffer); - }; - } - function windowedSequence_1($receiver, size, step, partialWindows, reuseBuffer) { - checkWindowSizeStep(size, step); - return new Sequence$ObjectLiteral_4(windowedSequence$lambda_1($receiver, size, step, partialWindows, reuseBuffer)); - } - function Coroutine$windowedIterator$lambda(closure$step_0, closure$size_0, closure$iterator_0, closure$reuseBuffer_0, closure$partialWindows_0, $receiver_0, controller, continuation_0) { - CoroutineImpl.call(this, continuation_0); - this.$controller = controller; - this.exceptionState_0 = 1; - this.local$closure$step = closure$step_0; - this.local$closure$size = closure$size_0; - this.local$closure$iterator = closure$iterator_0; - this.local$closure$reuseBuffer = closure$reuseBuffer_0; - this.local$closure$partialWindows = closure$partialWindows_0; - this.local$tmp$ = void 0; - this.local$tmp$_0 = void 0; - this.local$gap = void 0; - this.local$buffer = void 0; - this.local$skip = void 0; - this.local$e = void 0; - this.local$buffer_0 = void 0; - this.local$$receiver = $receiver_0; - } - Coroutine$windowedIterator$lambda.$metadata$ = {kind: Kotlin.Kind.CLASS, simpleName: null, interfaces: [CoroutineImpl]}; - Coroutine$windowedIterator$lambda.prototype = Object.create(CoroutineImpl.prototype); - Coroutine$windowedIterator$lambda.prototype.constructor = Coroutine$windowedIterator$lambda; - Coroutine$windowedIterator$lambda.prototype.doResume = function () { - do - try { - switch (this.state_0) { - case 0: - this.local$gap = this.local$closure$step - this.local$closure$size | 0; - if (this.local$gap >= 0) { - this.local$buffer = ArrayList_init_0(this.local$closure$size); - this.local$skip = 0; - this.local$tmp$ = this.local$closure$iterator; - this.state_0 = 12; - continue; - } - else { - this.local$buffer_0 = new RingBuffer(this.local$closure$size); - this.local$tmp$_0 = this.local$closure$iterator; - this.state_0 = 2; - continue; - } - - case 1: - throw this.exception_0; - case 2: - if (!this.local$tmp$_0.hasNext()) { - this.state_0 = 5; - continue; - } - - var e_0 = this.local$tmp$_0.next(); - this.local$buffer_0.add_11rb$(e_0); - if (this.local$buffer_0.isFull()) { - this.state_0 = 3; - this.result_0 = this.local$$receiver.yield_11rb$(this.local$closure$reuseBuffer ? this.local$buffer_0 : ArrayList_init_1(this.local$buffer_0), this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - } - else { - this.state_0 = 4; - continue; - } - - case 3: - this.local$buffer_0.removeFirst_za3lpa$(this.local$closure$step); - this.state_0 = 4; - continue; - case 4: - this.state_0 = 2; - continue; - case 5: - if (this.local$closure$partialWindows) { - this.state_0 = 6; - continue; - } - else { - this.state_0 = 11; - continue; - } - - case 6: - if (this.local$buffer_0.size <= this.local$closure$step) { - this.state_0 = 8; - continue; - } - - this.state_0 = 7; - this.result_0 = this.local$$receiver.yield_11rb$(this.local$closure$reuseBuffer ? this.local$buffer_0 : ArrayList_init_1(this.local$buffer_0), this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - case 7: - this.local$buffer_0.removeFirst_za3lpa$(this.local$closure$step); - this.state_0 = 6; - continue; - case 8: - if (!this.local$buffer_0.isEmpty()) { - this.state_0 = 9; - this.result_0 = this.local$$receiver.yield_11rb$(this.local$buffer_0, this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - } - else { - this.state_0 = 10; - continue; - } - - case 9: - return Unit; - case 10: - this.state_0 = 11; - continue; - case 11: - this.state_0 = 20; - continue; - case 12: - if (!this.local$tmp$.hasNext()) { - this.state_0 = 16; - continue; - } - - this.local$e = this.local$tmp$.next(); - if (this.local$skip > 0) { - this.local$skip = this.local$skip - 1 | 0; - this.state_0 = 12; - continue; - } - else { - this.state_0 = 13; - continue; - } - - case 13: - this.local$buffer.add_11rb$(this.local$e); - if (this.local$buffer.size === this.local$closure$size) { - this.state_0 = 14; - this.result_0 = this.local$$receiver.yield_11rb$(this.local$buffer, this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - } - else { - this.state_0 = 15; - continue; - } - - case 14: - if (this.local$closure$reuseBuffer) - this.local$buffer.clear(); - else - this.local$buffer = ArrayList_init_0(this.local$closure$size); - this.local$skip = this.local$gap; - this.state_0 = 15; - continue; - case 15: - this.state_0 = 12; - continue; - case 16: - if (!this.local$buffer.isEmpty()) { - if (this.local$closure$partialWindows || this.local$buffer.size === this.local$closure$size) { - this.state_0 = 17; - this.result_0 = this.local$$receiver.yield_11rb$(this.local$buffer, this); - if (this.result_0 === get_COROUTINE_SUSPENDED()) - return get_COROUTINE_SUSPENDED(); - continue; - } - else { - this.state_0 = 18; - continue; - } - } - else { - this.state_0 = 19; - continue; - } - - case 17: - return Unit; - case 18: - this.state_0 = 19; - continue; - case 19: - this.state_0 = 20; - continue; - case 20: - return Unit; - default:this.state_0 = 1; - throw new Error('State Machine Unreachable execution'); - } - } - catch (e) { - if (this.state_0 === 1) { - this.exceptionState_0 = this.state_0; - throw e; - } - else { - this.state_0 = this.exceptionState_0; - this.exception_0 = e; - } - } - while (true); - }; - function windowedIterator$lambda(closure$step_0, closure$size_0, closure$iterator_0, closure$reuseBuffer_0, closure$partialWindows_0) { - return function ($receiver_0, continuation_0, suspended) { - var instance = new Coroutine$windowedIterator$lambda(closure$step_0, closure$size_0, closure$iterator_0, closure$reuseBuffer_0, closure$partialWindows_0, $receiver_0, this, continuation_0); - if (suspended) - return instance; - else - return instance.doResume(null); - }; - } - function windowedIterator(iterator, size, step, partialWindows, reuseBuffer) { - if (!iterator.hasNext()) - return EmptyIterator_getInstance(); - return iterator_3(windowedIterator$lambda(step, size, iterator, reuseBuffer, partialWindows)); - } - function MovingSubList(list) { - AbstractList.call(this); - this.list_0 = list; - this.fromIndex_0 = 0; - this._size_0 = 0; - } - MovingSubList.prototype.move_vux9f0$ = function (fromIndex, toIndex) { - AbstractList$Companion_getInstance().checkRangeIndexes_cub51b$(fromIndex, toIndex, this.list_0.size); - this.fromIndex_0 = fromIndex; - this._size_0 = toIndex - fromIndex | 0; - }; - MovingSubList.prototype.get_za3lpa$ = function (index) { - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this._size_0); - return this.list_0.get_za3lpa$(this.fromIndex_0 + index | 0); - }; - Object.defineProperty(MovingSubList.prototype, 'size', {get: function () { - return this._size_0; - }}); - MovingSubList.$metadata$ = {kind: Kind_CLASS, simpleName: 'MovingSubList', interfaces: [RandomAccess, AbstractList]}; - function RingBuffer(capacity) { - AbstractList.call(this); - this.capacity = capacity; - if (!(this.capacity >= 0)) { - var message = 'ring buffer capacity should not be negative but it is ' + this.capacity; - throw IllegalArgumentException_init_0(message.toString()); - } - this.buffer_0 = Kotlin.newArray(this.capacity, null); - this.startIndex_0 = 0; - this.size_4goa01$_0 = 0; - } - Object.defineProperty(RingBuffer.prototype, 'size', {get: function () { - return this.size_4goa01$_0; - }, set: function (size) { - this.size_4goa01$_0 = size; - }}); - RingBuffer.prototype.get_za3lpa$ = function (index) { - var tmp$; - AbstractList$Companion_getInstance().checkElementIndex_6xvm5r$(index, this.size); - return (tmp$ = this.buffer_0[(this.startIndex_0 + index | 0) % this.capacity]) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }; - RingBuffer.prototype.isFull = function () { - return this.size === this.capacity; - }; - function RingBuffer$iterator$ObjectLiteral(this$RingBuffer) { - this.this$RingBuffer = this$RingBuffer; - AbstractIterator.call(this); - this.count_0 = this$RingBuffer.size; - this.index_0 = this$RingBuffer.startIndex_0; - } - RingBuffer$iterator$ObjectLiteral.prototype.computeNext = function () { - var tmp$; - if (this.count_0 === 0) { - this.done(); - } - else { - this.setNext_11rb$((tmp$ = this.this$RingBuffer.buffer_0[this.index_0]) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0()); - this.index_0 = (this.index_0 + 1 | 0) % this.this$RingBuffer.capacity; - this.count_0 = this.count_0 - 1 | 0; - } - }; - RingBuffer$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [AbstractIterator]}; - RingBuffer.prototype.iterator = function () { - return new RingBuffer$iterator$ObjectLiteral(this); - }; - RingBuffer.prototype.toArray_ro6dgy$ = function (array) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - var result = array.length < this.size ? copyOf_24(array, this.size) : Kotlin.isArray(tmp$ = array) ? tmp$ : throwCCE_0(); - var size = this.size; - var widx = 0; - var idx = this.startIndex_0; - while (widx < size && idx < this.capacity) { - result[widx] = (tmp$_0 = this.buffer_0[idx]) == null || Kotlin.isType(tmp$_0, Any) ? tmp$_0 : throwCCE_0(); - widx = widx + 1 | 0; - idx = idx + 1 | 0; - } - idx = 0; - while (widx < size) { - result[widx] = (tmp$_1 = this.buffer_0[idx]) == null || Kotlin.isType(tmp$_1, Any) ? tmp$_1 : throwCCE_0(); - widx = widx + 1 | 0; - idx = idx + 1 | 0; - } - if (result.length > this.size) - result[this.size] = null; - return Kotlin.isArray(tmp$_2 = result) ? tmp$_2 : throwCCE_0(); - }; - RingBuffer.prototype.toArray = function () { - return this.toArray_ro6dgy$(Kotlin.newArray(this.size, null)); - }; - RingBuffer.prototype.add_11rb$ = function (element) { - if (this.isFull()) { - throw IllegalStateException_init_0('ring buffer is full'); - } - this.buffer_0[(this.startIndex_0 + this.size | 0) % this.capacity] = element; - this.size = this.size + 1 | 0; - }; - RingBuffer.prototype.removeFirst_za3lpa$ = function (n) { - if (!(n >= 0)) { - var message = "n shouldn't be negative but it is " + n; - throw IllegalArgumentException_init_0(message.toString()); - } - if (!(n <= this.size)) { - var message_0 = "n shouldn't be greater than the buffer size: n = " + n + ', size = ' + this.size; - throw IllegalArgumentException_init_0(message_0.toString()); - } - if (n > 0) { - var start = this.startIndex_0; - var end = (start + n | 0) % this.capacity; - if (start > end) { - this.fill_0(this.buffer_0, null, start, this.capacity); - this.fill_0(this.buffer_0, null, 0, end); - } - else { - this.fill_0(this.buffer_0, null, start, end); - } - this.startIndex_0 = end; - this.size = this.size - n | 0; - } - }; - RingBuffer.prototype.forward_0 = function ($receiver, n) { - return ($receiver + n | 0) % this.capacity; - }; - RingBuffer.prototype.fill_0 = function ($receiver, element, fromIndex, toIndex) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = $receiver.length; - for (var idx = fromIndex; idx < toIndex; idx++) { - $receiver[idx] = element; - } - }; - RingBuffer.$metadata$ = {kind: Kind_CLASS, simpleName: 'RingBuffer', interfaces: [RandomAccess, AbstractList]}; - function partition_12(array, left, right) { - var i = left; - var j = right; - var pivot = array.get_za3lpa$((left + right | 0) / 2 | 0); - while (i <= j) { - while (Kotlin.primitiveCompareTo(array.get_za3lpa$(i).data & 255, pivot.data & 255) < 0) { - i = i + 1 | 0; - } - while (Kotlin.primitiveCompareTo(array.get_za3lpa$(j).data & 255, pivot.data & 255) > 0) { - j = j - 1 | 0; - } - if (i <= j) { - var tmp = array.get_za3lpa$(i); - array.set_2c6cbe$(i, array.get_za3lpa$(j)); - array.set_2c6cbe$(j, tmp); - i = i + 1 | 0; - j = j - 1 | 0; - } - } - return i; - } - function quickSort(array, left, right) { - var index = partition_12(array, left, right); - if (left < (index - 1 | 0)) - quickSort(array, left, index - 1 | 0); - if (index < right) - quickSort(array, index, right); - } - function partition_13(array, left, right) { - var i = left; - var j = right; - var pivot = array.get_za3lpa$((left + right | 0) / 2 | 0); - while (i <= j) { - while (Kotlin.primitiveCompareTo(array.get_za3lpa$(i).data & 65535, pivot.data & 65535) < 0) { - i = i + 1 | 0; - } - while (Kotlin.primitiveCompareTo(array.get_za3lpa$(j).data & 65535, pivot.data & 65535) > 0) { - j = j - 1 | 0; - } - if (i <= j) { - var tmp = array.get_za3lpa$(i); - array.set_1pe3u2$(i, array.get_za3lpa$(j)); - array.set_1pe3u2$(j, tmp); - i = i + 1 | 0; - j = j - 1 | 0; - } - } - return i; - } - function quickSort_0(array, left, right) { - var index = partition_13(array, left, right); - if (left < (index - 1 | 0)) - quickSort_0(array, left, index - 1 | 0); - if (index < right) - quickSort_0(array, index, right); - } - function partition_14(array, left, right) { - var i = left; - var j = right; - var pivot = array.get_za3lpa$((left + right | 0) / 2 | 0); - while (i <= j) { - while (uintCompare(array.get_za3lpa$(i).data, pivot.data) < 0) { - i = i + 1 | 0; - } - while (uintCompare(array.get_za3lpa$(j).data, pivot.data) > 0) { - j = j - 1 | 0; - } - if (i <= j) { - var tmp = array.get_za3lpa$(i); - array.set_6sqrdv$(i, array.get_za3lpa$(j)); - array.set_6sqrdv$(j, tmp); - i = i + 1 | 0; - j = j - 1 | 0; - } - } - return i; - } - function quickSort_1(array, left, right) { - var index = partition_14(array, left, right); - if (left < (index - 1 | 0)) - quickSort_1(array, left, index - 1 | 0); - if (index < right) - quickSort_1(array, index, right); - } - function partition_15(array, left, right) { - var i = left; - var j = right; - var pivot = array.get_za3lpa$((left + right | 0) / 2 | 0); - while (i <= j) { - while (ulongCompare(array.get_za3lpa$(i).data, pivot.data) < 0) { - i = i + 1 | 0; - } - while (ulongCompare(array.get_za3lpa$(j).data, pivot.data) > 0) { - j = j - 1 | 0; - } - if (i <= j) { - var tmp = array.get_za3lpa$(i); - array.set_2ccimm$(i, array.get_za3lpa$(j)); - array.set_2ccimm$(j, tmp); - i = i + 1 | 0; - j = j - 1 | 0; - } - } - return i; - } - function quickSort_2(array, left, right) { - var index = partition_15(array, left, right); - if (left < (index - 1 | 0)) - quickSort_2(array, left, index - 1 | 0); - if (index < right) - quickSort_2(array, index, right); - } - function sortArray_0(array) { - quickSort(array, 0, array.size - 1 | 0); - } - function sortArray_1(array) { - quickSort_0(array, 0, array.size - 1 | 0); - } - function sortArray_2(array) { - quickSort_1(array, 0, array.size - 1 | 0); - } - function sortArray_3(array) { - quickSort_2(array, 0, array.size - 1 | 0); - } - function Comparator$ObjectLiteral_1(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral_1.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral_1.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function compareValuesBy(a, b, selectors) { - if (!(selectors.length > 0)) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return compareValuesByImpl(a, b, selectors); - } - function compareValuesByImpl(a, b, selectors) { - var tmp$; - for (tmp$ = 0; tmp$ !== selectors.length; ++tmp$) { - var fn = selectors[tmp$]; - var v1 = fn(a); - var v2 = fn(b); - var diff = compareValues(v1, v2); - if (diff !== 0) - return diff; - } - return 0; - } - var compareValuesBy_0 = defineInlineFunction('kotlin.kotlin.comparisons.compareValuesBy_tsaocy$', wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (a, b, selector) { - return compareValues(selector(a), selector(b)); - }; - })); - var compareValuesBy_1 = defineInlineFunction('kotlin.kotlin.comparisons.compareValuesBy_5evai1$', function (a, b, comparator, selector) { - return comparator.compare(selector(a), selector(b)); - }); - function compareValues(a, b) { - var tmp$; - if (a === b) - return 0; - if (a == null) - return -1; - if (b == null) - return 1; - return Kotlin.compareTo(Kotlin.isComparable(tmp$ = a) ? tmp$ : throwCCE_0(), b); - } - function compareBy$lambda(closure$selectors) { - return function (a, b) { - return compareValuesByImpl(a, b, closure$selectors); - }; - } - function compareBy(selectors) { - if (!(selectors.length > 0)) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return new Comparator$ObjectLiteral_1(compareBy$lambda(selectors)); - } - var compareBy_0 = defineInlineFunction('kotlin.kotlin.comparisons.compareBy_34mekm$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(a), selector(b)); - }; - }; - }); - return function (selector) { - return new Comparator$ObjectLiteral(compareBy$lambda(selector)); - }; - })); - var compareBy_1 = defineInlineFunction('kotlin.kotlin.comparisons.compareBy_82qo4j$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function compareBy$lambda(closure$comparator, closure$selector) { - return function (a, b) { - var comparator = closure$comparator; - var selector = closure$selector; - return comparator.compare(selector(a), selector(b)); - }; - } - return function (comparator, selector) { - return new Comparator$ObjectLiteral(compareBy$lambda(comparator, selector)); - }; - })); - var compareByDescending = defineInlineFunction('kotlin.kotlin.comparisons.compareByDescending_34mekm$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var compareByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (closure$selector) { - return function (a, b) { - var selector = closure$selector; - return compareValues(selector(b), selector(a)); - }; - }; - }); - return function (selector) { - return new Comparator$ObjectLiteral(compareByDescending$lambda(selector)); - }; - })); - var compareByDescending_0 = defineInlineFunction('kotlin.kotlin.comparisons.compareByDescending_82qo4j$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function compareByDescending$lambda(closure$comparator, closure$selector) { - return function (a, b) { - var comparator = closure$comparator; - var selector = closure$selector; - return comparator.compare(selector(b), selector(a)); - }; - } - return function (comparator, selector) { - return new Comparator$ObjectLiteral(compareByDescending$lambda(comparator, selector)); - }; - })); - var thenBy = defineInlineFunction('kotlin.kotlin.comparisons.thenBy_8bk9gc$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var thenBy$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (this$thenBy, closure$selector) { - return function (a, b) { - var previousCompare = this$thenBy.compare(a, b); - var tmp$; - if (previousCompare !== 0) - tmp$ = previousCompare; - else { - var selector = closure$selector; - tmp$ = compareValues(selector(a), selector(b)); - } - return tmp$; - }; - }; - }); - return function ($receiver, selector) { - return new Comparator$ObjectLiteral(thenBy$lambda($receiver, selector)); - }; - })); - var thenBy_0 = defineInlineFunction('kotlin.kotlin.comparisons.thenBy_g2gg1x$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function thenBy$lambda(this$thenBy, closure$comparator, closure$selector) { - return function (a, b) { - var previousCompare = this$thenBy.compare(a, b); - var tmp$; - if (previousCompare !== 0) - tmp$ = previousCompare; - else { - var comparator = closure$comparator; - var selector = closure$selector; - tmp$ = comparator.compare(selector(a), selector(b)); - } - return tmp$; - }; - } - return function ($receiver, comparator, selector) { - return new Comparator$ObjectLiteral(thenBy$lambda($receiver, comparator, selector)); - }; - })); - var thenByDescending = defineInlineFunction('kotlin.kotlin.comparisons.thenByDescending_8bk9gc$', wrapFunction(function () { - var wrapFunction = Kotlin.wrapFunction; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - var thenByDescending$lambda = wrapFunction(function () { - var compareValues = _.kotlin.comparisons.compareValues_s00gnj$; - return function (this$thenByDescending, closure$selector) { - return function (a, b) { - var previousCompare = this$thenByDescending.compare(a, b); - var tmp$; - if (previousCompare !== 0) - tmp$ = previousCompare; - else { - var selector = closure$selector; - tmp$ = compareValues(selector(b), selector(a)); - } - return tmp$; - }; - }; - }); - return function ($receiver, selector) { - return new Comparator$ObjectLiteral(thenByDescending$lambda($receiver, selector)); - }; - })); - var thenByDescending_0 = defineInlineFunction('kotlin.kotlin.comparisons.thenByDescending_g2gg1x$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function thenByDescending$lambda(this$thenByDescending, closure$comparator, closure$selector) { - return function (a, b) { - var previousCompare = this$thenByDescending.compare(a, b); - var tmp$; - if (previousCompare !== 0) - tmp$ = previousCompare; - else { - var comparator = closure$comparator; - var selector = closure$selector; - tmp$ = comparator.compare(selector(b), selector(a)); - } - return tmp$; - }; - } - return function ($receiver, comparator, selector) { - return new Comparator$ObjectLiteral(thenByDescending$lambda($receiver, comparator, selector)); - }; - })); - var thenComparator = defineInlineFunction('kotlin.kotlin.comparisons.thenComparator_yg42ks$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Comparator = _.kotlin.Comparator; - function Comparator$ObjectLiteral(closure$comparison) { - this.closure$comparison = closure$comparison; - } - Comparator$ObjectLiteral.prototype.compare = function (a, b) { - return this.closure$comparison(a, b); - }; - Comparator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Comparator]}; - function thenComparator$lambda(this$thenComparator, closure$comparison) { - return function (a, b) { - var previousCompare = this$thenComparator.compare(a, b); - return previousCompare !== 0 ? previousCompare : closure$comparison(a, b); - }; - } - return function ($receiver, comparison) { - return new Comparator$ObjectLiteral(thenComparator$lambda($receiver, comparison)); - }; - })); - function then$lambda(this$then, closure$comparator) { - return function (a, b) { - var previousCompare = this$then.compare(a, b); - return previousCompare !== 0 ? previousCompare : closure$comparator.compare(a, b); - }; - } - function then_1($receiver, comparator) { - return new Comparator$ObjectLiteral_1(then$lambda($receiver, comparator)); - } - function thenDescending$lambda(this$thenDescending, closure$comparator) { - return function (a, b) { - var previousCompare = this$thenDescending.compare(a, b); - return previousCompare !== 0 ? previousCompare : closure$comparator.compare(b, a); - }; - } - function thenDescending($receiver, comparator) { - return new Comparator$ObjectLiteral_1(thenDescending$lambda($receiver, comparator)); - } - function nullsFirst$lambda(closure$comparator) { - return function (a, b) { - if (a === b) - return 0; - else if (a == null) - return -1; - else if (b == null) - return 1; - else - return closure$comparator.compare(a, b); - }; - } - function nullsFirst(comparator) { - return new Comparator$ObjectLiteral_1(nullsFirst$lambda(comparator)); - } - var nullsFirst_0 = defineInlineFunction('kotlin.kotlin.comparisons.nullsFirst_dahdeg$', wrapFunction(function () { - var naturalOrder = _.kotlin.comparisons.naturalOrder_dahdeg$; - var nullsFirst = _.kotlin.comparisons.nullsFirst_c94i6r$; - return function () { - return nullsFirst(naturalOrder()); - }; - })); - function nullsLast$lambda(closure$comparator) { - return function (a, b) { - if (a === b) - return 0; - else if (a == null) - return 1; - else if (b == null) - return -1; - else - return closure$comparator.compare(a, b); - }; - } - function nullsLast(comparator) { - return new Comparator$ObjectLiteral_1(nullsLast$lambda(comparator)); - } - var nullsLast_0 = defineInlineFunction('kotlin.kotlin.comparisons.nullsLast_dahdeg$', wrapFunction(function () { - var naturalOrder = _.kotlin.comparisons.naturalOrder_dahdeg$; - var nullsLast = _.kotlin.comparisons.nullsLast_c94i6r$; - return function () { - return nullsLast(naturalOrder()); - }; - })); - function naturalOrder() { - var tmp$; - return Kotlin.isType(tmp$ = NaturalOrderComparator_getInstance(), Comparator) ? tmp$ : throwCCE_0(); - } - function reverseOrder() { - var tmp$; - return Kotlin.isType(tmp$ = ReverseOrderComparator_getInstance(), Comparator) ? tmp$ : throwCCE_0(); - } - function reversed_20($receiver) { - var tmp$, tmp$_0; - if (Kotlin.isType($receiver, ReversedComparator)) - return $receiver.comparator; - else if (equals($receiver, NaturalOrderComparator_getInstance())) - return Kotlin.isType(tmp$ = ReverseOrderComparator_getInstance(), Comparator) ? tmp$ : throwCCE_0(); - else if (equals($receiver, ReverseOrderComparator_getInstance())) - return Kotlin.isType(tmp$_0 = NaturalOrderComparator_getInstance(), Comparator) ? tmp$_0 : throwCCE_0(); - else - return new ReversedComparator($receiver); - } - function ReversedComparator(comparator) { - this.comparator = comparator; - } - ReversedComparator.prototype.compare = function (a, b) { - return this.comparator.compare(b, a); - }; - ReversedComparator.prototype.reversed = function () { - return this.comparator; - }; - ReversedComparator.$metadata$ = {kind: Kind_CLASS, simpleName: 'ReversedComparator', interfaces: [Comparator]}; - function NaturalOrderComparator() { - NaturalOrderComparator_instance = this; - } - NaturalOrderComparator.prototype.compare = function (a, b) { - return Kotlin.compareTo(a, b); - }; - NaturalOrderComparator.prototype.reversed = function () { - return ReverseOrderComparator_getInstance(); - }; - NaturalOrderComparator.$metadata$ = {kind: Kind_OBJECT, simpleName: 'NaturalOrderComparator', interfaces: [Comparator]}; - var NaturalOrderComparator_instance = null; - function NaturalOrderComparator_getInstance() { - if (NaturalOrderComparator_instance === null) { - new NaturalOrderComparator(); - } - return NaturalOrderComparator_instance; - } - function ReverseOrderComparator() { - ReverseOrderComparator_instance = this; - } - ReverseOrderComparator.prototype.compare = function (a, b) { - return Kotlin.compareTo(b, a); - }; - ReverseOrderComparator.prototype.reversed = function () { - return NaturalOrderComparator_getInstance(); - }; - ReverseOrderComparator.$metadata$ = {kind: Kind_OBJECT, simpleName: 'ReverseOrderComparator', interfaces: [Comparator]}; - var ReverseOrderComparator_instance = null; - function ReverseOrderComparator_getInstance() { - if (ReverseOrderComparator_instance === null) { - new ReverseOrderComparator(); - } - return ReverseOrderComparator_instance; - } - function ExperimentalContracts() { - } - ExperimentalContracts.$metadata$ = {kind: Kind_CLASS, simpleName: 'ExperimentalContracts', interfaces: [Annotation]}; - function ContractBuilder() { - } - ContractBuilder.prototype.callsInPlace_yys88$ = function (lambda, kind, callback$default) { - if (kind === void 0) - kind = InvocationKind$UNKNOWN_getInstance(); - return callback$default ? callback$default(lambda, kind) : this.callsInPlace_yys88$$default(lambda, kind); - }; - ContractBuilder.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ContractBuilder', interfaces: []}; - function InvocationKind(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function InvocationKind_initFields() { - InvocationKind_initFields = function () { - }; - InvocationKind$AT_MOST_ONCE_instance = new InvocationKind('AT_MOST_ONCE', 0); - InvocationKind$AT_LEAST_ONCE_instance = new InvocationKind('AT_LEAST_ONCE', 1); - InvocationKind$EXACTLY_ONCE_instance = new InvocationKind('EXACTLY_ONCE', 2); - InvocationKind$UNKNOWN_instance = new InvocationKind('UNKNOWN', 3); - } - var InvocationKind$AT_MOST_ONCE_instance; - function InvocationKind$AT_MOST_ONCE_getInstance() { - InvocationKind_initFields(); - return InvocationKind$AT_MOST_ONCE_instance; - } - var InvocationKind$AT_LEAST_ONCE_instance; - function InvocationKind$AT_LEAST_ONCE_getInstance() { - InvocationKind_initFields(); - return InvocationKind$AT_LEAST_ONCE_instance; - } - var InvocationKind$EXACTLY_ONCE_instance; - function InvocationKind$EXACTLY_ONCE_getInstance() { - InvocationKind_initFields(); - return InvocationKind$EXACTLY_ONCE_instance; - } - var InvocationKind$UNKNOWN_instance; - function InvocationKind$UNKNOWN_getInstance() { - InvocationKind_initFields(); - return InvocationKind$UNKNOWN_instance; - } - InvocationKind.$metadata$ = {kind: Kind_CLASS, simpleName: 'InvocationKind', interfaces: [Enum]}; - function InvocationKind$values() { - return [InvocationKind$AT_MOST_ONCE_getInstance(), InvocationKind$AT_LEAST_ONCE_getInstance(), InvocationKind$EXACTLY_ONCE_getInstance(), InvocationKind$UNKNOWN_getInstance()]; - } - InvocationKind.values = InvocationKind$values; - function InvocationKind$valueOf(name) { - switch (name) { - case 'AT_MOST_ONCE': - return InvocationKind$AT_MOST_ONCE_getInstance(); - case 'AT_LEAST_ONCE': - return InvocationKind$AT_LEAST_ONCE_getInstance(); - case 'EXACTLY_ONCE': - return InvocationKind$EXACTLY_ONCE_getInstance(); - case 'UNKNOWN': - return InvocationKind$UNKNOWN_getInstance(); - default:throwISE('No enum constant kotlin.contracts.InvocationKind.' + name); - } - } - InvocationKind.valueOf_61zpoe$ = InvocationKind$valueOf; - var contract = defineInlineFunction('kotlin.kotlin.contracts.contract_ijyxoo$', function (builder) { - }); - function Effect() { - } - Effect.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Effect', interfaces: []}; - function ConditionalEffect() { - } - ConditionalEffect.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ConditionalEffect', interfaces: [Effect]}; - function SimpleEffect() { - } - SimpleEffect.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'SimpleEffect', interfaces: [Effect]}; - function Returns() { - } - Returns.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Returns', interfaces: [SimpleEffect]}; - function ReturnsNotNull() { - } - ReturnsNotNull.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ReturnsNotNull', interfaces: [SimpleEffect]}; - function CallsInPlace() { - } - CallsInPlace.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'CallsInPlace', interfaces: [Effect]}; - function suspendCoroutine$lambda(closure$block) { - return function (c) { - var safe = SafeContinuation_init(intercepted(c)); - closure$block(safe); - return safe.getOrThrow(); - }; - } - function Continuation() { - } - Continuation.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Continuation', interfaces: []}; - function RestrictsSuspension() { - } - RestrictsSuspension.$metadata$ = {kind: Kind_CLASS, simpleName: 'RestrictsSuspension', interfaces: [Annotation]}; - var resume = defineInlineFunction('kotlin.kotlin.coroutines.resume_7seulj$', wrapFunction(function () { - var Result = _.kotlin.Result; - return function ($receiver, value) { - $receiver.resumeWith_tl1gpc$(new Result(value)); - }; - })); - var resumeWithException = defineInlineFunction('kotlin.kotlin.coroutines.resumeWithException_wltuli$', wrapFunction(function () { - var Result = _.kotlin.Result; - var createFailure = _.kotlin.createFailure_tcv7n7$; - return function ($receiver, exception) { - $receiver.resumeWith_tl1gpc$(new Result(createFailure(exception))); - }; - })); - var Continuation_0 = defineInlineFunction('kotlin.kotlin.coroutines.Continuation_tj26d7$', wrapFunction(function () { - var Kind_CLASS = Kotlin.Kind.CLASS; - var Continuation = _.kotlin.coroutines.Continuation; - function Continuation$ObjectLiteral(closure$context, closure$resumeWith) { - this.closure$context = closure$context; - this.closure$resumeWith = closure$resumeWith; - } - Object.defineProperty(Continuation$ObjectLiteral.prototype, 'context', {get: function () { - return this.closure$context; - }}); - Continuation$ObjectLiteral.prototype.resumeWith_tl1gpc$ = function (result) { - this.closure$resumeWith(result); - }; - Continuation$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Continuation]}; - return function (context, resumeWith) { - return new Continuation$ObjectLiteral(context, resumeWith); - }; - })); - function createCoroutine($receiver, completion) { - return new SafeContinuation(intercepted(createCoroutineUnintercepted($receiver, completion)), get_COROUTINE_SUSPENDED()); - } - function createCoroutine_0($receiver, receiver, completion) { - return new SafeContinuation(intercepted(createCoroutineUnintercepted_0($receiver, receiver, completion)), get_COROUTINE_SUSPENDED()); - } - function startCoroutine($receiver, completion) { - intercepted(createCoroutineUnintercepted($receiver, completion)).resumeWith_tl1gpc$(new Result(Unit_getInstance())); - } - function startCoroutine_0($receiver, receiver, completion) { - intercepted(createCoroutineUnintercepted_0($receiver, receiver, completion)).resumeWith_tl1gpc$(new Result(Unit_getInstance())); - } - function suspendCoroutine(block, continuation) { - return suspendCoroutine$lambda(block)(continuation); - } - defineInlineFunction('kotlin.kotlin.coroutines.suspendCoroutine_922awp$', wrapFunction(function () { - var intercepted = _.kotlin.coroutines.intrinsics.intercepted_f9mg25$; - var SafeContinuation_init = _.kotlin.coroutines.SafeContinuation_init_wj8d80$; - function suspendCoroutine$lambda(closure$block) { - return function (c) { - var safe = SafeContinuation_init(intercepted(c)); - closure$block(safe); - return safe.getOrThrow(); - }; - } - return function (block, continuation) { - Kotlin.suspendCall(suspendCoroutine$lambda(block)(Kotlin.coroutineReceiver())); - return Kotlin.coroutineResult(Kotlin.coroutineReceiver()); - }; - })); - var get_coroutineContext = defineInlineFunction('kotlin.kotlin.coroutines.get_coroutineContext', wrapFunction(function () { - var NotImplementedError_init = _.kotlin.NotImplementedError; - return function () { - throw new NotImplementedError_init('Implemented as intrinsic'); - }; - })); - function ContinuationInterceptor() { - ContinuationInterceptor$Key_getInstance(); - } - function ContinuationInterceptor$Key() { - ContinuationInterceptor$Key_instance = this; - } - ContinuationInterceptor$Key.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Key', interfaces: [CoroutineContext$Key]}; - var ContinuationInterceptor$Key_instance = null; - function ContinuationInterceptor$Key_getInstance() { - if (ContinuationInterceptor$Key_instance === null) { - new ContinuationInterceptor$Key(); - } - return ContinuationInterceptor$Key_instance; - } - ContinuationInterceptor.prototype.releaseInterceptedContinuation_k98bjh$ = function (continuation) { - }; - ContinuationInterceptor.prototype.get_j3r2sn$ = function (key) { - var tmp$; - return key === ContinuationInterceptor$Key_getInstance() ? Kotlin.isType(tmp$ = this, CoroutineContext$Element) ? tmp$ : throwCCE_0() : null; - }; - ContinuationInterceptor.prototype.minusKey_yeqjby$ = function (key) { - return key === ContinuationInterceptor$Key_getInstance() ? EmptyCoroutineContext_getInstance() : this; - }; - ContinuationInterceptor.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ContinuationInterceptor', interfaces: [CoroutineContext$Element]}; - function CoroutineContext() { - } - function CoroutineContext$plus$lambda(acc, element) { - var removed = acc.minusKey_yeqjby$(element.key); - if (removed === EmptyCoroutineContext_getInstance()) - return element; - else { - var interceptor = removed.get_j3r2sn$(ContinuationInterceptor$Key_getInstance()); - if (interceptor == null) - return new CombinedContext(removed, element); - else { - var left = removed.minusKey_yeqjby$(ContinuationInterceptor$Key_getInstance()); - return left === EmptyCoroutineContext_getInstance() ? new CombinedContext(element, interceptor) : new CombinedContext(new CombinedContext(left, element), interceptor); - } - } - } - CoroutineContext.prototype.plus_1fupul$ = function (context) { - return context === EmptyCoroutineContext_getInstance() ? this : context.fold_3cc69b$(this, CoroutineContext$plus$lambda); - }; - function CoroutineContext$Key() { - } - CoroutineContext$Key.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Key', interfaces: []}; - function CoroutineContext$Element() { - } - CoroutineContext$Element.prototype.get_j3r2sn$ = function (key) { - var tmp$; - return equals(this.key, key) ? Kotlin.isType(tmp$ = this, CoroutineContext$Element) ? tmp$ : throwCCE_0() : null; - }; - CoroutineContext$Element.prototype.fold_3cc69b$ = function (initial, operation) { - return operation(initial, this); - }; - CoroutineContext$Element.prototype.minusKey_yeqjby$ = function (key) { - return equals(this.key, key) ? EmptyCoroutineContext_getInstance() : this; - }; - CoroutineContext$Element.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Element', interfaces: [CoroutineContext]}; - CoroutineContext.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'CoroutineContext', interfaces: []}; - function AbstractCoroutineContextElement(key) { - this.key_no4tas$_0 = key; - } - Object.defineProperty(AbstractCoroutineContextElement.prototype, 'key', {get: function () { - return this.key_no4tas$_0; - }}); - AbstractCoroutineContextElement.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractCoroutineContextElement', interfaces: [CoroutineContext$Element]}; - function EmptyCoroutineContext() { - EmptyCoroutineContext_instance = this; - this.serialVersionUID_0 = L0; - } - EmptyCoroutineContext.prototype.readResolve_0 = function () { - return EmptyCoroutineContext_getInstance(); - }; - EmptyCoroutineContext.prototype.get_j3r2sn$ = function (key) { - return null; - }; - EmptyCoroutineContext.prototype.fold_3cc69b$ = function (initial, operation) { - return initial; - }; - EmptyCoroutineContext.prototype.plus_1fupul$ = function (context) { - return context; - }; - EmptyCoroutineContext.prototype.minusKey_yeqjby$ = function (key) { - return this; - }; - EmptyCoroutineContext.prototype.hashCode = function () { - return 0; - }; - EmptyCoroutineContext.prototype.toString = function () { - return 'EmptyCoroutineContext'; - }; - EmptyCoroutineContext.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptyCoroutineContext', interfaces: [Serializable, CoroutineContext]}; - var EmptyCoroutineContext_instance = null; - function EmptyCoroutineContext_getInstance() { - if (EmptyCoroutineContext_instance === null) { - new EmptyCoroutineContext(); - } - return EmptyCoroutineContext_instance; - } - function CombinedContext(left, element) { - this.left_0 = left; - this.element_0 = element; - } - CombinedContext.prototype.get_j3r2sn$ = function (key) { - var tmp$; - var cur = this; - while (true) { - if ((tmp$ = cur.element_0.get_j3r2sn$(key)) != null) { - return tmp$; - } - var next = cur.left_0; - if (Kotlin.isType(next, CombinedContext)) { - cur = next; - } - else { - return next.get_j3r2sn$(key); - } - } - }; - CombinedContext.prototype.fold_3cc69b$ = function (initial, operation) { - return operation(this.left_0.fold_3cc69b$(initial, operation), this.element_0); - }; - CombinedContext.prototype.minusKey_yeqjby$ = function (key) { - var tmp$; - if (this.element_0.get_j3r2sn$(key) != null) { - return this.left_0; - } - var newLeft = this.left_0.minusKey_yeqjby$(key); - if (newLeft === this.left_0) - tmp$ = this; - else if (newLeft === EmptyCoroutineContext_getInstance()) - tmp$ = this.element_0; - else - tmp$ = new CombinedContext(newLeft, this.element_0); - return tmp$; - }; - CombinedContext.prototype.size_0 = function () { - var tmp$, tmp$_0; - var cur = this; - var size = 2; - while (true) { - tmp$_0 = Kotlin.isType(tmp$ = cur.left_0, CombinedContext) ? tmp$ : null; - if (tmp$_0 == null) { - return size; - } - cur = tmp$_0; - size = size + 1 | 0; - } - }; - CombinedContext.prototype.contains_0 = function (element) { - return equals(this.get_j3r2sn$(element.key), element); - }; - CombinedContext.prototype.containsAll_0 = function (context) { - var tmp$; - var cur = context; - while (true) { - if (!this.contains_0(cur.element_0)) - return false; - var next = cur.left_0; - if (Kotlin.isType(next, CombinedContext)) { - cur = next; - } - else { - return this.contains_0(Kotlin.isType(tmp$ = next, CoroutineContext$Element) ? tmp$ : throwCCE_0()); - } - } - }; - CombinedContext.prototype.equals = function (other) { - return this === other || (Kotlin.isType(other, CombinedContext) && other.size_0() === this.size_0() && other.containsAll_0(this)); - }; - CombinedContext.prototype.hashCode = function () { - return hashCode(this.left_0) + hashCode(this.element_0) | 0; - }; - function CombinedContext$toString$lambda(acc, element) { - return acc.length === 0 ? element.toString() : acc + ', ' + element; - } - CombinedContext.prototype.toString = function () { - return '[' + this.fold_3cc69b$('', CombinedContext$toString$lambda) + ']'; - }; - function CombinedContext$writeReplace$lambda(closure$elements, closure$index) { - return function (f, element) { - var tmp$; - closure$elements[tmp$ = closure$index.v, closure$index.v = tmp$ + 1 | 0, tmp$] = element; - return Unit; - }; - } - CombinedContext.prototype.writeReplace_0 = function () { - var tmp$; - var n = this.size_0(); - var elements = Kotlin.newArray(n, null); - var index = {v: 0}; - this.fold_3cc69b$(Unit_getInstance(), CombinedContext$writeReplace$lambda(elements, index)); - if (!(index.v === n)) { - var message = 'Check failed.'; - throw IllegalStateException_init_0(message.toString()); - } - return new CombinedContext$Serialized(Kotlin.isArray(tmp$ = elements) ? tmp$ : throwCCE_0()); - }; - function CombinedContext$Serialized(elements) { - CombinedContext$Serialized$Companion_getInstance(); - this.elements = elements; - } - function CombinedContext$Serialized$Companion() { - CombinedContext$Serialized$Companion_instance = this; - this.serialVersionUID_0 = L0; - } - CombinedContext$Serialized$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var CombinedContext$Serialized$Companion_instance = null; - function CombinedContext$Serialized$Companion_getInstance() { - if (CombinedContext$Serialized$Companion_instance === null) { - new CombinedContext$Serialized$Companion(); - } - return CombinedContext$Serialized$Companion_instance; - } - CombinedContext$Serialized.prototype.readResolve_0 = function () { - var $receiver = this.elements; - var tmp$; - var accumulator = EmptyCoroutineContext_getInstance(); - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - accumulator = accumulator.plus_1fupul$(element); - } - return accumulator; - }; - CombinedContext$Serialized.$metadata$ = {kind: Kind_CLASS, simpleName: 'Serialized', interfaces: [Serializable]}; - CombinedContext.$metadata$ = {kind: Kind_CLASS, simpleName: 'CombinedContext', interfaces: [Serializable, CoroutineContext]}; - function suspendCoroutineUninterceptedOrReturn(block, continuation) { - throw new NotImplementedError('Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic'); - } - defineInlineFunction('kotlin.kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn_zb0pmy$', wrapFunction(function () { - var NotImplementedError_init = _.kotlin.NotImplementedError; - return function (block, continuation) { - throw new NotImplementedError_init('Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic'); - }; - })); - function get_COROUTINE_SUSPENDED() { - return CoroutineSingletons$COROUTINE_SUSPENDED_getInstance(); - } - function CoroutineSingletons(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function CoroutineSingletons_initFields() { - CoroutineSingletons_initFields = function () { - }; - CoroutineSingletons$COROUTINE_SUSPENDED_instance = new CoroutineSingletons('COROUTINE_SUSPENDED', 0); - CoroutineSingletons$UNDECIDED_instance = new CoroutineSingletons('UNDECIDED', 1); - CoroutineSingletons$RESUMED_instance = new CoroutineSingletons('RESUMED', 2); - } - var CoroutineSingletons$COROUTINE_SUSPENDED_instance; - function CoroutineSingletons$COROUTINE_SUSPENDED_getInstance() { - CoroutineSingletons_initFields(); - return CoroutineSingletons$COROUTINE_SUSPENDED_instance; - } - var CoroutineSingletons$UNDECIDED_instance; - function CoroutineSingletons$UNDECIDED_getInstance() { - CoroutineSingletons_initFields(); - return CoroutineSingletons$UNDECIDED_instance; - } - var CoroutineSingletons$RESUMED_instance; - function CoroutineSingletons$RESUMED_getInstance() { - CoroutineSingletons_initFields(); - return CoroutineSingletons$RESUMED_instance; - } - CoroutineSingletons.$metadata$ = {kind: Kind_CLASS, simpleName: 'CoroutineSingletons', interfaces: [Enum]}; - function CoroutineSingletons$values() { - return [CoroutineSingletons$COROUTINE_SUSPENDED_getInstance(), CoroutineSingletons$UNDECIDED_getInstance(), CoroutineSingletons$RESUMED_getInstance()]; - } - CoroutineSingletons.values = CoroutineSingletons$values; - function CoroutineSingletons$valueOf(name) { - switch (name) { - case 'COROUTINE_SUSPENDED': - return CoroutineSingletons$COROUTINE_SUSPENDED_getInstance(); - case 'UNDECIDED': - return CoroutineSingletons$UNDECIDED_getInstance(); - case 'RESUMED': - return CoroutineSingletons$RESUMED_getInstance(); - default:throwISE('No enum constant kotlin.coroutines.intrinsics.CoroutineSingletons.' + name); - } - } - CoroutineSingletons.valueOf_61zpoe$ = CoroutineSingletons$valueOf; - var and = defineInlineFunction('kotlin.kotlin.experimental.and_buxqzf$', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function ($receiver, other) { - return toByte($receiver & other); - }; - })); - var or = defineInlineFunction('kotlin.kotlin.experimental.or_buxqzf$', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function ($receiver, other) { - return toByte($receiver | other); - }; - })); - var xor = defineInlineFunction('kotlin.kotlin.experimental.xor_buxqzf$', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function ($receiver, other) { - return toByte($receiver ^ other); - }; - })); - var inv = defineInlineFunction('kotlin.kotlin.experimental.inv_mz3mee$', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function ($receiver) { - return toByte(~$receiver); - }; - })); - var and_0 = defineInlineFunction('kotlin.kotlin.experimental.and_mvfjzl$', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function ($receiver, other) { - return toShort($receiver & other); - }; - })); - var or_0 = defineInlineFunction('kotlin.kotlin.experimental.or_mvfjzl$', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function ($receiver, other) { - return toShort($receiver | other); - }; - })); - var xor_0 = defineInlineFunction('kotlin.kotlin.experimental.xor_mvfjzl$', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function ($receiver, other) { - return toShort($receiver ^ other); - }; - })); - var inv_0 = defineInlineFunction('kotlin.kotlin.experimental.inv_5vcgdc$', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function ($receiver) { - return toShort(~$receiver); - }; - })); - function ExperimentalTypeInference() { - } - ExperimentalTypeInference.$metadata$ = {kind: Kind_CLASS, simpleName: 'ExperimentalTypeInference', interfaces: [Annotation]}; - function NoInfer() { - } - NoInfer.$metadata$ = {kind: Kind_CLASS, simpleName: 'NoInfer', interfaces: [Annotation]}; - function Exact() { - } - Exact.$metadata$ = {kind: Kind_CLASS, simpleName: 'Exact', interfaces: [Annotation]}; - function LowPriorityInOverloadResolution() { - } - LowPriorityInOverloadResolution.$metadata$ = {kind: Kind_CLASS, simpleName: 'LowPriorityInOverloadResolution', interfaces: [Annotation]}; - function HidesMembers() { - } - HidesMembers.$metadata$ = {kind: Kind_CLASS, simpleName: 'HidesMembers', interfaces: [Annotation]}; - function OnlyInputTypes() { - } - OnlyInputTypes.$metadata$ = {kind: Kind_CLASS, simpleName: 'OnlyInputTypes', interfaces: [Annotation]}; - function InlineOnly() { - } - InlineOnly.$metadata$ = {kind: Kind_CLASS, simpleName: 'InlineOnly', interfaces: [Annotation]}; - function DynamicExtension() { - } - DynamicExtension.$metadata$ = {kind: Kind_CLASS, simpleName: 'DynamicExtension', interfaces: [Annotation]}; - function AccessibleLateinitPropertyLiteral() { - } - AccessibleLateinitPropertyLiteral.$metadata$ = {kind: Kind_CLASS, simpleName: 'AccessibleLateinitPropertyLiteral', interfaces: [Annotation]}; - function RequireKotlin(version, message, level, versionKind, errorCode) { - if (message === void 0) - message = ''; - if (level === void 0) - level = DeprecationLevel.ERROR; - if (versionKind === void 0) - versionKind = RequireKotlinVersionKind$LANGUAGE_VERSION_getInstance(); - if (errorCode === void 0) - errorCode = -1; - this.version = version; - this.message = message; - this.level = level; - this.versionKind = versionKind; - this.errorCode = errorCode; - } - RequireKotlin.$metadata$ = {kind: Kind_CLASS, simpleName: 'RequireKotlin', interfaces: [Annotation]}; - function RequireKotlinVersionKind(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function RequireKotlinVersionKind_initFields() { - RequireKotlinVersionKind_initFields = function () { - }; - RequireKotlinVersionKind$LANGUAGE_VERSION_instance = new RequireKotlinVersionKind('LANGUAGE_VERSION', 0); - RequireKotlinVersionKind$COMPILER_VERSION_instance = new RequireKotlinVersionKind('COMPILER_VERSION', 1); - RequireKotlinVersionKind$API_VERSION_instance = new RequireKotlinVersionKind('API_VERSION', 2); - } - var RequireKotlinVersionKind$LANGUAGE_VERSION_instance; - function RequireKotlinVersionKind$LANGUAGE_VERSION_getInstance() { - RequireKotlinVersionKind_initFields(); - return RequireKotlinVersionKind$LANGUAGE_VERSION_instance; - } - var RequireKotlinVersionKind$COMPILER_VERSION_instance; - function RequireKotlinVersionKind$COMPILER_VERSION_getInstance() { - RequireKotlinVersionKind_initFields(); - return RequireKotlinVersionKind$COMPILER_VERSION_instance; - } - var RequireKotlinVersionKind$API_VERSION_instance; - function RequireKotlinVersionKind$API_VERSION_getInstance() { - RequireKotlinVersionKind_initFields(); - return RequireKotlinVersionKind$API_VERSION_instance; - } - RequireKotlinVersionKind.$metadata$ = {kind: Kind_CLASS, simpleName: 'RequireKotlinVersionKind', interfaces: [Enum]}; - function RequireKotlinVersionKind$values() { - return [RequireKotlinVersionKind$LANGUAGE_VERSION_getInstance(), RequireKotlinVersionKind$COMPILER_VERSION_getInstance(), RequireKotlinVersionKind$API_VERSION_getInstance()]; - } - RequireKotlinVersionKind.values = RequireKotlinVersionKind$values; - function RequireKotlinVersionKind$valueOf(name) { - switch (name) { - case 'LANGUAGE_VERSION': - return RequireKotlinVersionKind$LANGUAGE_VERSION_getInstance(); - case 'COMPILER_VERSION': - return RequireKotlinVersionKind$COMPILER_VERSION_getInstance(); - case 'API_VERSION': - return RequireKotlinVersionKind$API_VERSION_getInstance(); - default:throwISE('No enum constant kotlin.internal.RequireKotlinVersionKind.' + name); - } - } - RequireKotlinVersionKind.valueOf_61zpoe$ = RequireKotlinVersionKind$valueOf; - function ContractsDsl() { - } - ContractsDsl.$metadata$ = {kind: Kind_CLASS, simpleName: 'ContractsDsl', interfaces: [Annotation]}; - function Delegates() { - Delegates_instance = this; - } - Delegates.prototype.notNull_30y1fr$ = function () { - return new NotNullVar(); - }; - Delegates.prototype.observable_2ulm9r$ = defineInlineFunction('kotlin.kotlin.properties.Delegates.observable_2ulm9r$', wrapFunction(function () { - var ObservableProperty = _.kotlin.properties.ObservableProperty; - var Kind_CLASS = Kotlin.Kind.CLASS; - Delegates$observable$ObjectLiteral.prototype = Object.create(ObservableProperty.prototype); - Delegates$observable$ObjectLiteral.prototype.constructor = Delegates$observable$ObjectLiteral; - function Delegates$observable$ObjectLiteral(closure$onChange, initialValue_0) { - this.closure$onChange = closure$onChange; - ObservableProperty.call(this, initialValue_0); - } - Delegates$observable$ObjectLiteral.prototype.afterChange_jxtfl0$ = function (property, oldValue, newValue) { - this.closure$onChange(property, oldValue, newValue); - }; - Delegates$observable$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [ObservableProperty]}; - return function (initialValue, onChange) { - return new Delegates$observable$ObjectLiteral(onChange, initialValue); - }; - })); - Delegates.prototype.vetoable_61sx1h$ = defineInlineFunction('kotlin.kotlin.properties.Delegates.vetoable_61sx1h$', wrapFunction(function () { - var ObservableProperty = _.kotlin.properties.ObservableProperty; - var Kind_CLASS = Kotlin.Kind.CLASS; - Delegates$vetoable$ObjectLiteral.prototype = Object.create(ObservableProperty.prototype); - Delegates$vetoable$ObjectLiteral.prototype.constructor = Delegates$vetoable$ObjectLiteral; - function Delegates$vetoable$ObjectLiteral(closure$onChange, initialValue_0) { - this.closure$onChange = closure$onChange; - ObservableProperty.call(this, initialValue_0); - } - Delegates$vetoable$ObjectLiteral.prototype.beforeChange_jxtfl0$ = function (property, oldValue, newValue) { - return this.closure$onChange(property, oldValue, newValue); - }; - Delegates$vetoable$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [ObservableProperty]}; - return function (initialValue, onChange) { - return new Delegates$vetoable$ObjectLiteral(onChange, initialValue); - }; - })); - Delegates.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Delegates', interfaces: []}; - var Delegates_instance = null; - function Delegates_getInstance() { - if (Delegates_instance === null) { - new Delegates(); - } - return Delegates_instance; - } - function NotNullVar() { - this.value_0 = null; - } - NotNullVar.prototype.getValue_lrcp0p$ = function (thisRef, property) { - var tmp$; - tmp$ = this.value_0; - if (tmp$ == null) { - throw IllegalStateException_init_0('Property ' + property.callableName + ' should be initialized before get.'); - } - return tmp$; - }; - NotNullVar.prototype.setValue_9rddgb$ = function (thisRef, property, value) { - this.value_0 = value; - }; - NotNullVar.$metadata$ = {kind: Kind_CLASS, simpleName: 'NotNullVar', interfaces: [ReadWriteProperty]}; - function ReadOnlyProperty() { - } - ReadOnlyProperty.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ReadOnlyProperty', interfaces: []}; - function ReadWriteProperty() { - } - ReadWriteProperty.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ReadWriteProperty', interfaces: []}; - function ObservableProperty(initialValue) { - this.value_kuqkmn$_0 = initialValue; - } - ObservableProperty.prototype.beforeChange_jxtfl0$ = function (property, oldValue, newValue) { - return true; - }; - ObservableProperty.prototype.afterChange_jxtfl0$ = function (property, oldValue, newValue) { - }; - ObservableProperty.prototype.getValue_lrcp0p$ = function (thisRef, property) { - return this.value_kuqkmn$_0; - }; - ObservableProperty.prototype.setValue_9rddgb$ = function (thisRef, property, value) { - var oldValue = this.value_kuqkmn$_0; - if (!this.beforeChange_jxtfl0$(property, oldValue, value)) { - return; - } - this.value_kuqkmn$_0 = value; - this.afterChange_jxtfl0$(property, oldValue, value); - }; - ObservableProperty.$metadata$ = {kind: Kind_CLASS, simpleName: 'ObservableProperty', interfaces: [ReadWriteProperty]}; - function Random() { - Random$Default_getInstance(); - } - Random.prototype.nextInt = function () { - return this.nextBits_za3lpa$(32); - }; - Random.prototype.nextInt_za3lpa$ = function (until) { - return this.nextInt_vux9f0$(0, until); - }; - Random.prototype.nextInt_vux9f0$ = function (from, until) { - var tmp$; - checkRangeBounds(from, until); - var n = until - from | 0; - if (n > 0 || n === -2147483648) { - if ((n & (-n | 0)) === n) { - var bitCount = fastLog2(n); - tmp$ = this.nextBits_za3lpa$(bitCount); - } - else { - var v; - do { - var bits = this.nextInt() >>> 1; - v = bits % n; - } - while ((bits - v + (n - 1) | 0) < 0); - tmp$ = v; - } - var rnd = tmp$; - return from + rnd | 0; - } - else { - while (true) { - var rnd_0 = this.nextInt(); - if (from <= rnd_0 && rnd_0 < until) - return rnd_0; - } - } - }; - Random.prototype.nextLong = function () { - return Kotlin.Long.fromInt(this.nextInt()).shiftLeft(32).add(Kotlin.Long.fromInt(this.nextInt())); - }; - Random.prototype.nextLong_s8cxhz$ = function (until) { - return this.nextLong_3pjtqy$(L0, until); - }; - Random.prototype.nextLong_3pjtqy$ = function (from, until) { - var tmp$; - checkRangeBounds_0(from, until); - var n = until.subtract(from); - if (n.toNumber() > 0) { - var rnd; - if (equals(n.and(n.unaryMinus()), n)) { - var nLow = n.toInt(); - var nHigh = n.shiftRightUnsigned(32).toInt(); - if (nLow !== 0) { - var bitCount = fastLog2(nLow); - tmp$ = Kotlin.Long.fromInt(this.nextBits_za3lpa$(bitCount)).and(L4294967295); - } - else if (nHigh === 1) - tmp$ = Kotlin.Long.fromInt(this.nextInt()).and(L4294967295); - else { - var bitCount_0 = fastLog2(nHigh); - tmp$ = Kotlin.Long.fromInt(this.nextBits_za3lpa$(bitCount_0)).shiftLeft(32).add(Kotlin.Long.fromInt(this.nextInt())); - } - rnd = tmp$; - } - else { - var v; - do { - var bits = this.nextLong().shiftRightUnsigned(1); - v = bits.modulo(n); - } - while (bits.subtract(v).add(n.subtract(Kotlin.Long.fromInt(1))).toNumber() < 0); - rnd = v; - } - return from.add(rnd); - } - else { - while (true) { - var rnd_0 = this.nextLong(); - if (from.lessThanOrEqual(rnd_0) && rnd_0.lessThan(until)) - return rnd_0; - } - } - }; - Random.prototype.nextBoolean = function () { - return this.nextBits_za3lpa$(1) !== 0; - }; - Random.prototype.nextDouble = function () { - return doubleFromParts(this.nextBits_za3lpa$(26), this.nextBits_za3lpa$(27)); - }; - Random.prototype.nextDouble_14dthe$ = function (until) { - return this.nextDouble_lu1900$(0.0, until); - }; - Random.prototype.nextDouble_lu1900$ = function (from, until) { - var tmp$; - checkRangeBounds_1(from, until); - var size = until - from; - if (isInfinite(size) && isFinite(from) && isFinite(until)) { - var r1 = this.nextDouble() * (until / 2 - from / 2); - tmp$ = from + r1 + r1; - } - else { - tmp$ = from + this.nextDouble() * size; - } - var r = tmp$; - return r >= until ? nextDown(until) : r; - }; - Random.prototype.nextFloat = function () { - return this.nextBits_za3lpa$(24) / 16777216; - }; - function Random$nextBytes$lambda(closure$fromIndex, closure$toIndex, closure$array) { - return function () { - return 'fromIndex (' + closure$fromIndex + ') or toIndex (' + closure$toIndex + ') are out of range: 0..' + closure$array.length + '.'; - }; - } - Random.prototype.nextBytes_mj6st8$$default = function (array, fromIndex, toIndex) { - if (!(0 <= fromIndex && fromIndex <= array.length ? 0 <= toIndex && toIndex <= array.length : false)) { - var message = Random$nextBytes$lambda(fromIndex, toIndex, array)(); - throw IllegalArgumentException_init_0(message.toString()); - } - if (!(fromIndex <= toIndex)) { - var message_0 = 'fromIndex (' + fromIndex + ') must be not greater than toIndex (' + toIndex + ').'; - throw IllegalArgumentException_init_0(message_0.toString()); - } - var steps = (toIndex - fromIndex | 0) / 4 | 0; - var position = {v: fromIndex}; - for (var index = 0; index < steps; index++) { - var v = this.nextInt(); - array[position.v] = toByte(v); - array[position.v + 1 | 0] = toByte(v >>> 8); - array[position.v + 2 | 0] = toByte(v >>> 16); - array[position.v + 3 | 0] = toByte(v >>> 24); - position.v = position.v + 4 | 0; - } - var remainder = toIndex - position.v | 0; - var vr = this.nextBits_za3lpa$(remainder * 8 | 0); - for (var i = 0; i < remainder; i++) { - array[position.v + i | 0] = toByte(vr >>> (i * 8 | 0)); - } - return array; - }; - Random.prototype.nextBytes_mj6st8$ = function (array, fromIndex, toIndex, callback$default) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = array.length; - return callback$default ? callback$default(array, fromIndex, toIndex) : this.nextBytes_mj6st8$$default(array, fromIndex, toIndex); - }; - Random.prototype.nextBytes_fqrh44$ = function (array) { - return this.nextBytes_mj6st8$(array, 0, array.length); - }; - Random.prototype.nextBytes_za3lpa$ = function (size) { - return this.nextBytes_fqrh44$(new Int8Array(size)); - }; - function Random$Default() { - Random$Default_instance = this; - Random.call(this); - this.defaultRandom_0 = defaultPlatformRandom(); - this.Companion = Random$Companion_getInstance(); - } - Random$Default.prototype.nextBits_za3lpa$ = function (bitCount) { - return this.defaultRandom_0.nextBits_za3lpa$(bitCount); - }; - Random$Default.prototype.nextInt = function () { - return this.defaultRandom_0.nextInt(); - }; - Random$Default.prototype.nextInt_za3lpa$ = function (until) { - return this.defaultRandom_0.nextInt_za3lpa$(until); - }; - Random$Default.prototype.nextInt_vux9f0$ = function (from, until) { - return this.defaultRandom_0.nextInt_vux9f0$(from, until); - }; - Random$Default.prototype.nextLong = function () { - return this.defaultRandom_0.nextLong(); - }; - Random$Default.prototype.nextLong_s8cxhz$ = function (until) { - return this.defaultRandom_0.nextLong_s8cxhz$(until); - }; - Random$Default.prototype.nextLong_3pjtqy$ = function (from, until) { - return this.defaultRandom_0.nextLong_3pjtqy$(from, until); - }; - Random$Default.prototype.nextBoolean = function () { - return this.defaultRandom_0.nextBoolean(); - }; - Random$Default.prototype.nextDouble = function () { - return this.defaultRandom_0.nextDouble(); - }; - Random$Default.prototype.nextDouble_14dthe$ = function (until) { - return this.defaultRandom_0.nextDouble_14dthe$(until); - }; - Random$Default.prototype.nextDouble_lu1900$ = function (from, until) { - return this.defaultRandom_0.nextDouble_lu1900$(from, until); - }; - Random$Default.prototype.nextFloat = function () { - return this.defaultRandom_0.nextFloat(); - }; - Random$Default.prototype.nextBytes_fqrh44$ = function (array) { - return this.defaultRandom_0.nextBytes_fqrh44$(array); - }; - Random$Default.prototype.nextBytes_za3lpa$ = function (size) { - return this.defaultRandom_0.nextBytes_za3lpa$(size); - }; - Random$Default.prototype.nextBytes_mj6st8$$default = function (array, fromIndex, toIndex) { - return this.defaultRandom_0.nextBytes_mj6st8$(array, fromIndex, toIndex); - }; - Random$Default.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Default', interfaces: [Random]}; - var Random$Default_instance = null; - function Random$Default_getInstance() { - if (Random$Default_instance === null) { - new Random$Default(); - } - return Random$Default_instance; - } - function Random$Companion() { - Random$Companion_instance = this; - Random.call(this); - } - Random$Companion.prototype.nextBits_za3lpa$ = function (bitCount) { - return Random$Default_getInstance().nextBits_za3lpa$(bitCount); - }; - Random$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: [Random]}; - var Random$Companion_instance = null; - function Random$Companion_getInstance() { - if (Random$Companion_instance === null) { - new Random$Companion(); - } - return Random$Companion_instance; - } - Random.$metadata$ = {kind: Kind_CLASS, simpleName: 'Random', interfaces: []}; - function Random_0(seed) { - return XorWowRandom_init(seed, seed >> 31); - } - function Random_1(seed) { - return XorWowRandom_init(seed.toInt(), seed.shiftRight(32).toInt()); - } - function nextInt($receiver, range) { - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot get random in empty range: ' + range); - else if (range.last < 2147483647) - return $receiver.nextInt_vux9f0$(range.first, range.last + 1 | 0); - else if (range.first > -2147483648) - return $receiver.nextInt_vux9f0$(range.first - 1 | 0, range.last) + 1 | 0; - else - return $receiver.nextInt(); - } - function nextLong($receiver, range) { - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot get random in empty range: ' + range); - else if (range.last.compareTo_11rb$(Long$Companion$MAX_VALUE) < 0) - return $receiver.nextLong_3pjtqy$(range.start, range.endInclusive.add(Kotlin.Long.fromInt(1))); - else if (range.start.compareTo_11rb$(Long$Companion$MIN_VALUE) > 0) - return $receiver.nextLong_3pjtqy$(range.start.subtract(Kotlin.Long.fromInt(1)), range.endInclusive).add(Kotlin.Long.fromInt(1)); - else - return $receiver.nextLong(); - } - function takeUpperBits($receiver, bitCount) { - return $receiver >>> 32 - bitCount & (-bitCount | 0) >> 31; - } - function checkRangeBounds(from, until) { - if (!(until > from)) { - var message = boundsErrorMessage(from, until); - throw IllegalArgumentException_init_0(message.toString()); - } - } - function checkRangeBounds_0(from, until) { - if (!(until.compareTo_11rb$(from) > 0)) { - var message = boundsErrorMessage(from, until); - throw IllegalArgumentException_init_0(message.toString()); - } - } - function checkRangeBounds_1(from, until) { - if (!(until > from)) { - var message = boundsErrorMessage(from, until); - throw IllegalArgumentException_init_0(message.toString()); - } - } - function boundsErrorMessage(from, until) { - return 'Random range is empty: [' + from.toString() + ', ' + until.toString() + ').'; - } - function nextUInt($receiver) { - return new UInt($receiver.nextInt()); - } - function nextUInt_0($receiver, until) { - return nextUInt_1($receiver, new UInt(0), until); - } - function nextUInt_1($receiver, from, until) { - checkUIntRangeBounds(from, until); - var signedFrom = from.data ^ -2147483648; - var signedUntil = until.data ^ -2147483648; - var signedResult = $receiver.nextInt_vux9f0$(signedFrom, signedUntil) ^ -2147483648; - return new UInt(signedResult); - } - function nextUInt_2($receiver, range) { - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot get random in empty range: ' + range); - else { - if (uintCompare(range.last.data, UInt$Companion_getInstance().MAX_VALUE.data) < 0) { - return nextUInt_1($receiver, range.first, new UInt(range.last.data + (new UInt(1)).data | 0)); - } - else { - if (uintCompare(range.first.data, UInt$Companion_getInstance().MIN_VALUE.data) > 0) { - return new UInt(nextUInt_1($receiver, new UInt(range.first.data - (new UInt(1)).data | 0), range.last).data + (new UInt(1)).data | 0); - } - else - return nextUInt($receiver); - } - } - } - function nextULong($receiver) { - return new ULong($receiver.nextLong()); - } - function nextULong_0($receiver, until) { - return nextULong_1($receiver, new ULong(Kotlin.Long.ZERO), until); - } - function nextULong_1($receiver, from, until) { - checkULongRangeBounds(from, until); - var signedFrom = from.data.xor(Long$Companion$MIN_VALUE); - var signedUntil = until.data.xor(Long$Companion$MIN_VALUE); - var signedResult = $receiver.nextLong_3pjtqy$(signedFrom, signedUntil).xor(Long$Companion$MIN_VALUE); - return new ULong(signedResult); - } - function nextULong_2($receiver, range) { - if (range.isEmpty()) - throw IllegalArgumentException_init_0('Cannot get random in empty range: ' + range); - else { - if (ulongCompare(range.last.data, ULong$Companion_getInstance().MAX_VALUE.data) < 0) { - return nextULong_1($receiver, range.first, new ULong(range.last.data.add((new ULong(Kotlin.Long.fromInt((new UInt(1)).data).and(L4294967295))).data))); - } - else { - if (ulongCompare(range.first.data, ULong$Companion_getInstance().MIN_VALUE.data) > 0) { - return new ULong(nextULong_1($receiver, new ULong(range.first.data.subtract((new ULong(Kotlin.Long.fromInt((new UInt(1)).data).and(L4294967295))).data)), range.last).data.add((new ULong(Kotlin.Long.fromInt((new UInt(1)).data).and(L4294967295))).data)); - } - else - return nextULong($receiver); - } - } - } - function nextUBytes($receiver, array) { - $receiver.nextBytes_fqrh44$(array.storage); - return array; - } - function nextUBytes_0($receiver, size) { - return new UByteArray($receiver.nextBytes_za3lpa$(size)); - } - function nextUBytes_1($receiver, array, fromIndex, toIndex) { - if (fromIndex === void 0) - fromIndex = 0; - if (toIndex === void 0) - toIndex = array.size; - $receiver.nextBytes_mj6st8$(array.storage, fromIndex, toIndex); - return array; - } - function checkUIntRangeBounds(from, until) { - if (!(uintCompare(until.data, from.data) > 0)) { - var message = boundsErrorMessage(from, until); - throw IllegalArgumentException_init_0(message.toString()); - } - } - function checkULongRangeBounds(from, until) { - if (!(ulongCompare(until.data, from.data) > 0)) { - var message = boundsErrorMessage(from, until); - throw IllegalArgumentException_init_0(message.toString()); - } - } - function XorWowRandom(x, y, z, w, v, addend) { - Random.call(this); - this.x_0 = x; - this.y_0 = y; - this.z_0 = z; - this.w_0 = w; - this.v_0 = v; - this.addend_0 = addend; - if (!((this.x_0 | this.y_0 | this.z_0 | this.w_0 | this.v_0) !== 0)) { - var message = 'Initial state must have at least one non-zero element.'; - throw IllegalArgumentException_init_0(message.toString()); - } - for (var index = 0; index < 64; index++) { - this.nextInt(); - } - } - XorWowRandom.prototype.nextInt = function () { - var t = this.x_0; - t = t ^ t >>> 2; - this.x_0 = this.y_0; - this.y_0 = this.z_0; - this.z_0 = this.w_0; - var v0 = this.v_0; - this.w_0 = v0; - t = t ^ t << 1 ^ v0 ^ v0 << 4; - this.v_0 = t; - this.addend_0 = this.addend_0 + 362437 | 0; - return t + this.addend_0 | 0; - }; - XorWowRandom.prototype.nextBits_za3lpa$ = function (bitCount) { - return takeUpperBits(this.nextInt(), bitCount); - }; - XorWowRandom.$metadata$ = {kind: Kind_CLASS, simpleName: 'XorWowRandom', interfaces: [Random]}; - function XorWowRandom_init(seed1, seed2, $this) { - $this = $this || Object.create(XorWowRandom.prototype); - XorWowRandom.call($this, seed1, seed2, 0, 0, ~seed1, seed1 << 10 ^ seed2 >>> 4); - return $this; - } - function ClosedFloatingPointRange() { - } - ClosedFloatingPointRange.prototype.contains_mef7kx$ = function (value) { - return this.lessThanOrEquals_n65qkk$(this.start, value) && this.lessThanOrEquals_n65qkk$(value, this.endInclusive); - }; - ClosedFloatingPointRange.prototype.isEmpty = function () { - return !this.lessThanOrEquals_n65qkk$(this.start, this.endInclusive); - }; - ClosedFloatingPointRange.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ClosedFloatingPointRange', interfaces: [ClosedRange]}; - function ComparableRange(start, endInclusive) { - this.start_p1gsmm$_0 = start; - this.endInclusive_jj4lf7$_0 = endInclusive; - } - Object.defineProperty(ComparableRange.prototype, 'start', {get: function () { - return this.start_p1gsmm$_0; - }}); - Object.defineProperty(ComparableRange.prototype, 'endInclusive', {get: function () { - return this.endInclusive_jj4lf7$_0; - }}); - ComparableRange.prototype.equals = function (other) { - return Kotlin.isType(other, ComparableRange) && (this.isEmpty() && other.isEmpty() || (equals(this.start, other.start) && equals(this.endInclusive, other.endInclusive))); - }; - ComparableRange.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * hashCode(this.start) | 0) + hashCode(this.endInclusive) | 0; - }; - ComparableRange.prototype.toString = function () { - return this.start.toString() + '..' + this.endInclusive; - }; - ComparableRange.$metadata$ = {kind: Kind_CLASS, simpleName: 'ComparableRange', interfaces: [ClosedRange]}; - function ClosedDoubleRange(start, endInclusive) { - this._start_0 = start; - this._endInclusive_0 = endInclusive; - } - Object.defineProperty(ClosedDoubleRange.prototype, 'start', {get: function () { - return this._start_0; - }}); - Object.defineProperty(ClosedDoubleRange.prototype, 'endInclusive', {get: function () { - return this._endInclusive_0; - }}); - ClosedDoubleRange.prototype.lessThanOrEquals_n65qkk$ = function (a, b) { - return a <= b; - }; - ClosedDoubleRange.prototype.contains_mef7kx$ = function (value) { - return value >= this._start_0 && value <= this._endInclusive_0; - }; - ClosedDoubleRange.prototype.isEmpty = function () { - return !(this._start_0 <= this._endInclusive_0); - }; - ClosedDoubleRange.prototype.equals = function (other) { - return Kotlin.isType(other, ClosedDoubleRange) && (this.isEmpty() && other.isEmpty() || (this._start_0 === other._start_0 && this._endInclusive_0 === other._endInclusive_0)); - }; - ClosedDoubleRange.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * hashCode(this._start_0) | 0) + hashCode(this._endInclusive_0) | 0; - }; - ClosedDoubleRange.prototype.toString = function () { - return this._start_0.toString() + '..' + this._endInclusive_0; - }; - ClosedDoubleRange.$metadata$ = {kind: Kind_CLASS, simpleName: 'ClosedDoubleRange', interfaces: [ClosedFloatingPointRange]}; - function rangeTo_0($receiver, that) { - return new ComparableRange($receiver, that); - } - function rangeTo_1($receiver, that) { - return new ClosedDoubleRange($receiver, that); - } - var contains_52 = defineInlineFunction('kotlin.kotlin.ranges.contains_gpq3rh$', function ($receiver, element) { - return element != null && $receiver.contains_mef7kx$(element); - }); - function checkStepIsPositive(isPositive, step) { - if (!isPositive) - throw IllegalArgumentException_init_0('Step must be positive, was: ' + step.toString() + '.'); - } - var typeOf = defineInlineFunction('kotlin.kotlin.reflect.typeOf_287e2$', wrapFunction(function () { - var UnsupportedOperationException_init = _.kotlin.UnsupportedOperationException_init_pdl1vj$; - return function (T_0, isT) { - throw UnsupportedOperationException_init('This function is implemented as an intrinsic on all supported platforms.'); - }; - })); - var plus_59 = defineInlineFunction('kotlin.kotlin.text.plus_elu61a$', function ($receiver, other) { - return String.fromCharCode($receiver) + other; - }); - function equals_1($receiver, other, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if ($receiver === other) - return true; - if (!ignoreCase) - return false; - if (toChar(String.fromCharCode($receiver | 0).toUpperCase().charCodeAt(0)) === toChar(String.fromCharCode(other | 0).toUpperCase().charCodeAt(0))) - return true; - if (toChar(String.fromCharCode($receiver | 0).toLowerCase().charCodeAt(0)) === toChar(String.fromCharCode(other | 0).toLowerCase().charCodeAt(0))) - return true; - return false; - } - function isSurrogate($receiver) { - return (new CharRange(kotlin_js_internal_CharCompanionObject.MIN_SURROGATE, kotlin_js_internal_CharCompanionObject.MAX_SURROGATE)).contains_mef7kx$($receiver); - } - function trimMargin($receiver, marginPrefix) { - if (marginPrefix === void 0) - marginPrefix = '|'; - return replaceIndentByMargin($receiver, '', marginPrefix); - } - function replaceIndentByMargin($receiver, newIndent, marginPrefix) { - if (newIndent === void 0) - newIndent = ''; - if (marginPrefix === void 0) - marginPrefix = '|'; - if (!!isBlank(marginPrefix)) { - var message = 'marginPrefix must be non-blank string.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var lines_0 = lines($receiver); - var resultSizeEstimate = $receiver.length + Kotlin.imul(newIndent.length, lines_0.size) | 0; - var indentAddFunction = getIndentFunction(newIndent); - var lastIndex = get_lastIndex_12(lines_0); - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = lines_0.iterator(); - loop_label: while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_1; - var index_0 = checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)); - var tmp$_2, tmp$_3; - var tmp$_4; - if ((index_0 === 0 || index_0 === lastIndex) && isBlank(item)) - tmp$_4 = null; - else { - var indentCutFunction$result; - var indexOfFirst$result; - indexOfFirst$break: do { - var tmp$_5, tmp$_6, tmp$_7, tmp$_8; - tmp$_5 = get_indices_13(item); - tmp$_6 = tmp$_5.first; - tmp$_7 = tmp$_5.last; - tmp$_8 = tmp$_5.step; - for (var index_1 = tmp$_6; index_1 <= tmp$_7; index_1 += tmp$_8) { - if (!isWhitespace(unboxChar(toBoxedChar(item.charCodeAt(index_1))))) { - indexOfFirst$result = index_1; - break indexOfFirst$break; - } - } - indexOfFirst$result = -1; - } - while (false); - var firstNonWhitespaceIndex = indexOfFirst$result; - if (firstNonWhitespaceIndex === -1) { - indentCutFunction$result = null; - } - else if (startsWith_0(item, marginPrefix, firstNonWhitespaceIndex)) { - indentCutFunction$result = item.substring(firstNonWhitespaceIndex + marginPrefix.length | 0); - } - else { - indentCutFunction$result = null; - } - tmp$_4 = (tmp$_3 = (tmp$_2 = indentCutFunction$result) != null ? indentAddFunction(tmp$_2) : null) != null ? tmp$_3 : item; - } - if ((tmp$_1 = tmp$_4) != null) { - destination.add_11rb$(tmp$_1); - } - } - return joinTo_8(destination, StringBuilder_init(resultSizeEstimate), '\n').toString(); - } - function trimIndent($receiver) { - return replaceIndent($receiver, ''); - } - function replaceIndent($receiver, newIndent) { - if (newIndent === void 0) - newIndent = ''; - var tmp$; - var lines_0 = lines($receiver); - var destination = ArrayList_init(); - var tmp$_0; - tmp$_0 = lines_0.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - if (!isBlank(element)) - destination.add_11rb$(element); - } - var $receiver_0 = destination; - var destination_0 = ArrayList_init_0(collectionSizeOrDefault($receiver_0, 10)); - var tmp$_1; - tmp$_1 = $receiver_0.iterator(); - while (tmp$_1.hasNext()) { - var item = tmp$_1.next(); - destination_0.add_11rb$(indentWidth(item)); - } - var minCommonIndent = (tmp$ = min_11(destination_0)) != null ? tmp$ : 0; - var resultSizeEstimate = $receiver.length + Kotlin.imul(newIndent.length, lines_0.size) | 0; - var indentAddFunction = getIndentFunction(newIndent); - var lastIndex = get_lastIndex_12(lines_0); - var destination_1 = ArrayList_init(); - var tmp$_2, tmp$_3; - var index = 0; - tmp$_2 = lines_0.iterator(); - while (tmp$_2.hasNext()) { - var item_0 = tmp$_2.next(); - var tmp$_4; - var index_0 = checkIndexOverflow((tmp$_3 = index, index = tmp$_3 + 1 | 0, tmp$_3)); - var tmp$_5, tmp$_6; - if ((tmp$_4 = (index_0 === 0 || index_0 === lastIndex) && isBlank(item_0) ? null : (tmp$_6 = (tmp$_5 = drop_11(item_0, minCommonIndent)) != null ? indentAddFunction(tmp$_5) : null) != null ? tmp$_6 : item_0) != null) { - destination_1.add_11rb$(tmp$_4); - } - } - return joinTo_8(destination_1, StringBuilder_init(resultSizeEstimate), '\n').toString(); - } - function prependIndent$lambda(closure$indent) { - return function (it) { - if (isBlank(it)) - if (it.length < closure$indent.length) - return closure$indent; - else - return it; - else - return closure$indent + it; - }; - } - function prependIndent($receiver, indent) { - if (indent === void 0) - indent = ' '; - return joinToString_9(map_10(lineSequence($receiver), prependIndent$lambda(indent)), '\n'); - } - function indentWidth($receiver) { - var indexOfFirst$result; - indexOfFirst$break: do { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices_13($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) { - if (!isWhitespace(unboxChar(toBoxedChar($receiver.charCodeAt(index))))) { - indexOfFirst$result = index; - break indexOfFirst$break; - } - } - indexOfFirst$result = -1; - } - while (false); - var it = indexOfFirst$result; - return it === -1 ? $receiver.length : it; - } - function getIndentFunction$lambda(line) { - return line; - } - function getIndentFunction$lambda_0(closure$indent) { - return function (line) { - return closure$indent + line; - }; - } - function getIndentFunction(indent) { - if (indent.length === 0) - return getIndentFunction$lambda; - else - return getIndentFunction$lambda_0(indent); - } - var reindent = wrapFunction(function () { - var ArrayList_init = _.kotlin.collections.ArrayList_init_287e2$; - var checkIndexOverflow = _.kotlin.collections.checkIndexOverflow_za3lpa$; - return function ($receiver, resultSizeEstimate, indentAddFunction, indentCutFunction) { - var lastIndex = get_lastIndex_12($receiver); - var destination = ArrayList_init(); - var tmp$, tmp$_0; - var index = 0; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_1; - var index_0 = checkIndexOverflow((tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0)); - var tmp$_2, tmp$_3; - if ((tmp$_1 = (index_0 === 0 || index_0 === lastIndex) && isBlank(item) ? null : (tmp$_3 = (tmp$_2 = indentCutFunction(item)) != null ? indentAddFunction(tmp$_2) : null) != null ? tmp$_3 : item) != null) { - destination.add_11rb$(tmp$_1); - } - } - return joinTo_8(destination, StringBuilder_init(resultSizeEstimate), '\n').toString(); - }; - }); - var buildString = defineInlineFunction('kotlin.kotlin.text.buildString_obkquz$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init; - return function (builderAction) { - var $receiver = StringBuilder_init(); - builderAction($receiver); - return $receiver.toString(); - }; - })); - var buildString_0 = defineInlineFunction('kotlin.kotlin.text.buildString_5yrlj9$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init_za3lpa$; - return function (capacity, builderAction) { - var $receiver = StringBuilder_init(capacity); - builderAction($receiver); - return $receiver.toString(); - }; - })); - function append($receiver, value) { - var tmp$; - for (tmp$ = 0; tmp$ !== value.length; ++tmp$) { - var item = value[tmp$]; - $receiver.append_gw00v9$(item); - } - return $receiver; - } - function append_0($receiver, value) { - var tmp$; - for (tmp$ = 0; tmp$ !== value.length; ++tmp$) { - var item = value[tmp$]; - $receiver.append_gw00v9$(item); - } - return $receiver; - } - function append_1($receiver, value) { - var tmp$; - for (tmp$ = 0; tmp$ !== value.length; ++tmp$) { - var item = value[tmp$]; - $receiver.append_s8jyv4$(item); - } - return $receiver; - } - function appendElement_0($receiver, element, transform) { - if (transform != null) - $receiver.append_gw00v9$(transform(element)); - else if (element == null || Kotlin.isCharSequence(element)) - $receiver.append_gw00v9$(element); - else if (Kotlin.isChar(element)) - $receiver.append_s8itvh$(unboxChar(element)); - else - $receiver.append_gw00v9$(toString(element)); - } - function toByteOrNull($receiver) { - return toByteOrNull_0($receiver, 10); - } - function toByteOrNull_0($receiver, radix) { - var tmp$; - tmp$ = toIntOrNull_0($receiver, radix); - if (tmp$ == null) { - return null; - } - var int = tmp$; - if (int < kotlin_js_internal_ByteCompanionObject.MIN_VALUE || int > kotlin_js_internal_ByteCompanionObject.MAX_VALUE) - return null; - return toByte(int); - } - function toShortOrNull($receiver) { - return toShortOrNull_0($receiver, 10); - } - function toShortOrNull_0($receiver, radix) { - var tmp$; - tmp$ = toIntOrNull_0($receiver, radix); - if (tmp$ == null) { - return null; - } - var int = tmp$; - if (int < kotlin_js_internal_ShortCompanionObject.MIN_VALUE || int > kotlin_js_internal_ShortCompanionObject.MAX_VALUE) - return null; - return toShort(int); - } - function toIntOrNull($receiver) { - return toIntOrNull_0($receiver, 10); - } - function toIntOrNull_0($receiver, radix) { - var tmp$; - checkRadix(radix); - var length = $receiver.length; - if (length === 0) - return null; - var start; - var isNegative; - var limit; - var firstChar = $receiver.charCodeAt(0); - if (firstChar < 48) { - if (length === 1) - return null; - start = 1; - if (firstChar === 45) { - isNegative = true; - limit = -2147483648; - } - else if (firstChar === 43) { - isNegative = false; - limit = -2147483647; - } - else - return null; - } - else { - start = 0; - isNegative = false; - limit = -2147483647; - } - var limitBeforeMul = limit / radix | 0; - var result = 0; - tmp$ = length - 1 | 0; - for (var i = start; i <= tmp$; i++) { - var digit = digitOf($receiver.charCodeAt(i), radix); - if (digit < 0) - return null; - if (result < limitBeforeMul) - return null; - result = Kotlin.imul(result, radix); - if (result < (limit + digit | 0)) - return null; - result = result - digit | 0; - } - return isNegative ? result : -result | 0; - } - function toLongOrNull($receiver) { - return toLongOrNull_0($receiver, 10); - } - function toLongOrNull_0($receiver, radix) { - var tmp$; - checkRadix(radix); - var length = $receiver.length; - if (length === 0) - return null; - var start; - var isNegative; - var limit; - var firstChar = $receiver.charCodeAt(0); - if (firstChar < 48) { - if (length === 1) - return null; - start = 1; - if (firstChar === 45) { - isNegative = true; - limit = Long$Companion$MIN_VALUE; - } - else if (firstChar === 43) { - isNegative = false; - limit = L_9223372036854775807; - } - else - return null; - } - else { - start = 0; - isNegative = false; - limit = L_9223372036854775807; - } - var limitBeforeMul = limit.div(Kotlin.Long.fromInt(radix)); - var result = L0; - tmp$ = length - 1 | 0; - for (var i = start; i <= tmp$; i++) { - var digit = digitOf($receiver.charCodeAt(i), radix); - if (digit < 0) - return null; - if (result.compareTo_11rb$(limitBeforeMul) < 0) - return null; - result = result.multiply(Kotlin.Long.fromInt(radix)); - if (result.compareTo_11rb$(limit.add(Kotlin.Long.fromInt(digit))) < 0) - return null; - result = result.subtract(Kotlin.Long.fromInt(digit)); - } - return isNegative ? result : result.unaryMinus(); - } - function numberFormatError(input) { - throw new NumberFormatException("Invalid number format: '" + input + "'"); - } - var trim = defineInlineFunction('kotlin.kotlin.text.trim_2pivbd$', wrapFunction(function () { - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var startIndex = 0; - var endIndex = $receiver.length - 1 | 0; - var startFound = false; - while (startIndex <= endIndex) { - var index = !startFound ? startIndex : endIndex; - var match = predicate(toBoxedChar($receiver.charCodeAt(index))); - if (!startFound) { - if (!match) - startFound = true; - else - startIndex = startIndex + 1 | 0; - } - else { - if (!match) - break; - else - endIndex = endIndex - 1 | 0; - } - } - return Kotlin.subSequence($receiver, startIndex, endIndex + 1 | 0); - }; - })); - var trim_0 = defineInlineFunction('kotlin.kotlin.text.trim_ouje1d$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - var $receiver_0 = Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(); - var startIndex = 0; - var endIndex = $receiver_0.length - 1 | 0; - var startFound = false; - while (startIndex <= endIndex) { - var index = !startFound ? startIndex : endIndex; - var match = predicate(toBoxedChar($receiver_0.charCodeAt(index))); - if (!startFound) { - if (!match) - startFound = true; - else - startIndex = startIndex + 1 | 0; - } - else { - if (!match) - break; - else - endIndex = endIndex - 1 | 0; - } - } - return Kotlin.subSequence($receiver_0, startIndex, endIndex + 1 | 0).toString(); - }; - })); - var trimStart = defineInlineFunction('kotlin.kotlin.text.trimStart_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) - return Kotlin.subSequence($receiver, index, $receiver.length); - return ''; - }; - })); - var trimStart_0 = defineInlineFunction('kotlin.kotlin.text.trimStart_ouje1d$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - var $receiver_0 = Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(); - var trimStart$result; - trimStart$break: do { - var tmp$_0, tmp$_1, tmp$_2, tmp$_3; - tmp$_0 = get_indices($receiver_0); - tmp$_1 = tmp$_0.first; - tmp$_2 = tmp$_0.last; - tmp$_3 = tmp$_0.step; - for (var index = tmp$_1; index <= tmp$_2; index += tmp$_3) - if (!predicate(toBoxedChar($receiver_0.charCodeAt(index)))) { - trimStart$result = Kotlin.subSequence($receiver_0, index, $receiver_0.length); - break trimStart$break; - } - trimStart$result = ''; - } - while (false); - return trimStart$result.toString(); - }; - })); - var trimEnd = defineInlineFunction('kotlin.kotlin.text.trimEnd_2pivbd$', wrapFunction(function () { - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - tmp$ = reversed(get_indices($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (!predicate(toBoxedChar($receiver.charCodeAt(index)))) - return Kotlin.subSequence($receiver, 0, index + 1 | 0); - } - return ''; - }; - })); - var trimEnd_0 = defineInlineFunction('kotlin.kotlin.text.trimEnd_ouje1d$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var get_indices = _.kotlin.text.get_indices_gw00vp$; - var reversed = _.kotlin.ranges.reversed_zf1xzc$; - var toBoxedChar = Kotlin.toBoxedChar; - return function ($receiver, predicate) { - var tmp$; - var $receiver_0 = Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(); - var trimEnd$result; - trimEnd$break: do { - var tmp$_0; - tmp$_0 = reversed(get_indices($receiver_0)).iterator(); - while (tmp$_0.hasNext()) { - var index = tmp$_0.next(); - if (!predicate(toBoxedChar($receiver_0.charCodeAt(index)))) { - trimEnd$result = Kotlin.subSequence($receiver_0, 0, index + 1 | 0); - break trimEnd$break; - } - } - trimEnd$result = ''; - } - while (false); - return trimEnd$result.toString(); - }; - })); - function trim_1($receiver, chars) { - var startIndex = 0; - var endIndex = $receiver.length - 1 | 0; - var startFound = false; - while (startIndex <= endIndex) { - var index = !startFound ? startIndex : endIndex; - var match = contains_7(chars, unboxChar(toBoxedChar($receiver.charCodeAt(index)))); - if (!startFound) { - if (!match) - startFound = true; - else - startIndex = startIndex + 1 | 0; - } - else { - if (!match) - break; - else - endIndex = endIndex - 1 | 0; - } - } - return Kotlin.subSequence($receiver, startIndex, endIndex + 1 | 0); - } - function trim_2($receiver, chars) { - var tmp$; - var $receiver_0 = Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(); - var startIndex = 0; - var endIndex = $receiver_0.length - 1 | 0; - var startFound = false; - while (startIndex <= endIndex) { - var index = !startFound ? startIndex : endIndex; - var match = contains_7(chars, unboxChar(toBoxedChar($receiver_0.charCodeAt(index)))); - if (!startFound) { - if (!match) - startFound = true; - else - startIndex = startIndex + 1 | 0; - } - else { - if (!match) - break; - else - endIndex = endIndex - 1 | 0; - } - } - return Kotlin.subSequence($receiver_0, startIndex, endIndex + 1 | 0).toString(); - } - function trimStart_1($receiver, chars) { - var trimStart$result; - trimStart$break: do { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices_13($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) { - if (!contains_7(chars, unboxChar(toBoxedChar($receiver.charCodeAt(index))))) { - trimStart$result = Kotlin.subSequence($receiver, index, $receiver.length); - break trimStart$break; - } - } - trimStart$result = ''; - } - while (false); - return trimStart$result; - } - function trimStart_2($receiver, chars) { - var tmp$; - var $receiver_0 = Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(); - var trimStart$result; - trimStart$break: do { - var tmp$_0, tmp$_1, tmp$_2, tmp$_3; - tmp$_0 = get_indices_13($receiver_0); - tmp$_1 = tmp$_0.first; - tmp$_2 = tmp$_0.last; - tmp$_3 = tmp$_0.step; - for (var index = tmp$_1; index <= tmp$_2; index += tmp$_3) { - if (!contains_7(chars, unboxChar(toBoxedChar($receiver_0.charCodeAt(index))))) { - trimStart$result = Kotlin.subSequence($receiver_0, index, $receiver_0.length); - break trimStart$break; - } - } - trimStart$result = ''; - } - while (false); - return trimStart$result.toString(); - } - function trimEnd_1($receiver, chars) { - var trimEnd$result; - trimEnd$break: do { - var tmp$; - tmp$ = reversed_9(get_indices_13($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (!contains_7(chars, unboxChar(toBoxedChar($receiver.charCodeAt(index))))) { - trimEnd$result = Kotlin.subSequence($receiver, 0, index + 1 | 0); - break trimEnd$break; - } - } - trimEnd$result = ''; - } - while (false); - return trimEnd$result; - } - function trimEnd_2($receiver, chars) { - var tmp$; - var $receiver_0 = Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(); - var trimEnd$result; - trimEnd$break: do { - var tmp$_0; - tmp$_0 = reversed_9(get_indices_13($receiver_0)).iterator(); - while (tmp$_0.hasNext()) { - var index = tmp$_0.next(); - if (!contains_7(chars, unboxChar(toBoxedChar($receiver_0.charCodeAt(index))))) { - trimEnd$result = Kotlin.subSequence($receiver_0, 0, index + 1 | 0); - break trimEnd$break; - } - } - trimEnd$result = ''; - } - while (false); - return trimEnd$result.toString(); - } - function trim_3($receiver) { - var startIndex = 0; - var endIndex = $receiver.length - 1 | 0; - var startFound = false; - while (startIndex <= endIndex) { - var index = !startFound ? startIndex : endIndex; - var match = isWhitespace(unboxChar(toBoxedChar($receiver.charCodeAt(index)))); - if (!startFound) { - if (!match) - startFound = true; - else - startIndex = startIndex + 1 | 0; - } - else { - if (!match) - break; - else - endIndex = endIndex - 1 | 0; - } - } - return Kotlin.subSequence($receiver, startIndex, endIndex + 1 | 0); - } - var trim_4 = defineInlineFunction('kotlin.kotlin.text.trim_pdl1vz$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var trim = _.kotlin.text.trim_gw00vp$; - return function ($receiver) { - var tmp$; - return trim(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE()).toString(); - }; - })); - function trimStart_3($receiver) { - var trimStart$result; - trimStart$break: do { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - tmp$ = get_indices_13($receiver); - tmp$_0 = tmp$.first; - tmp$_1 = tmp$.last; - tmp$_2 = tmp$.step; - for (var index = tmp$_0; index <= tmp$_1; index += tmp$_2) { - if (!isWhitespace(unboxChar(toBoxedChar($receiver.charCodeAt(index))))) { - trimStart$result = Kotlin.subSequence($receiver, index, $receiver.length); - break trimStart$break; - } - } - trimStart$result = ''; - } - while (false); - return trimStart$result; - } - var trimStart_4 = defineInlineFunction('kotlin.kotlin.text.trimStart_pdl1vz$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var trimStart = _.kotlin.text.trimStart_gw00vp$; - return function ($receiver) { - var tmp$; - return trimStart(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE()).toString(); - }; - })); - function trimEnd_3($receiver) { - var trimEnd$result; - trimEnd$break: do { - var tmp$; - tmp$ = reversed_9(get_indices_13($receiver)).iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (!isWhitespace(unboxChar(toBoxedChar($receiver.charCodeAt(index))))) { - trimEnd$result = Kotlin.subSequence($receiver, 0, index + 1 | 0); - break trimEnd$break; - } - } - trimEnd$result = ''; - } - while (false); - return trimEnd$result; - } - var trimEnd_4 = defineInlineFunction('kotlin.kotlin.text.trimEnd_pdl1vz$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var trimEnd = _.kotlin.text.trimEnd_gw00vp$; - return function ($receiver) { - var tmp$; - return trimEnd(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE()).toString(); - }; - })); - function padStart($receiver, length, padChar) { - if (padChar === void 0) - padChar = 32; - var tmp$; - if (length < 0) - throw IllegalArgumentException_init_0('Desired length ' + length + ' is less than zero.'); - if (length <= $receiver.length) - return Kotlin.subSequence($receiver, 0, $receiver.length); - var sb = StringBuilder_init(length); - tmp$ = length - $receiver.length | 0; - for (var i = 1; i <= tmp$; i++) - sb.append_s8itvh$(padChar); - sb.append_gw00v9$($receiver); - return sb; - } - function padStart_0($receiver, length, padChar) { - if (padChar === void 0) - padChar = 32; - var tmp$; - return padStart(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE_0(), length, padChar).toString(); - } - function padEnd($receiver, length, padChar) { - if (padChar === void 0) - padChar = 32; - var tmp$; - if (length < 0) - throw IllegalArgumentException_init_0('Desired length ' + length + ' is less than zero.'); - if (length <= $receiver.length) - return Kotlin.subSequence($receiver, 0, $receiver.length); - var sb = StringBuilder_init(length); - sb.append_gw00v9$($receiver); - tmp$ = length - $receiver.length | 0; - for (var i = 1; i <= tmp$; i++) - sb.append_s8itvh$(padChar); - return sb; - } - function padEnd_0($receiver, length, padChar) { - if (padChar === void 0) - padChar = 32; - var tmp$; - return padEnd(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE_0(), length, padChar).toString(); - } - var isNullOrEmpty_2 = defineInlineFunction('kotlin.kotlin.text.isNullOrEmpty_qc8d1o$', function ($receiver) { - return $receiver == null || $receiver.length === 0; - }); - var isEmpty_8 = defineInlineFunction('kotlin.kotlin.text.isEmpty_gw00vp$', function ($receiver) { - return $receiver.length === 0; - }); - var isNotEmpty_10 = defineInlineFunction('kotlin.kotlin.text.isNotEmpty_gw00vp$', function ($receiver) { - return $receiver.length > 0; - }); - var isNotBlank = defineInlineFunction('kotlin.kotlin.text.isNotBlank_gw00vp$', wrapFunction(function () { - var isBlank = _.kotlin.text.isBlank_gw00vp$; - return function ($receiver) { - return !isBlank($receiver); - }; - })); - var isNullOrBlank = defineInlineFunction('kotlin.kotlin.text.isNullOrBlank_qc8d1o$', wrapFunction(function () { - var isBlank = _.kotlin.text.isBlank_gw00vp$; - return function ($receiver) { - return $receiver == null || isBlank($receiver); - }; - })); - function iterator$ObjectLiteral(this$iterator) { - this.this$iterator = this$iterator; - CharIterator.call(this); - this.index_0 = 0; - } - iterator$ObjectLiteral.prototype.nextChar = function () { - var tmp$, tmp$_0; - tmp$_0 = (tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$); - return this.this$iterator.charCodeAt(tmp$_0); - }; - iterator$ObjectLiteral.prototype.hasNext = function () { - return this.index_0 < this.this$iterator.length; - }; - iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [CharIterator]}; - function iterator_4($receiver) { - return new iterator$ObjectLiteral($receiver); - } - var orEmpty_5 = defineInlineFunction('kotlin.kotlin.text.orEmpty_5cw0du$', function ($receiver) { - return $receiver != null ? $receiver : ''; - }); - var ifEmpty_3 = defineInlineFunction('kotlin.kotlin.text.ifEmpty_pevw8y$', function ($receiver, defaultValue) { - return $receiver.length === 0 ? defaultValue() : $receiver; - }); - var ifBlank = defineInlineFunction('kotlin.kotlin.text.ifBlank_pevw8y$', wrapFunction(function () { - var isBlank = _.kotlin.text.isBlank_gw00vp$; - return function ($receiver, defaultValue) { - return isBlank($receiver) ? defaultValue() : $receiver; - }; - })); - function get_indices_13($receiver) { - return new IntRange(0, $receiver.length - 1 | 0); - } - function get_lastIndex_13($receiver) { - return $receiver.length - 1 | 0; - } - function hasSurrogatePairAt($receiver, index) { - var tmp$; - tmp$ = $receiver.length - 2 | 0; - return 0 <= index && index <= tmp$ && isHighSurrogate($receiver.charCodeAt(index)) && isLowSurrogate($receiver.charCodeAt(index + 1 | 0)); - } - function substring_1($receiver, range) { - return $receiver.substring(range.start, range.endInclusive + 1 | 0); - } - function subSequence_0($receiver, range) { - return Kotlin.subSequence($receiver, range.start, range.endInclusive + 1 | 0); - } - var subSequence_1 = defineInlineFunction('kotlin.kotlin.text.subSequence_qgyqat$', function ($receiver, start, end) { - return $receiver.substring(start, end); - }); - var substring_2 = defineInlineFunction('kotlin.kotlin.text.substring_qdpigv$', function ($receiver, startIndex, endIndex) { - if (endIndex === void 0) - endIndex = $receiver.length; - return Kotlin.subSequence($receiver, startIndex, endIndex).toString(); - }); - function substring_3($receiver, range) { - return Kotlin.subSequence($receiver, range.start, range.endInclusive + 1 | 0).toString(); - } - function substringBefore($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_16($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(0, index); - } - function substringBefore_0($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_17($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(0, index); - } - function substringAfter($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_16($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(index + 1 | 0, $receiver.length); - } - function substringAfter_0($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_17($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(index + delimiter.length | 0, $receiver.length); - } - function substringBeforeLast($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_15($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(0, index); - } - function substringBeforeLast_0($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_16($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(0, index); - } - function substringAfterLast($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_15($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(index + 1 | 0, $receiver.length); - } - function substringAfterLast_0($receiver, delimiter, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_16($receiver, delimiter); - return index === -1 ? missingDelimiterValue : $receiver.substring(index + delimiter.length | 0, $receiver.length); - } - function replaceRange($receiver, startIndex, endIndex, replacement) { - if (endIndex < startIndex) - throw new IndexOutOfBoundsException('End index (' + endIndex + ') is less than start index (' + startIndex + ').'); - var sb = StringBuilder_init_1(); - sb.append_ezbsdh$($receiver, 0, startIndex); - sb.append_gw00v9$(replacement); - sb.append_ezbsdh$($receiver, endIndex, $receiver.length); - return sb; - } - var replaceRange_0 = defineInlineFunction('kotlin.kotlin.text.replaceRange_r96sod$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var replaceRange = _.kotlin.text.replaceRange_p5j4qv$; - return function ($receiver, startIndex, endIndex, replacement) { - var tmp$; - return replaceRange(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(), startIndex, endIndex, replacement).toString(); - }; - })); - function replaceRange_1($receiver, range, replacement) { - return replaceRange($receiver, range.start, range.endInclusive + 1 | 0, replacement); - } - var replaceRange_2 = defineInlineFunction('kotlin.kotlin.text.replaceRange_laqjpa$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var replaceRange = _.kotlin.text.replaceRange_r6gztw$; - return function ($receiver, range, replacement) { - var tmp$; - return replaceRange(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(), range, replacement).toString(); - }; - })); - function removeRange($receiver, startIndex, endIndex) { - if (endIndex < startIndex) - throw new IndexOutOfBoundsException('End index (' + endIndex + ') is less than start index (' + startIndex + ').'); - if (endIndex === startIndex) - return Kotlin.subSequence($receiver, 0, $receiver.length); - var sb = StringBuilder_init($receiver.length - (endIndex - startIndex) | 0); - sb.append_ezbsdh$($receiver, 0, startIndex); - sb.append_ezbsdh$($receiver, endIndex, $receiver.length); - return sb; - } - var removeRange_0 = defineInlineFunction('kotlin.kotlin.text.removeRange_qgyqat$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var removeRange = _.kotlin.text.removeRange_qdpigv$; - return function ($receiver, startIndex, endIndex) { - var tmp$; - return removeRange(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(), startIndex, endIndex).toString(); - }; - })); - function removeRange_1($receiver, range) { - return removeRange($receiver, range.start, range.endInclusive + 1 | 0); - } - var removeRange_2 = defineInlineFunction('kotlin.kotlin.text.removeRange_fc3b62$', wrapFunction(function () { - var throwCCE = Kotlin.throwCCE; - var removeRange = _.kotlin.text.removeRange_i511yc$; - return function ($receiver, range) { - var tmp$; - return removeRange(Kotlin.isCharSequence(tmp$ = $receiver) ? tmp$ : throwCCE(), range).toString(); - }; - })); - function removePrefix($receiver, prefix) { - if (startsWith_2($receiver, prefix)) { - return Kotlin.subSequence($receiver, prefix.length, $receiver.length); - } - return Kotlin.subSequence($receiver, 0, $receiver.length); - } - function removePrefix_0($receiver, prefix) { - if (startsWith_2($receiver, prefix)) { - return $receiver.substring(prefix.length); - } - return $receiver; - } - function removeSuffix($receiver, suffix) { - if (endsWith_1($receiver, suffix)) { - return Kotlin.subSequence($receiver, 0, $receiver.length - suffix.length | 0); - } - return Kotlin.subSequence($receiver, 0, $receiver.length); - } - function removeSuffix_0($receiver, suffix) { - if (endsWith_1($receiver, suffix)) { - return $receiver.substring(0, $receiver.length - suffix.length | 0); - } - return $receiver; - } - function removeSurrounding($receiver, prefix, suffix) { - if ($receiver.length >= (prefix.length + suffix.length | 0) && startsWith_2($receiver, prefix) && endsWith_1($receiver, suffix)) { - return Kotlin.subSequence($receiver, prefix.length, $receiver.length - suffix.length | 0); - } - return Kotlin.subSequence($receiver, 0, $receiver.length); - } - function removeSurrounding_0($receiver, prefix, suffix) { - if ($receiver.length >= (prefix.length + suffix.length | 0) && startsWith_2($receiver, prefix) && endsWith_1($receiver, suffix)) { - return $receiver.substring(prefix.length, $receiver.length - suffix.length | 0); - } - return $receiver; - } - function removeSurrounding_1($receiver, delimiter) { - return removeSurrounding($receiver, delimiter, delimiter); - } - function removeSurrounding_2($receiver, delimiter) { - return removeSurrounding_0($receiver, delimiter, delimiter); - } - function replaceBefore($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_16($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), 0, index, replacement).toString(); - } - return tmp$; - } - function replaceBefore_0($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_17($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), 0, index, replacement).toString(); - } - return tmp$; - } - function replaceAfter($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_16($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var startIndex = index + 1 | 0; - var endIndex = $receiver.length; - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), startIndex, endIndex, replacement).toString(); - } - return tmp$; - } - function replaceAfter_0($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = indexOf_17($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var startIndex = index + delimiter.length | 0; - var endIndex = $receiver.length; - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), startIndex, endIndex, replacement).toString(); - } - return tmp$; - } - function replaceAfterLast($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_16($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var startIndex = index + delimiter.length | 0; - var endIndex = $receiver.length; - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), startIndex, endIndex, replacement).toString(); - } - return tmp$; - } - function replaceAfterLast_0($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_15($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var startIndex = index + 1 | 0; - var endIndex = $receiver.length; - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), startIndex, endIndex, replacement).toString(); - } - return tmp$; - } - function replaceBeforeLast($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_15($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), 0, index, replacement).toString(); - } - return tmp$; - } - function replaceBeforeLast_0($receiver, delimiter, replacement, missingDelimiterValue) { - if (missingDelimiterValue === void 0) - missingDelimiterValue = $receiver; - var index = lastIndexOf_16($receiver, delimiter); - var tmp$; - if (index === -1) - tmp$ = missingDelimiterValue; - else { - var tmp$_0; - tmp$ = replaceRange(Kotlin.isCharSequence(tmp$_0 = $receiver) ? tmp$_0 : throwCCE(), 0, index, replacement).toString(); - } - return tmp$; - } - var replace_1 = defineInlineFunction('kotlin.kotlin.text.replace_tb98gq$', function ($receiver, regex, replacement) { - return regex.replace_x2uqeu$($receiver, replacement); - }); - var replace_2 = defineInlineFunction('kotlin.kotlin.text.replace_3avfay$', wrapFunction(function () { - var StringBuilder_init = _.kotlin.text.StringBuilder_init_za3lpa$; - var ensureNotNull = Kotlin.ensureNotNull; - return function ($receiver, regex, transform) { - var replace_20wsma$result; - replace_20wsma$break: do { - var match = regex.find_905azu$($receiver); - if (match == null) { - replace_20wsma$result = $receiver.toString(); - break replace_20wsma$break; - } - var lastStart = 0; - var length = $receiver.length; - var sb = StringBuilder_init(length); - do { - var foundMatch = ensureNotNull(match); - sb.append_ezbsdh$($receiver, lastStart, foundMatch.range.start); - sb.append_gw00v9$(transform(foundMatch)); - lastStart = foundMatch.range.endInclusive + 1 | 0; - match = foundMatch.next(); - } - while (lastStart < length && match != null); - if (lastStart < length) { - sb.append_ezbsdh$($receiver, lastStart, length); - } - replace_20wsma$result = sb.toString(); - } - while (false); - return replace_20wsma$result; - }; - })); - var replaceFirst_1 = defineInlineFunction('kotlin.kotlin.text.replaceFirst_tb98gq$', function ($receiver, regex, replacement) { - return regex.replaceFirst_x2uqeu$($receiver, replacement); - }); - var matches_0 = defineInlineFunction('kotlin.kotlin.text.matches_t3gu14$', function ($receiver, regex) { - return regex.matches_6bul2c$($receiver); - }); - function regionMatchesImpl($receiver, thisOffset, other, otherOffset, length, ignoreCase) { - if (otherOffset < 0 || thisOffset < 0 || thisOffset > ($receiver.length - length | 0) || otherOffset > (other.length - length | 0)) { - return false; - } - for (var index = 0; index < length; index++) { - if (!equals_1($receiver.charCodeAt(thisOffset + index | 0), other.charCodeAt(otherOffset + index | 0), ignoreCase)) - return false; - } - return true; - } - function startsWith_1($receiver, char, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return $receiver.length > 0 && equals_1($receiver.charCodeAt(0), char, ignoreCase); - } - function endsWith_0($receiver, char, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return $receiver.length > 0 && equals_1($receiver.charCodeAt(get_lastIndex_13($receiver)), char, ignoreCase); - } - function startsWith_2($receiver, prefix, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase && typeof $receiver === 'string' && typeof prefix === 'string') - return startsWith($receiver, prefix); - else - return regionMatchesImpl($receiver, 0, prefix, 0, prefix.length, ignoreCase); - } - function startsWith_3($receiver, prefix, startIndex, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase && typeof $receiver === 'string' && typeof prefix === 'string') - return startsWith_0($receiver, prefix, startIndex); - else - return regionMatchesImpl($receiver, startIndex, prefix, 0, prefix.length, ignoreCase); - } - function endsWith_1($receiver, suffix, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase && typeof $receiver === 'string' && typeof suffix === 'string') - return endsWith($receiver, suffix); - else - return regionMatchesImpl($receiver, $receiver.length - suffix.length | 0, suffix, 0, suffix.length, ignoreCase); - } - function commonPrefixWith($receiver, other, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - var shortestLength = Math_0.min($receiver.length, other.length); - var i = 0; - while (i < shortestLength && equals_1($receiver.charCodeAt(i), other.charCodeAt(i), ignoreCase)) { - i = i + 1 | 0; - } - if (hasSurrogatePairAt($receiver, i - 1 | 0) || hasSurrogatePairAt(other, i - 1 | 0)) { - i = i - 1 | 0; - } - return Kotlin.subSequence($receiver, 0, i).toString(); - } - function commonSuffixWith($receiver, other, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - var thisLength = $receiver.length; - var otherLength = other.length; - var shortestLength = Math_0.min(thisLength, otherLength); - var i = 0; - while (i < shortestLength && equals_1($receiver.charCodeAt(thisLength - i - 1 | 0), other.charCodeAt(otherLength - i - 1 | 0), ignoreCase)) { - i = i + 1 | 0; - } - if (hasSurrogatePairAt($receiver, thisLength - i - 1 | 0) || hasSurrogatePairAt(other, otherLength - i - 1 | 0)) { - i = i - 1 | 0; - } - return Kotlin.subSequence($receiver, thisLength - i | 0, thisLength).toString(); - } - function indexOfAny($receiver, chars, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - var tmp$, tmp$_0; - if (!ignoreCase && chars.length === 1 && typeof $receiver === 'string') { - var char = single_7(chars); - return $receiver.indexOf(String.fromCharCode(char), startIndex); - } - tmp$ = coerceAtLeast_2(startIndex, 0); - tmp$_0 = get_lastIndex_13($receiver); - loop_label: for (var index = tmp$; index <= tmp$_0; index++) { - var charAtIndex = $receiver.charCodeAt(index); - var any$result; - any$break: do { - var tmp$_1; - for (tmp$_1 = 0; tmp$_1 !== chars.length; ++tmp$_1) { - var element = unboxChar(chars[tmp$_1]); - if (equals_1(unboxChar(toBoxedChar(element)), charAtIndex, ignoreCase)) { - any$result = true; - break any$break; - } - } - any$result = false; - } - while (false); - if (any$result) - return index; - } - return -1; - } - function lastIndexOfAny($receiver, chars, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = get_lastIndex_13($receiver); - if (ignoreCase === void 0) - ignoreCase = false; - if (!ignoreCase && chars.length === 1 && typeof $receiver === 'string') { - var char = single_7(chars); - return $receiver.lastIndexOf(String.fromCharCode(char), startIndex); - } - loop_label: for (var index = coerceAtMost_2(startIndex, get_lastIndex_13($receiver)); index >= 0; index--) { - var charAtIndex = $receiver.charCodeAt(index); - var any$result; - any$break: do { - var tmp$; - for (tmp$ = 0; tmp$ !== chars.length; ++tmp$) { - var element = unboxChar(chars[tmp$]); - if (equals_1(unboxChar(toBoxedChar(element)), charAtIndex, ignoreCase)) { - any$result = true; - break any$break; - } - } - any$result = false; - } - while (false); - if (any$result) - return index; - } - return -1; - } - function indexOf_15($receiver, other, startIndex, endIndex, ignoreCase, last) { - if (last === void 0) - last = false; - var tmp$, tmp$_0; - var indices = !last ? new IntRange(coerceAtLeast_2(startIndex, 0), coerceAtMost_2(endIndex, $receiver.length)) : downTo_4(coerceAtMost_2(startIndex, get_lastIndex_13($receiver)), coerceAtLeast_2(endIndex, 0)); - if (typeof $receiver === 'string' && typeof other === 'string') { - tmp$ = indices.iterator(); - while (tmp$.hasNext()) { - var index = tmp$.next(); - if (regionMatches(other, 0, $receiver, index, other.length, ignoreCase)) - return index; - } - } - else { - tmp$_0 = indices.iterator(); - while (tmp$_0.hasNext()) { - var index_0 = tmp$_0.next(); - if (regionMatchesImpl(other, 0, $receiver, index_0, other.length, ignoreCase)) - return index_0; - } - } - return -1; - } - function findAnyOf($receiver, strings, startIndex, ignoreCase, last) { - var tmp$, tmp$_0; - if (!ignoreCase && strings.size === 1) { - var string = single_17(strings); - var index = !last ? indexOf_17($receiver, string, startIndex) : lastIndexOf_16($receiver, string, startIndex); - return index < 0 ? null : to(index, string); - } - var indices = !last ? new IntRange(coerceAtLeast_2(startIndex, 0), $receiver.length) : downTo_4(coerceAtMost_2(startIndex, get_lastIndex_13($receiver)), 0); - if (typeof $receiver === 'string') { - tmp$ = indices.iterator(); - loop_label: while (tmp$.hasNext()) { - var index_0 = tmp$.next(); - var firstOrNull$result; - firstOrNull$break: do { - var tmp$_1; - tmp$_1 = strings.iterator(); - while (tmp$_1.hasNext()) { - var element = tmp$_1.next(); - if (regionMatches(element, 0, $receiver, index_0, element.length, ignoreCase)) { - firstOrNull$result = element; - break firstOrNull$break; - } - } - firstOrNull$result = null; - } - while (false); - var matchingString = firstOrNull$result; - if (matchingString != null) - return to(index_0, matchingString); - } - } - else { - tmp$_0 = indices.iterator(); - loop_label: while (tmp$_0.hasNext()) { - var index_1 = tmp$_0.next(); - var firstOrNull$result_0; - firstOrNull$break: do { - var tmp$_2; - tmp$_2 = strings.iterator(); - while (tmp$_2.hasNext()) { - var element_0 = tmp$_2.next(); - if (regionMatchesImpl(element_0, 0, $receiver, index_1, element_0.length, ignoreCase)) { - firstOrNull$result_0 = element_0; - break firstOrNull$break; - } - } - firstOrNull$result_0 = null; - } - while (false); - var matchingString_0 = firstOrNull$result_0; - if (matchingString_0 != null) - return to(index_1, matchingString_0); - } - } - return null; - } - function findAnyOf_0($receiver, strings, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - return findAnyOf($receiver, strings, startIndex, ignoreCase, false); - } - function findLastAnyOf($receiver, strings, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = get_lastIndex_13($receiver); - if (ignoreCase === void 0) - ignoreCase = false; - return findAnyOf($receiver, strings, startIndex, ignoreCase, true); - } - function indexOfAny_0($receiver, strings, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - var tmp$, tmp$_0; - return (tmp$_0 = (tmp$ = findAnyOf($receiver, strings, startIndex, ignoreCase, false)) != null ? tmp$.first : null) != null ? tmp$_0 : -1; - } - function lastIndexOfAny_0($receiver, strings, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = get_lastIndex_13($receiver); - if (ignoreCase === void 0) - ignoreCase = false; - var tmp$, tmp$_0; - return (tmp$_0 = (tmp$ = findAnyOf($receiver, strings, startIndex, ignoreCase, true)) != null ? tmp$.first : null) != null ? tmp$_0 : -1; - } - function indexOf_16($receiver, char, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - return ignoreCase || !(typeof $receiver === 'string') ? indexOfAny($receiver, Kotlin.charArrayOf(char), startIndex, ignoreCase) : $receiver.indexOf(String.fromCharCode(char), startIndex); - } - function indexOf_17($receiver, string, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - return ignoreCase || !(typeof $receiver === 'string') ? indexOf_15($receiver, string, startIndex, $receiver.length, ignoreCase) : $receiver.indexOf(string, startIndex); - } - function lastIndexOf_15($receiver, char, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = get_lastIndex_13($receiver); - if (ignoreCase === void 0) - ignoreCase = false; - return ignoreCase || !(typeof $receiver === 'string') ? lastIndexOfAny($receiver, Kotlin.charArrayOf(char), startIndex, ignoreCase) : $receiver.lastIndexOf(String.fromCharCode(char), startIndex); - } - function lastIndexOf_16($receiver, string, startIndex, ignoreCase) { - if (startIndex === void 0) - startIndex = get_lastIndex_13($receiver); - if (ignoreCase === void 0) - ignoreCase = false; - return ignoreCase || !(typeof $receiver === 'string') ? indexOf_15($receiver, string, startIndex, 0, ignoreCase, true) : $receiver.lastIndexOf(string, startIndex); - } - function contains_53($receiver, other, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return typeof other === 'string' ? indexOf_17($receiver, other, void 0, ignoreCase) >= 0 : indexOf_15($receiver, other, 0, $receiver.length, ignoreCase) >= 0; - } - function contains_54($receiver, char, ignoreCase) { - if (ignoreCase === void 0) - ignoreCase = false; - return indexOf_16($receiver, char, void 0, ignoreCase) >= 0; - } - var contains_55 = defineInlineFunction('kotlin.kotlin.text.contains_t3gu14$', function ($receiver, regex) { - return regex.containsMatchIn_6bul2c$($receiver); - }); - function DelimitedRangesSequence(input, startIndex, limit, getNextMatch) { - this.input_0 = input; - this.startIndex_0 = startIndex; - this.limit_0 = limit; - this.getNextMatch_0 = getNextMatch; - } - function DelimitedRangesSequence$iterator$ObjectLiteral(this$DelimitedRangesSequence) { - this.this$DelimitedRangesSequence = this$DelimitedRangesSequence; - this.nextState = -1; - this.currentStartIndex = coerceIn_2(this$DelimitedRangesSequence.startIndex_0, 0, this$DelimitedRangesSequence.input_0.length); - this.nextSearchIndex = this.currentStartIndex; - this.nextItem = null; - this.counter = 0; - } - DelimitedRangesSequence$iterator$ObjectLiteral.prototype.calcNext_0 = function () { - if (this.nextSearchIndex < 0) { - this.nextState = 0; - this.nextItem = null; - } - else { - if (this.this$DelimitedRangesSequence.limit_0 > 0 && (this.counter = this.counter + 1 | 0, this.counter) >= this.this$DelimitedRangesSequence.limit_0 || this.nextSearchIndex > this.this$DelimitedRangesSequence.input_0.length) { - this.nextItem = new IntRange(this.currentStartIndex, get_lastIndex_13(this.this$DelimitedRangesSequence.input_0)); - this.nextSearchIndex = -1; - } - else { - var match = this.this$DelimitedRangesSequence.getNextMatch_0(this.this$DelimitedRangesSequence.input_0, this.nextSearchIndex); - if (match == null) { - this.nextItem = new IntRange(this.currentStartIndex, get_lastIndex_13(this.this$DelimitedRangesSequence.input_0)); - this.nextSearchIndex = -1; - } - else { - var index = match.component1(), length = match.component2(); - this.nextItem = until_4(this.currentStartIndex, index); - this.currentStartIndex = index + length | 0; - this.nextSearchIndex = this.currentStartIndex + (length === 0 ? 1 : 0) | 0; - } - } - this.nextState = 1; - } - }; - DelimitedRangesSequence$iterator$ObjectLiteral.prototype.next = function () { - var tmp$; - if (this.nextState === -1) - this.calcNext_0(); - if (this.nextState === 0) - throw NoSuchElementException_init(); - var result = Kotlin.isType(tmp$ = this.nextItem, IntRange) ? tmp$ : throwCCE_0(); - this.nextItem = null; - this.nextState = -1; - return result; - }; - DelimitedRangesSequence$iterator$ObjectLiteral.prototype.hasNext = function () { - if (this.nextState === -1) - this.calcNext_0(); - return this.nextState === 1; - }; - DelimitedRangesSequence$iterator$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Iterator]}; - DelimitedRangesSequence.prototype.iterator = function () { - return new DelimitedRangesSequence$iterator$ObjectLiteral(this); - }; - DelimitedRangesSequence.$metadata$ = {kind: Kind_CLASS, simpleName: 'DelimitedRangesSequence', interfaces: [Sequence]}; - function rangesDelimitedBy$lambda(closure$delimiters, closure$ignoreCase) { - return function ($receiver, currentIndex) { - var it = indexOfAny($receiver, closure$delimiters, currentIndex, closure$ignoreCase); - return it < 0 ? null : to(it, 1); - }; - } - function rangesDelimitedBy($receiver, delimiters, startIndex, ignoreCase, limit) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - if (limit === void 0) - limit = 0; - if (!(limit >= 0)) { - var message = 'Limit must be non-negative, but was ' + limit + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - return new DelimitedRangesSequence($receiver, startIndex, limit, rangesDelimitedBy$lambda(delimiters, ignoreCase)); - } - function rangesDelimitedBy$lambda_0(closure$delimitersList, closure$ignoreCase) { - return function ($receiver, currentIndex) { - var tmp$; - return (tmp$ = findAnyOf($receiver, closure$delimitersList, currentIndex, closure$ignoreCase, false)) != null ? to(tmp$.first, tmp$.second.length) : null; - }; - } - function rangesDelimitedBy_0($receiver, delimiters, startIndex, ignoreCase, limit) { - if (startIndex === void 0) - startIndex = 0; - if (ignoreCase === void 0) - ignoreCase = false; - if (limit === void 0) - limit = 0; - if (!(limit >= 0)) { - var message = 'Limit must be non-negative, but was ' + limit + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var delimitersList = asList(delimiters); - return new DelimitedRangesSequence($receiver, startIndex, limit, rangesDelimitedBy$lambda_0(delimitersList, ignoreCase)); - } - function splitToSequence$lambda(this$splitToSequence) { - return function (it) { - return substring_3(this$splitToSequence, it); - }; - } - function splitToSequence($receiver, delimiters, ignoreCase, limit) { - if (ignoreCase === void 0) - ignoreCase = false; - if (limit === void 0) - limit = 0; - return map_10(rangesDelimitedBy_0($receiver, delimiters, void 0, ignoreCase, limit), splitToSequence$lambda($receiver)); - } - function split($receiver, delimiters, ignoreCase, limit) { - if (ignoreCase === void 0) - ignoreCase = false; - if (limit === void 0) - limit = 0; - if (delimiters.length === 1) { - var delimiter = delimiters[0]; - if (!(delimiter.length === 0)) { - return split_1($receiver, delimiter, ignoreCase, limit); - } - } - var $receiver_0 = asIterable_10(rangesDelimitedBy_0($receiver, delimiters, void 0, ignoreCase, limit)); - var destination = ArrayList_init_0(collectionSizeOrDefault($receiver_0, 10)); - var tmp$; - tmp$ = $receiver_0.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(substring_3($receiver, item)); - } - return destination; - } - function splitToSequence$lambda_0(this$splitToSequence) { - return function (it) { - return substring_3(this$splitToSequence, it); - }; - } - function splitToSequence_0($receiver, delimiters, ignoreCase, limit) { - if (ignoreCase === void 0) - ignoreCase = false; - if (limit === void 0) - limit = 0; - return map_10(rangesDelimitedBy($receiver, delimiters, void 0, ignoreCase, limit), splitToSequence$lambda_0($receiver)); - } - function split_0($receiver, delimiters, ignoreCase, limit) { - if (ignoreCase === void 0) - ignoreCase = false; - if (limit === void 0) - limit = 0; - if (delimiters.length === 1) { - return split_1($receiver, String.fromCharCode(delimiters[0]), ignoreCase, limit); - } - var $receiver_0 = asIterable_10(rangesDelimitedBy($receiver, delimiters, void 0, ignoreCase, limit)); - var destination = ArrayList_init_0(collectionSizeOrDefault($receiver_0, 10)); - var tmp$; - tmp$ = $receiver_0.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(substring_3($receiver, item)); - } - return destination; - } - function split_1($receiver, delimiter, ignoreCase, limit) { - if (!(limit >= 0)) { - var message = 'Limit must be non-negative, but was ' + limit + '.'; - throw IllegalArgumentException_init_0(message.toString()); - } - var currentOffset = 0; - var nextIndex = indexOf_17($receiver, delimiter, currentOffset, ignoreCase); - if (nextIndex === -1 || limit === 1) { - return listOf($receiver.toString()); - } - var isLimited = limit > 0; - var result = ArrayList_init_0(isLimited ? coerceAtMost_2(limit, 10) : 10); - do { - result.add_11rb$(Kotlin.subSequence($receiver, currentOffset, nextIndex).toString()); - currentOffset = nextIndex + delimiter.length | 0; - if (isLimited && result.size === (limit - 1 | 0)) - break; - nextIndex = indexOf_17($receiver, delimiter, currentOffset, ignoreCase); - } - while (nextIndex !== -1); - result.add_11rb$(Kotlin.subSequence($receiver, currentOffset, $receiver.length).toString()); - return result; - } - var split_2 = defineInlineFunction('kotlin.kotlin.text.split_yymnie$', function ($receiver, regex, limit) { - if (limit === void 0) - limit = 0; - return regex.split_905azu$($receiver, limit); - }); - function lineSequence($receiver) { - return splitToSequence($receiver, ['\r\n', '\n', '\r']); - } - function lines($receiver) { - return toList_10(lineSequence($receiver)); - } - function Typography() { - Typography_instance = this; - this.quote = toBoxedChar(34); - this.dollar = toBoxedChar(36); - this.amp = toBoxedChar(38); - this.less = toBoxedChar(60); - this.greater = toBoxedChar(62); - this.nbsp = toBoxedChar(160); - this.times = toBoxedChar(215); - this.cent = toBoxedChar(162); - this.pound = toBoxedChar(163); - this.section = toBoxedChar(167); - this.copyright = toBoxedChar(169); - this.leftGuillemete = toBoxedChar(171); - this.rightGuillemete = toBoxedChar(187); - this.registered = toBoxedChar(174); - this.degree = toBoxedChar(176); - this.plusMinus = toBoxedChar(177); - this.paragraph = toBoxedChar(182); - this.middleDot = toBoxedChar(183); - this.half = toBoxedChar(189); - this.ndash = toBoxedChar(8211); - this.mdash = toBoxedChar(8212); - this.leftSingleQuote = toBoxedChar(8216); - this.rightSingleQuote = toBoxedChar(8217); - this.lowSingleQuote = toBoxedChar(8218); - this.leftDoubleQuote = toBoxedChar(8220); - this.rightDoubleQuote = toBoxedChar(8221); - this.lowDoubleQuote = toBoxedChar(8222); - this.dagger = toBoxedChar(8224); - this.doubleDagger = toBoxedChar(8225); - this.bullet = toBoxedChar(8226); - this.ellipsis = toBoxedChar(8230); - this.prime = toBoxedChar(8242); - this.doublePrime = toBoxedChar(8243); - this.euro = toBoxedChar(8364); - this.tm = toBoxedChar(8482); - this.almostEqual = toBoxedChar(8776); - this.notEqual = toBoxedChar(8800); - this.lessOrEqual = toBoxedChar(8804); - this.greaterOrEqual = toBoxedChar(8805); - } - Typography.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Typography', interfaces: []}; - var Typography_instance = null; - function Typography_getInstance() { - if (Typography_instance === null) { - new Typography(); - } - return Typography_instance; - } - function MatchGroupCollection() { - } - MatchGroupCollection.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MatchGroupCollection', interfaces: [Collection]}; - function MatchNamedGroupCollection() { - } - MatchNamedGroupCollection.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MatchNamedGroupCollection', interfaces: [MatchGroupCollection]}; - function MatchResult() { - } - Object.defineProperty(MatchResult.prototype, 'destructured', {get: function () { - return new MatchResult$Destructured(this); - }}); - function MatchResult$Destructured(match) { - this.match = match; - } - MatchResult$Destructured.prototype.component1 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component1', function () { - return this.match.groupValues.get_za3lpa$(1); - }); - MatchResult$Destructured.prototype.component2 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component2', function () { - return this.match.groupValues.get_za3lpa$(2); - }); - MatchResult$Destructured.prototype.component3 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component3', function () { - return this.match.groupValues.get_za3lpa$(3); - }); - MatchResult$Destructured.prototype.component4 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component4', function () { - return this.match.groupValues.get_za3lpa$(4); - }); - MatchResult$Destructured.prototype.component5 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component5', function () { - return this.match.groupValues.get_za3lpa$(5); - }); - MatchResult$Destructured.prototype.component6 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component6', function () { - return this.match.groupValues.get_za3lpa$(6); - }); - MatchResult$Destructured.prototype.component7 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component7', function () { - return this.match.groupValues.get_za3lpa$(7); - }); - MatchResult$Destructured.prototype.component8 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component8', function () { - return this.match.groupValues.get_za3lpa$(8); - }); - MatchResult$Destructured.prototype.component9 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component9', function () { - return this.match.groupValues.get_za3lpa$(9); - }); - MatchResult$Destructured.prototype.component10 = defineInlineFunction('kotlin.kotlin.text.MatchResult.Destructured.component10', function () { - return this.match.groupValues.get_za3lpa$(10); - }); - MatchResult$Destructured.prototype.toList = function () { - return this.match.groupValues.subList_vux9f0$(1, this.match.groupValues.size); - }; - MatchResult$Destructured.$metadata$ = {kind: Kind_CLASS, simpleName: 'Destructured', interfaces: []}; - MatchResult.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'MatchResult', interfaces: []}; - var toRegex = defineInlineFunction('kotlin.kotlin.text.toRegex_pdl1vz$', wrapFunction(function () { - var Regex_init = _.kotlin.text.Regex_init_61zpoe$; - return function ($receiver) { - return Regex_init($receiver); - }; - })); - var toRegex_0 = defineInlineFunction('kotlin.kotlin.text.toRegex_2jdgi1$', wrapFunction(function () { - var Regex_init = _.kotlin.text.Regex_init_sb3q2$; - return function ($receiver, option) { - return Regex_init($receiver, option); - }; - })); - var toRegex_1 = defineInlineFunction('kotlin.kotlin.text.toRegex_8ioxci$', wrapFunction(function () { - var Regex_init = _.kotlin.text.Regex; - return function ($receiver, options) { - return new Regex_init($receiver, options); - }; - })); - var hashCode_0 = defineInlineFunction('kotlin.kotlin.hashCode_mzud1t$', wrapFunction(function () { - var hashCode = Kotlin.hashCode; - return function ($receiver) { - var tmp$; - return (tmp$ = $receiver != null ? hashCode($receiver) : null) != null ? tmp$ : 0; - }; - })); - function KotlinVersion(major, minor, patch) { - KotlinVersion$Companion_getInstance(); - this.major = major; - this.minor = minor; - this.patch = patch; - this.version_0 = this.versionOf_0(this.major, this.minor, this.patch); - } - KotlinVersion.prototype.versionOf_0 = function (major, minor, patch) { - if (!(0 <= major && major <= 255 && (0 <= minor && minor <= 255) && (0 <= patch && patch <= 255))) { - var message = 'Version components are out of range: ' + major + '.' + minor + '.' + patch; - throw IllegalArgumentException_init_0(message.toString()); - } - return (major << 16) + (minor << 8) + patch | 0; - }; - KotlinVersion.prototype.toString = function () { - return this.major.toString() + '.' + this.minor + '.' + this.patch; - }; - KotlinVersion.prototype.equals = function (other) { - var tmp$, tmp$_0; - if (this === other) - return true; - tmp$_0 = Kotlin.isType(tmp$ = other, KotlinVersion) ? tmp$ : null; - if (tmp$_0 == null) { - return false; - } - var otherVersion = tmp$_0; - return this.version_0 === otherVersion.version_0; - }; - KotlinVersion.prototype.hashCode = function () { - return this.version_0; - }; - KotlinVersion.prototype.compareTo_11rb$ = function (other) { - return this.version_0 - other.version_0 | 0; - }; - KotlinVersion.prototype.isAtLeast_vux9f0$ = function (major, minor) { - return this.major > major || (this.major === major && this.minor >= minor); - }; - KotlinVersion.prototype.isAtLeast_qt1dr2$ = function (major, minor, patch) { - return this.major > major || (this.major === major && (this.minor > minor || (this.minor === minor && this.patch >= patch))); - }; - function KotlinVersion$Companion() { - KotlinVersion$Companion_instance = this; - this.MAX_COMPONENT_VALUE = 255; - this.CURRENT = new KotlinVersion(1, 3, 40); - } - KotlinVersion$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var KotlinVersion$Companion_instance = null; - function KotlinVersion$Companion_getInstance() { - if (KotlinVersion$Companion_instance === null) { - new KotlinVersion$Companion(); - } - return KotlinVersion$Companion_instance; - } - KotlinVersion.$metadata$ = {kind: Kind_CLASS, simpleName: 'KotlinVersion', interfaces: [Comparable]}; - function KotlinVersion_init(major, minor, $this) { - $this = $this || Object.create(KotlinVersion.prototype); - KotlinVersion.call($this, major, minor, 0); - return $this; - } - var get_isInitialized = defineInlineFunction('kotlin.kotlin.get_isInitialized_texjl9$', wrapFunction(function () { - var NotImplementedError_init = _.kotlin.NotImplementedError; - return function ($receiver) { - throw new NotImplementedError_init('Implementation is intrinsic'); - }; - })); - function Lazy() { - } - Lazy.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Lazy', interfaces: []}; - function lazyOf(value) { - return new InitializedLazyImpl(value); - } - var getValue_3 = defineInlineFunction('kotlin.kotlin.getValue_thokl7$', function ($receiver, thisRef, property) { - return $receiver.value; - }); - function LazyThreadSafetyMode(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function LazyThreadSafetyMode_initFields() { - LazyThreadSafetyMode_initFields = function () { - }; - LazyThreadSafetyMode$SYNCHRONIZED_instance = new LazyThreadSafetyMode('SYNCHRONIZED', 0); - LazyThreadSafetyMode$PUBLICATION_instance = new LazyThreadSafetyMode('PUBLICATION', 1); - LazyThreadSafetyMode$NONE_instance = new LazyThreadSafetyMode('NONE', 2); - } - var LazyThreadSafetyMode$SYNCHRONIZED_instance; - function LazyThreadSafetyMode$SYNCHRONIZED_getInstance() { - LazyThreadSafetyMode_initFields(); - return LazyThreadSafetyMode$SYNCHRONIZED_instance; - } - var LazyThreadSafetyMode$PUBLICATION_instance; - function LazyThreadSafetyMode$PUBLICATION_getInstance() { - LazyThreadSafetyMode_initFields(); - return LazyThreadSafetyMode$PUBLICATION_instance; - } - var LazyThreadSafetyMode$NONE_instance; - function LazyThreadSafetyMode$NONE_getInstance() { - LazyThreadSafetyMode_initFields(); - return LazyThreadSafetyMode$NONE_instance; - } - LazyThreadSafetyMode.$metadata$ = {kind: Kind_CLASS, simpleName: 'LazyThreadSafetyMode', interfaces: [Enum]}; - function LazyThreadSafetyMode$values() { - return [LazyThreadSafetyMode$SYNCHRONIZED_getInstance(), LazyThreadSafetyMode$PUBLICATION_getInstance(), LazyThreadSafetyMode$NONE_getInstance()]; - } - LazyThreadSafetyMode.values = LazyThreadSafetyMode$values; - function LazyThreadSafetyMode$valueOf(name) { - switch (name) { - case 'SYNCHRONIZED': - return LazyThreadSafetyMode$SYNCHRONIZED_getInstance(); - case 'PUBLICATION': - return LazyThreadSafetyMode$PUBLICATION_getInstance(); - case 'NONE': - return LazyThreadSafetyMode$NONE_getInstance(); - default:throwISE('No enum constant kotlin.LazyThreadSafetyMode.' + name); - } - } - LazyThreadSafetyMode.valueOf_61zpoe$ = LazyThreadSafetyMode$valueOf; - function UNINITIALIZED_VALUE() { - UNINITIALIZED_VALUE_instance = this; - } - UNINITIALIZED_VALUE.$metadata$ = {kind: Kind_OBJECT, simpleName: 'UNINITIALIZED_VALUE', interfaces: []}; - var UNINITIALIZED_VALUE_instance = null; - function UNINITIALIZED_VALUE_getInstance() { - if (UNINITIALIZED_VALUE_instance === null) { - new UNINITIALIZED_VALUE(); - } - return UNINITIALIZED_VALUE_instance; - } - function UnsafeLazyImpl(initializer) { - this.initializer_0 = initializer; - this._value_0 = UNINITIALIZED_VALUE_getInstance(); - } - Object.defineProperty(UnsafeLazyImpl.prototype, 'value', {get: function () { - var tmp$; - if (this._value_0 === UNINITIALIZED_VALUE_getInstance()) { - this._value_0 = ensureNotNull(this.initializer_0)(); - this.initializer_0 = null; - } - return (tmp$ = this._value_0) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(); - }}); - UnsafeLazyImpl.prototype.isInitialized = function () { - return this._value_0 !== UNINITIALIZED_VALUE_getInstance(); - }; - UnsafeLazyImpl.prototype.toString = function () { - return this.isInitialized() ? toString(this.value) : 'Lazy value not initialized yet.'; - }; - UnsafeLazyImpl.prototype.writeReplace_0 = function () { - return new InitializedLazyImpl(this.value); - }; - UnsafeLazyImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'UnsafeLazyImpl', interfaces: [Serializable, Lazy]}; - function InitializedLazyImpl(value) { - this.value_7taq70$_0 = value; - } - Object.defineProperty(InitializedLazyImpl.prototype, 'value', {get: function () { - return this.value_7taq70$_0; - }}); - InitializedLazyImpl.prototype.isInitialized = function () { - return true; - }; - InitializedLazyImpl.prototype.toString = function () { - return toString(this.value); - }; - InitializedLazyImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'InitializedLazyImpl', interfaces: [Serializable, Lazy]}; - var require_0 = defineInlineFunction('kotlin.kotlin.require_6taknv$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - return function (value) { - if (!value) { - var message = 'Failed requirement.'; - throw IllegalArgumentException_init(message.toString()); - } - }; - })); - var require_1 = defineInlineFunction('kotlin.kotlin.require_4ina18$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - return function (value, lazyMessage) { - if (!value) { - var message = lazyMessage(); - throw IllegalArgumentException_init(message.toString()); - } - }; - })); - var requireNotNull = defineInlineFunction('kotlin.kotlin.requireNotNull_issdgt$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - return function (value) { - var requireNotNull$result; - if (value == null) { - var message = 'Required value was null.'; - throw IllegalArgumentException_init(message.toString()); - } - else { - requireNotNull$result = value; - } - return requireNotNull$result; - }; - })); - var requireNotNull_0 = defineInlineFunction('kotlin.kotlin.requireNotNull_p3yddy$', wrapFunction(function () { - var IllegalArgumentException_init = _.kotlin.IllegalArgumentException_init_pdl1vj$; - return function (value, lazyMessage) { - if (value == null) { - var message = lazyMessage(); - throw IllegalArgumentException_init(message.toString()); - } - else { - return value; - } - }; - })); - var check = defineInlineFunction('kotlin.kotlin.check_6taknv$', wrapFunction(function () { - var IllegalStateException_init = _.kotlin.IllegalStateException_init_pdl1vj$; - return function (value) { - if (!value) { - var message = 'Check failed.'; - throw IllegalStateException_init(message.toString()); - } - }; - })); - var check_0 = defineInlineFunction('kotlin.kotlin.check_4ina18$', wrapFunction(function () { - var IllegalStateException_init = _.kotlin.IllegalStateException_init_pdl1vj$; - return function (value, lazyMessage) { - if (!value) { - var message = lazyMessage(); - throw IllegalStateException_init(message.toString()); - } - }; - })); - var checkNotNull = defineInlineFunction('kotlin.kotlin.checkNotNull_issdgt$', wrapFunction(function () { - var IllegalStateException_init = _.kotlin.IllegalStateException_init_pdl1vj$; - return function (value) { - var checkNotNull$result; - if (value == null) { - var message = 'Required value was null.'; - throw IllegalStateException_init(message.toString()); - } - else { - checkNotNull$result = value; - } - return checkNotNull$result; - }; - })); - var checkNotNull_0 = defineInlineFunction('kotlin.kotlin.checkNotNull_p3yddy$', wrapFunction(function () { - var IllegalStateException_init = _.kotlin.IllegalStateException_init_pdl1vj$; - return function (value, lazyMessage) { - if (value == null) { - var message = lazyMessage(); - throw IllegalStateException_init(message.toString()); - } - else { - return value; - } - }; - })); - var error = defineInlineFunction('kotlin.kotlin.error_za3rmp$', wrapFunction(function () { - var IllegalStateException_init = _.kotlin.IllegalStateException_init_pdl1vj$; - return function (message) { - throw IllegalStateException_init(message.toString()); - }; - })); - function Result(value) { - Result$Companion_getInstance(); - this.value = value; - } - Object.defineProperty(Result.prototype, 'isSuccess', {get: function () { - return !Kotlin.isType(this.value, Result$Failure); - }}); - Object.defineProperty(Result.prototype, 'isFailure', {get: function () { - return Kotlin.isType(this.value, Result$Failure); - }}); - Result.prototype.getOrNull = defineInlineFunction('kotlin.kotlin.Result.getOrNull', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function () { - var tmp$; - if (this.isFailure) - return null; - else - return (tmp$ = this.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - }; - })); - Result.prototype.exceptionOrNull = function () { - if (Kotlin.isType(this.value, Result$Failure)) - return this.value.exception; - else - return null; - }; - Result.prototype.toString = function () { - if (Kotlin.isType(this.value, Result$Failure)) - return this.value.toString(); - else - return 'Success(' + toString(this.value) + ')'; - }; - function Result$Companion() { - Result$Companion_instance = this; - } - Result$Companion.prototype.success_mh5how$ = defineInlineFunction('kotlin.kotlin.Result.Companion.success_mh5how$', wrapFunction(function () { - var Result_init = _.kotlin.Result; - return function (value) { - return new Result_init(value); - }; - })); - Result$Companion.prototype.failure_lsqlk3$ = defineInlineFunction('kotlin.kotlin.Result.Companion.failure_lsqlk3$', wrapFunction(function () { - var createFailure = _.kotlin.createFailure_tcv7n7$; - var Result_init = _.kotlin.Result; - return function (exception) { - return new Result_init(createFailure(exception)); - }; - })); - Result$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var Result$Companion_instance = null; - function Result$Companion_getInstance() { - if (Result$Companion_instance === null) { - new Result$Companion(); - } - return Result$Companion_instance; - } - function Result$Failure(exception) { - this.exception = exception; - } - Result$Failure.prototype.equals = function (other) { - return Kotlin.isType(other, Result$Failure) && equals(this.exception, other.exception); - }; - Result$Failure.prototype.hashCode = function () { - return hashCode(this.exception); - }; - Result$Failure.prototype.toString = function () { - return 'Failure(' + this.exception + ')'; - }; - Result$Failure.$metadata$ = {kind: Kind_CLASS, simpleName: 'Failure', interfaces: [Serializable]}; - Result.$metadata$ = {kind: Kind_CLASS, simpleName: 'Result', interfaces: [Serializable]}; - Result.prototype.unbox = function () { - return this.value; - }; - Result.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.value) | 0; - return result; - }; - Result.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.value, other.value)))); - }; - function createFailure(exception) { - return new Result$Failure(exception); - } - function throwOnFailure($receiver) { - if (Kotlin.isType($receiver.value, Result$Failure)) - throw $receiver.value.exception; - } - var runCatching = defineInlineFunction('kotlin.kotlin.runCatching_klfg04$', wrapFunction(function () { - var Result = _.kotlin.Result; - var Throwable = Error; - var createFailure = _.kotlin.createFailure_tcv7n7$; - return function (block) { - var tmp$; - try { - tmp$ = new Result(block()); - } - catch (e) { - if (Kotlin.isType(e, Throwable)) { - tmp$ = new Result(createFailure(e)); - } - else - throw e; - } - return tmp$; - }; - })); - var runCatching_0 = defineInlineFunction('kotlin.kotlin.runCatching_96jf0l$', wrapFunction(function () { - var Result = _.kotlin.Result; - var Throwable = Error; - var createFailure = _.kotlin.createFailure_tcv7n7$; - return function ($receiver, block) { - var tmp$; - try { - tmp$ = new Result(block($receiver)); - } - catch (e) { - if (Kotlin.isType(e, Throwable)) { - tmp$ = new Result(createFailure(e)); - } - else - throw e; - } - return tmp$; - }; - })); - var getOrThrow = defineInlineFunction('kotlin.kotlin.getOrThrow_rnsj6g$', wrapFunction(function () { - var throwOnFailure = _.kotlin.throwOnFailure_iacion$; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver) { - var tmp$; - throwOnFailure($receiver); - return (tmp$ = $receiver.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - }; - })); - var getOrElse_15 = defineInlineFunction('kotlin.kotlin.getOrElse_h5t2n1$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, onFailure) { - var tmp$, tmp$_0; - var exception = $receiver.exceptionOrNull(); - if (exception == null) - tmp$_0 = (tmp$ = $receiver.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - else - tmp$_0 = onFailure(exception); - return tmp$_0; - }; - })); - var getOrDefault = defineInlineFunction('kotlin.kotlin.getOrDefault_98but8$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, defaultValue) { - var tmp$; - if ($receiver.isFailure) - return defaultValue; - return (tmp$ = $receiver.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - }; - })); - var fold_17 = defineInlineFunction('kotlin.kotlin.fold_whgilm$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, onSuccess, onFailure) { - var tmp$, tmp$_0; - var exception = $receiver.exceptionOrNull(); - if (exception == null) { - tmp$_0 = onSuccess((tmp$ = $receiver.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE()); - } - else - tmp$_0 = onFailure(exception); - return tmp$_0; - }; - })); - var map_16 = defineInlineFunction('kotlin.kotlin.map_dgb8k9$', wrapFunction(function () { - var Result = _.kotlin.Result; - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, transform) { - var tmp$; - var tmp$_0; - if ($receiver.isSuccess) { - Result.Companion; - tmp$_0 = new Result(transform((tmp$ = $receiver.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE())); - } - else - tmp$_0 = new Result($receiver.value); - return tmp$_0; - }; - })); - var mapCatching = defineInlineFunction('kotlin.kotlin.mapCatching_dgb8k9$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - var Result_init = _.kotlin.Result; - var Throwable = Error; - var createFailure = _.kotlin.createFailure_tcv7n7$; - return function ($receiver, transform) { - var tmp$; - if ($receiver.isSuccess) { - var tmp$_0; - try { - var tmp$_1; - tmp$_0 = new Result_init(transform((tmp$_1 = $receiver.value) == null || Kotlin.isType(tmp$_1, Any) ? tmp$_1 : throwCCE())); - } - catch (e) { - if (Kotlin.isType(e, Throwable)) { - tmp$_0 = new Result_init(createFailure(e)); - } - else - throw e; - } - tmp$ = tmp$_0; - } - else - tmp$ = new Result_init($receiver.value); - return tmp$; - }; - })); - var recover = defineInlineFunction('kotlin.kotlin.recover_h5t2n1$', wrapFunction(function () { - var Result = _.kotlin.Result; - return function ($receiver, transform) { - var tmp$; - var exception = $receiver.exceptionOrNull(); - if (exception == null) - tmp$ = $receiver; - else { - tmp$ = new Result(transform(exception)); - } - return tmp$; - }; - })); - var recoverCatching = defineInlineFunction('kotlin.kotlin.recoverCatching_h5t2n1$', wrapFunction(function () { - var Result = _.kotlin.Result; - var Throwable = Error; - var createFailure = _.kotlin.createFailure_tcv7n7$; - return function ($receiver, transform) { - var tmp$; - var value = $receiver.value; - var exception = $receiver.exceptionOrNull(); - if (exception == null) - tmp$ = $receiver; - else { - var tmp$_0; - try { - tmp$_0 = new Result(transform(exception)); - } - catch (e) { - if (Kotlin.isType(e, Throwable)) { - tmp$_0 = new Result(createFailure(e)); - } - else - throw e; - } - tmp$ = tmp$_0; - } - return tmp$; - }; - })); - var onFailure = defineInlineFunction('kotlin.kotlin.onFailure_peshbw$', function ($receiver, action) { - var tmp$; - if ((tmp$ = $receiver.exceptionOrNull()) != null) { - action(tmp$); - } - return $receiver; - }); - var onSuccess = defineInlineFunction('kotlin.kotlin.onSuccess_3t3bof$', wrapFunction(function () { - var Any = Object; - var throwCCE = Kotlin.throwCCE; - return function ($receiver, action) { - var tmp$; - if ($receiver.isSuccess) { - action((tmp$ = $receiver.value) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE()); - } - return $receiver; - }; - })); - function NotImplementedError(message) { - if (message === void 0) - message = 'An operation is not implemented.'; - Error_init_0(message, this); - this.name = 'NotImplementedError'; - } - NotImplementedError.$metadata$ = {kind: Kind_CLASS, simpleName: 'NotImplementedError', interfaces: [Error_0]}; - var TODO = defineInlineFunction('kotlin.kotlin.TODO', wrapFunction(function () { - var NotImplementedError_init = _.kotlin.NotImplementedError; - return function () { - throw new NotImplementedError_init(); - }; - })); - var TODO_0 = defineInlineFunction('kotlin.kotlin.TODO_61zpoe$', wrapFunction(function () { - var NotImplementedError_init = _.kotlin.NotImplementedError; - return function (reason) { - throw new NotImplementedError_init('An operation is not implemented: ' + reason); - }; - })); - var run = defineInlineFunction('kotlin.kotlin.run_klfg04$', function (block) { - return block(); - }); - var run_0 = defineInlineFunction('kotlin.kotlin.run_96jf0l$', function ($receiver, block) { - return block($receiver); - }); - var with_0 = defineInlineFunction('kotlin.kotlin.with_ywwgyq$', function (receiver, block) { - return block(receiver); - }); - var apply = defineInlineFunction('kotlin.kotlin.apply_9bxh2u$', function ($receiver, block) { - block($receiver); - return $receiver; - }); - var also = defineInlineFunction('kotlin.kotlin.also_9bxh2u$', function ($receiver, block) { - block($receiver); - return $receiver; - }); - var let_0 = defineInlineFunction('kotlin.kotlin.let_96jf0l$', function ($receiver, block) { - return block($receiver); - }); - var takeIf = defineInlineFunction('kotlin.kotlin.takeIf_ujn5f2$', function ($receiver, predicate) { - return predicate($receiver) ? $receiver : null; - }); - var takeUnless = defineInlineFunction('kotlin.kotlin.takeUnless_ujn5f2$', function ($receiver, predicate) { - return !predicate($receiver) ? $receiver : null; - }); - var repeat_0 = defineInlineFunction('kotlin.kotlin.repeat_8b5ljp$', function (times, action) { - for (var index = 0; index < times; index++) { - action(index); - } - }); - var suspend = defineInlineFunction('kotlin.kotlin.suspend_lnyleu$', function (block) { - return block; - }); - function Pair(first, second) { - this.first = first; - this.second = second; - } - Pair.prototype.toString = function () { - return '(' + this.first + ', ' + this.second + ')'; - }; - Pair.$metadata$ = {kind: Kind_CLASS, simpleName: 'Pair', interfaces: [Serializable]}; - Pair.prototype.component1 = function () { - return this.first; - }; - Pair.prototype.component2 = function () { - return this.second; - }; - Pair.prototype.copy_xwzc9p$ = function (first, second) { - return new Pair(first === void 0 ? this.first : first, second === void 0 ? this.second : second); - }; - Pair.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.first) | 0; - result = result * 31 + Kotlin.hashCode(this.second) | 0; - return result; - }; - Pair.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && (Kotlin.equals(this.first, other.first) && Kotlin.equals(this.second, other.second))))); - }; - function to($receiver, that) { - return new Pair($receiver, that); - } - function toList_12($receiver) { - return listOf_0([$receiver.first, $receiver.second]); - } - function Triple(first, second, third) { - this.first = first; - this.second = second; - this.third = third; - } - Triple.prototype.toString = function () { - return '(' + this.first + ', ' + this.second + ', ' + this.third + ')'; - }; - Triple.$metadata$ = {kind: Kind_CLASS, simpleName: 'Triple', interfaces: [Serializable]}; - Triple.prototype.component1 = function () { - return this.first; - }; - Triple.prototype.component2 = function () { - return this.second; - }; - Triple.prototype.component3 = function () { - return this.third; - }; - Triple.prototype.copy_1llc0w$ = function (first, second, third) { - return new Triple(first === void 0 ? this.first : first, second === void 0 ? this.second : second, third === void 0 ? this.third : third); - }; - Triple.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.first) | 0; - result = result * 31 + Kotlin.hashCode(this.second) | 0; - result = result * 31 + Kotlin.hashCode(this.third) | 0; - return result; - }; - Triple.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && (Kotlin.equals(this.first, other.first) && Kotlin.equals(this.second, other.second) && Kotlin.equals(this.third, other.third))))); - }; - function toList_13($receiver) { - return listOf_0([$receiver.first, $receiver.second, $receiver.third]); - } - function UByte(data) { - UByte$Companion_getInstance(); - this.data = data; - } - function UByte$Companion() { - UByte$Companion_instance = this; - this.MIN_VALUE = new UByte(0); - this.MAX_VALUE = new UByte(-1 | 0); - this.SIZE_BYTES = 1; - this.SIZE_BITS = 8; - } - UByte$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var UByte$Companion_instance = null; - function UByte$Companion_getInstance() { - if (UByte$Companion_instance === null) { - new UByte$Companion(); - } - return UByte$Companion_instance; - } - UByte.prototype.compareTo_11rb$ = defineInlineFunction('kotlin.kotlin.UByte.compareTo_11rb$', function (other) { - return Kotlin.primitiveCompareTo(this.data & 255, other.data & 255); - }); - UByte.prototype.compareTo_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UByte.compareTo_6hrhkk$', function (other) { - return Kotlin.primitiveCompareTo(this.data & 255, other.data & 65535); - }); - UByte.prototype.compareTo_s87ys9$ = defineInlineFunction('kotlin.kotlin.UByte.compareTo_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintCompare = _.kotlin.uintCompare_vux9f0$; - return function (other) { - return uintCompare((new UInt_init(this.data & 255)).data, other.data); - }; - })); - UByte.prototype.compareTo_mpgczg$ = defineInlineFunction('kotlin.kotlin.UByte.compareTo_mpgczg$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare((new ULong_init(Kotlin.Long.fromInt(this.data).and(L255))).data, other.data); - }; - })); - UByte.prototype.plus_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.plus_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 255)).data + (new UInt_init(other.data & 255)).data | 0); - }; - })); - UByte.prototype.plus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UByte.plus_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 255)).data + (new UInt_init(other.data & 65535)).data | 0); - }; - })); - UByte.prototype.plus_s87ys9$ = defineInlineFunction('kotlin.kotlin.UByte.plus_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 255)).data + other.data | 0); - }; - })); - UByte.prototype.plus_mpgczg$ = defineInlineFunction('kotlin.kotlin.UByte.plus_mpgczg$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L255))).data.add(other.data)); - }; - })); - UByte.prototype.minus_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.minus_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 255)).data - (new UInt_init(other.data & 255)).data | 0); - }; - })); - UByte.prototype.minus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UByte.minus_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 255)).data - (new UInt_init(other.data & 65535)).data | 0); - }; - })); - UByte.prototype.minus_s87ys9$ = defineInlineFunction('kotlin.kotlin.UByte.minus_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 255)).data - other.data | 0); - }; - })); - UByte.prototype.minus_mpgczg$ = defineInlineFunction('kotlin.kotlin.UByte.minus_mpgczg$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L255))).data.subtract(other.data)); - }; - })); - UByte.prototype.times_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.times_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul((new UInt_init(this.data & 255)).data, (new UInt_init(other.data & 255)).data)); - }; - })); - UByte.prototype.times_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UByte.times_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul((new UInt_init(this.data & 255)).data, (new UInt_init(other.data & 65535)).data)); - }; - })); - UByte.prototype.times_s87ys9$ = defineInlineFunction('kotlin.kotlin.UByte.times_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul((new UInt_init(this.data & 255)).data, other.data)); - }; - })); - UByte.prototype.times_mpgczg$ = defineInlineFunction('kotlin.kotlin.UByte.times_mpgczg$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L255))).data.multiply(other.data)); - }; - })); - UByte.prototype.div_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.div_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(new UInt_init(this.data & 255), new UInt_init(other.data & 255)); - }; - })); - UByte.prototype.div_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UByte.div_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(new UInt_init(this.data & 255), new UInt_init(other.data & 65535)); - }; - })); - UByte.prototype.div_s87ys9$ = defineInlineFunction('kotlin.kotlin.UByte.div_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(new UInt_init(this.data & 255), other); - }; - })); - UByte.prototype.div_mpgczg$ = defineInlineFunction('kotlin.kotlin.UByte.div_mpgczg$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(new ULong_init(Kotlin.Long.fromInt(this.data).and(L255)), other); - }; - })); - UByte.prototype.rem_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.rem_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(new UInt_init(this.data & 255), new UInt_init(other.data & 255)); - }; - })); - UByte.prototype.rem_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UByte.rem_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(new UInt_init(this.data & 255), new UInt_init(other.data & 65535)); - }; - })); - UByte.prototype.rem_s87ys9$ = defineInlineFunction('kotlin.kotlin.UByte.rem_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(new UInt_init(this.data & 255), other); - }; - })); - UByte.prototype.rem_mpgczg$ = defineInlineFunction('kotlin.kotlin.UByte.rem_mpgczg$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(new ULong_init(Kotlin.Long.fromInt(this.data).and(L255)), other); - }; - })); - UByte.prototype.inc = defineInlineFunction('kotlin.kotlin.UByte.inc', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function () { - return new UByte_init(toByte(this.data + 1)); - }; - })); - UByte.prototype.dec = defineInlineFunction('kotlin.kotlin.UByte.dec', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function () { - return new UByte_init(toByte(this.data - 1)); - }; - })); - UByte.prototype.rangeTo_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.rangeTo_mpmjao$', wrapFunction(function () { - var UIntRange_init = _.kotlin.ranges.UIntRange; - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UIntRange_init(new UInt_init(this.data & 255), new UInt_init(other.data & 255)); - }; - })); - UByte.prototype.and_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.and_mpmjao$', wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - var toByte = Kotlin.toByte; - return function (other) { - return new UByte_init(toByte(this.data & other.data)); - }; - })); - UByte.prototype.or_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.or_mpmjao$', wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - var toByte = Kotlin.toByte; - return function (other) { - return new UByte_init(toByte(this.data | other.data)); - }; - })); - UByte.prototype.xor_mpmjao$ = defineInlineFunction('kotlin.kotlin.UByte.xor_mpmjao$', wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - var toByte = Kotlin.toByte; - return function (other) { - return new UByte_init(toByte(this.data ^ other.data)); - }; - })); - UByte.prototype.inv = defineInlineFunction('kotlin.kotlin.UByte.inv', wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - var toByte = Kotlin.toByte; - return function () { - return new UByte_init(toByte(~this.data)); - }; - })); - UByte.prototype.toByte = defineInlineFunction('kotlin.kotlin.UByte.toByte', function () { - return this.data; - }); - UByte.prototype.toShort = defineInlineFunction('kotlin.kotlin.UByte.toShort', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function () { - return toShort(this.data & 255); - }; - })); - UByte.prototype.toInt = defineInlineFunction('kotlin.kotlin.UByte.toInt', function () { - return this.data & 255; - }); - UByte.prototype.toLong = defineInlineFunction('kotlin.kotlin.UByte.toLong', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - return function () { - return Kotlin.Long.fromInt(this.data).and(L255); - }; - })); - UByte.prototype.toUByte = defineInlineFunction('kotlin.kotlin.UByte.toUByte', function () { - return this; - }); - UByte.prototype.toUShort = defineInlineFunction('kotlin.kotlin.UByte.toUShort', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - var toShort = Kotlin.toShort; - return function () { - return new UShort_init(toShort(this.data & 255)); - }; - })); - UByte.prototype.toUInt = defineInlineFunction('kotlin.kotlin.UByte.toUInt', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function () { - return new UInt_init(this.data & 255); - }; - })); - UByte.prototype.toULong = defineInlineFunction('kotlin.kotlin.UByte.toULong', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function () { - return new ULong_init(Kotlin.Long.fromInt(this.data).and(L255)); - }; - })); - UByte.prototype.toFloat = defineInlineFunction('kotlin.kotlin.UByte.toFloat', function () { - return this.data & 255; - }); - UByte.prototype.toDouble = defineInlineFunction('kotlin.kotlin.UByte.toDouble', function () { - return this.data & 255; - }); - UByte.prototype.toString = function () { - return (this.data & 255).toString(); - }; - UByte.$metadata$ = {kind: Kind_CLASS, simpleName: 'UByte', interfaces: [Comparable]}; - UByte.prototype.unbox = function () { - return this.data; - }; - UByte.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.data) | 0; - return result; - }; - UByte.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.data, other.data)))); - }; - var toUByte = defineInlineFunction('kotlin.kotlin.toUByte_mz3mee$', wrapFunction(function () { - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init($receiver); - }; - })); - var toUByte_0 = defineInlineFunction('kotlin.kotlin.toUByte_5vcgdc$', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init(toByte($receiver)); - }; - })); - var toUByte_1 = defineInlineFunction('kotlin.kotlin.toUByte_s8ev3n$', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init(toByte($receiver)); - }; - })); - var toUByte_2 = defineInlineFunction('kotlin.kotlin.toUByte_mts6qi$', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function ($receiver) { - return new UByte_init(toByte($receiver.toInt())); - }; - })); - function UByteArray(storage) { - this.storage = storage; - } - UByteArray.prototype.get_za3lpa$ = function (index) { - return new UByte(this.storage[index]); - }; - UByteArray.prototype.set_2c6cbe$ = function (index, value) { - this.storage[index] = value.data; - }; - Object.defineProperty(UByteArray.prototype, 'size', {get: function () { - return this.storage.length; - }}); - UByteArray.prototype.iterator = function () { - return new UByteArray$Iterator(this.storage); - }; - function UByteArray$Iterator(array) { - UByteIterator.call(this); - this.array_0 = array; - this.index_0 = 0; - } - UByteArray$Iterator.prototype.hasNext = function () { - return this.index_0 < this.array_0.length; - }; - UByteArray$Iterator.prototype.nextUByte = function () { - var tmp$; - if (this.index_0 < this.array_0.length) { - return new UByte(this.array_0[tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$]); - } - else - throw new NoSuchElementException(this.index_0.toString()); - }; - UByteArray$Iterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'Iterator', interfaces: [UByteIterator]}; - UByteArray.prototype.contains_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UByte)) - return false; - return contains_0(this.storage, element.data); - }; - UByteArray.prototype.containsAll_brywnq$ = function (elements) { - var tmp$; - var $receiver = Kotlin.isType(tmp$ = elements, Collection) ? tmp$ : throwCCE_0(); - var all$result; - all$break: do { - var tmp$_0; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - all$result = true; - break all$break; - } - tmp$_0 = $receiver.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - var tmp$_1 = Kotlin.isType(element, UByte); - if (tmp$_1) { - tmp$_1 = contains_0(this.storage, element.data); - } - if (!tmp$_1) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - UByteArray.prototype.isEmpty = function () { - return this.storage.length === 0; - }; - UByteArray.$metadata$ = {kind: Kind_CLASS, simpleName: 'UByteArray', interfaces: [Collection]}; - function UByteArray_init(size, $this) { - $this = $this || Object.create(UByteArray.prototype); - UByteArray.call($this, new Int8Array(size)); - return $this; - } - UByteArray.prototype.unbox = function () { - return this.storage; - }; - UByteArray.prototype.toString = function () { - return 'UByteArray(storage=' + Kotlin.toString(this.storage) + ')'; - }; - UByteArray.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.storage) | 0; - return result; - }; - UByteArray.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.storage, other.storage)))); - }; - var UByteArray_0 = defineInlineFunction('kotlin.kotlin.UByteArray_r6jda2$', wrapFunction(function () { - var UByteArray_init = _.kotlin.UByteArray; - function UByteArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - return function (size, init) { - return new UByteArray_init(Kotlin.fillArray(new Int8Array(size), UByteArray$lambda(init))); - }; - })); - var ubyteArrayOf = defineInlineFunction('kotlin.kotlin.ubyteArrayOf_heqmip$', function (elements) { - return elements; - }); - function UInt(data) { - UInt$Companion_getInstance(); - this.data = data; - } - function UInt$Companion() { - UInt$Companion_instance = this; - this.MIN_VALUE = new UInt(0); - this.MAX_VALUE = new UInt(-1); - this.SIZE_BYTES = 4; - this.SIZE_BITS = 32; - } - UInt$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var UInt$Companion_instance = null; - function UInt$Companion_getInstance() { - if (UInt$Companion_instance === null) { - new UInt$Companion(); - } - return UInt$Companion_instance; - } - UInt.prototype.compareTo_mpmjao$ = defineInlineFunction('kotlin.kotlin.UInt.compareTo_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintCompare = _.kotlin.uintCompare_vux9f0$; - return function (other) { - return uintCompare(this.data, (new UInt_init(other.data & 255)).data); - }; - })); - UInt.prototype.compareTo_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UInt.compareTo_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintCompare = _.kotlin.uintCompare_vux9f0$; - return function (other) { - return uintCompare(this.data, (new UInt_init(other.data & 65535)).data); - }; - })); - UInt.prototype.compareTo_11rb$ = defineInlineFunction('kotlin.kotlin.UInt.compareTo_11rb$', wrapFunction(function () { - var uintCompare = _.kotlin.uintCompare_vux9f0$; - return function (other) { - return uintCompare(this.data, other.data); - }; - })); - UInt.prototype.compareTo_mpgczg$ = defineInlineFunction('kotlin.kotlin.UInt.compareTo_mpgczg$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare((new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295))).data, other.data); - }; - })); - UInt.prototype.plus_mpmjao$ = defineInlineFunction('kotlin.kotlin.UInt.plus_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data + (new UInt_init(other.data & 255)).data | 0); - }; - })); - UInt.prototype.plus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UInt.plus_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data + (new UInt_init(other.data & 65535)).data | 0); - }; - })); - UInt.prototype.plus_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.plus_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data + other.data | 0); - }; - })); - UInt.prototype.plus_mpgczg$ = defineInlineFunction('kotlin.kotlin.UInt.plus_mpgczg$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295))).data.add(other.data)); - }; - })); - UInt.prototype.minus_mpmjao$ = defineInlineFunction('kotlin.kotlin.UInt.minus_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data - (new UInt_init(other.data & 255)).data | 0); - }; - })); - UInt.prototype.minus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UInt.minus_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data - (new UInt_init(other.data & 65535)).data | 0); - }; - })); - UInt.prototype.minus_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.minus_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data - other.data | 0); - }; - })); - UInt.prototype.minus_mpgczg$ = defineInlineFunction('kotlin.kotlin.UInt.minus_mpgczg$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295))).data.subtract(other.data)); - }; - })); - UInt.prototype.times_mpmjao$ = defineInlineFunction('kotlin.kotlin.UInt.times_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul(this.data, (new UInt_init(other.data & 255)).data)); - }; - })); - UInt.prototype.times_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UInt.times_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul(this.data, (new UInt_init(other.data & 65535)).data)); - }; - })); - UInt.prototype.times_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.times_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul(this.data, other.data)); - }; - })); - UInt.prototype.times_mpgczg$ = defineInlineFunction('kotlin.kotlin.UInt.times_mpgczg$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295))).data.multiply(other.data)); - }; - })); - UInt.prototype.div_mpmjao$ = defineInlineFunction('kotlin.kotlin.UInt.div_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(this, new UInt_init(other.data & 255)); - }; - })); - UInt.prototype.div_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UInt.div_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(this, new UInt_init(other.data & 65535)); - }; - })); - UInt.prototype.div_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.div_s87ys9$', wrapFunction(function () { - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(this, other); - }; - })); - UInt.prototype.div_mpgczg$ = defineInlineFunction('kotlin.kotlin.UInt.div_mpgczg$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295)), other); - }; - })); - UInt.prototype.rem_mpmjao$ = defineInlineFunction('kotlin.kotlin.UInt.rem_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(this, new UInt_init(other.data & 255)); - }; - })); - UInt.prototype.rem_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UInt.rem_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(this, new UInt_init(other.data & 65535)); - }; - })); - UInt.prototype.rem_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.rem_s87ys9$', wrapFunction(function () { - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(this, other); - }; - })); - UInt.prototype.rem_mpgczg$ = defineInlineFunction('kotlin.kotlin.UInt.rem_mpgczg$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295)), other); - }; - })); - UInt.prototype.inc = defineInlineFunction('kotlin.kotlin.UInt.inc', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function () { - return new UInt_init(this.data + 1 | 0); - }; - })); - UInt.prototype.dec = defineInlineFunction('kotlin.kotlin.UInt.dec', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function () { - return new UInt_init(this.data - 1 | 0); - }; - })); - UInt.prototype.rangeTo_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.rangeTo_s87ys9$', wrapFunction(function () { - var UIntRange_init = _.kotlin.ranges.UIntRange; - return function (other) { - return new UIntRange_init(this, other); - }; - })); - UInt.prototype.shl_za3lpa$ = defineInlineFunction('kotlin.kotlin.UInt.shl_za3lpa$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (bitCount) { - return new UInt_init(this.data << bitCount); - }; - })); - UInt.prototype.shr_za3lpa$ = defineInlineFunction('kotlin.kotlin.UInt.shr_za3lpa$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (bitCount) { - return new UInt_init(this.data >>> bitCount); - }; - })); - UInt.prototype.and_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.and_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data & other.data); - }; - })); - UInt.prototype.or_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.or_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data | other.data); - }; - })); - UInt.prototype.xor_s87ys9$ = defineInlineFunction('kotlin.kotlin.UInt.xor_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(this.data ^ other.data); - }; - })); - UInt.prototype.inv = defineInlineFunction('kotlin.kotlin.UInt.inv', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function () { - return new UInt_init(~this.data); - }; - })); - UInt.prototype.toByte = defineInlineFunction('kotlin.kotlin.UInt.toByte', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function () { - return toByte(this.data); - }; - })); - UInt.prototype.toShort = defineInlineFunction('kotlin.kotlin.UInt.toShort', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function () { - return toShort(this.data); - }; - })); - UInt.prototype.toInt = defineInlineFunction('kotlin.kotlin.UInt.toInt', function () { - return this.data; - }); - UInt.prototype.toLong = defineInlineFunction('kotlin.kotlin.UInt.toLong', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - return function () { - return Kotlin.Long.fromInt(this.data).and(L4294967295); - }; - })); - UInt.prototype.toUByte = defineInlineFunction('kotlin.kotlin.UInt.toUByte', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function () { - return new UByte_init(toByte(this.data)); - }; - })); - UInt.prototype.toUShort = defineInlineFunction('kotlin.kotlin.UInt.toUShort', wrapFunction(function () { - var toShort = Kotlin.toShort; - var UShort_init = _.kotlin.UShort; - return function () { - return new UShort_init(toShort(this.data)); - }; - })); - UInt.prototype.toUInt = defineInlineFunction('kotlin.kotlin.UInt.toUInt', function () { - return this; - }); - UInt.prototype.toULong = defineInlineFunction('kotlin.kotlin.UInt.toULong', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function () { - return new ULong_init(Kotlin.Long.fromInt(this.data).and(L4294967295)); - }; - })); - UInt.prototype.toFloat = defineInlineFunction('kotlin.kotlin.UInt.toFloat', wrapFunction(function () { - var uintToDouble = _.kotlin.uintToDouble_za3lpa$; - return function () { - return uintToDouble(this.data); - }; - })); - UInt.prototype.toDouble = defineInlineFunction('kotlin.kotlin.UInt.toDouble', wrapFunction(function () { - var uintToDouble = _.kotlin.uintToDouble_za3lpa$; - return function () { - return uintToDouble(this.data); - }; - })); - UInt.prototype.toString = function () { - return Kotlin.Long.fromInt(this.data).and(L4294967295).toString(); - }; - UInt.$metadata$ = {kind: Kind_CLASS, simpleName: 'UInt', interfaces: [Comparable]}; - UInt.prototype.unbox = function () { - return this.data; - }; - UInt.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.data) | 0; - return result; - }; - UInt.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.data, other.data)))); - }; - var toUInt = defineInlineFunction('kotlin.kotlin.toUInt_mz3mee$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init($receiver); - }; - })); - var toUInt_0 = defineInlineFunction('kotlin.kotlin.toUInt_5vcgdc$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init($receiver); - }; - })); - var toUInt_1 = defineInlineFunction('kotlin.kotlin.toUInt_s8ev3n$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init($receiver); - }; - })); - var toUInt_2 = defineInlineFunction('kotlin.kotlin.toUInt_mts6qi$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function ($receiver) { - return new UInt_init($receiver.toInt()); - }; - })); - var toUInt_3 = defineInlineFunction('kotlin.kotlin.toUInt_81szk$', wrapFunction(function () { - var doubleToUInt = _.kotlin.doubleToUInt_14dthe$; - return function ($receiver) { - return doubleToUInt($receiver); - }; - })); - var toUInt_4 = defineInlineFunction('kotlin.kotlin.toUInt_yrwdxr$', wrapFunction(function () { - var doubleToUInt = _.kotlin.doubleToUInt_14dthe$; - return function ($receiver) { - return doubleToUInt($receiver); - }; - })); - function UIntArray(storage) { - this.storage = storage; - } - UIntArray.prototype.get_za3lpa$ = function (index) { - return new UInt(this.storage[index]); - }; - UIntArray.prototype.set_6sqrdv$ = function (index, value) { - this.storage[index] = value.data; - }; - Object.defineProperty(UIntArray.prototype, 'size', {get: function () { - return this.storage.length; - }}); - UIntArray.prototype.iterator = function () { - return new UIntArray$Iterator(this.storage); - }; - function UIntArray$Iterator(array) { - UIntIterator.call(this); - this.array_0 = array; - this.index_0 = 0; - } - UIntArray$Iterator.prototype.hasNext = function () { - return this.index_0 < this.array_0.length; - }; - UIntArray$Iterator.prototype.nextUInt = function () { - var tmp$; - if (this.index_0 < this.array_0.length) { - return new UInt(this.array_0[tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$]); - } - else - throw new NoSuchElementException(this.index_0.toString()); - }; - UIntArray$Iterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'Iterator', interfaces: [UIntIterator]}; - UIntArray.prototype.contains_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UInt)) - return false; - return contains_2(this.storage, element.data); - }; - UIntArray.prototype.containsAll_brywnq$ = function (elements) { - var tmp$; - var $receiver = Kotlin.isType(tmp$ = elements, Collection) ? tmp$ : throwCCE_0(); - var all$result; - all$break: do { - var tmp$_0; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - all$result = true; - break all$break; - } - tmp$_0 = $receiver.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - var tmp$_1 = Kotlin.isType(element, UInt); - if (tmp$_1) { - tmp$_1 = contains_2(this.storage, element.data); - } - if (!tmp$_1) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - UIntArray.prototype.isEmpty = function () { - return this.storage.length === 0; - }; - UIntArray.$metadata$ = {kind: Kind_CLASS, simpleName: 'UIntArray', interfaces: [Collection]}; - function UIntArray_init(size, $this) { - $this = $this || Object.create(UIntArray.prototype); - UIntArray.call($this, new Int32Array(size)); - return $this; - } - UIntArray.prototype.unbox = function () { - return this.storage; - }; - UIntArray.prototype.toString = function () { - return 'UIntArray(storage=' + Kotlin.toString(this.storage) + ')'; - }; - UIntArray.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.storage) | 0; - return result; - }; - UIntArray.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.storage, other.storage)))); - }; - var UIntArray_0 = defineInlineFunction('kotlin.kotlin.UIntArray_8ai2qn$', wrapFunction(function () { - var UIntArray_init = _.kotlin.UIntArray; - function UIntArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - return function (size, init) { - return new UIntArray_init(Kotlin.fillArray(new Int32Array(size), UIntArray$lambda(init))); - }; - })); - var uintArrayOf = defineInlineFunction('kotlin.kotlin.uintArrayOf_b6v1wk$', function (elements) { - return elements; - }); - function UIntRange(start, endInclusive) { - UIntRange$Companion_getInstance(); - UIntProgression.call(this, start, endInclusive, 1); - } - Object.defineProperty(UIntRange.prototype, 'start', {get: function () { - return this.first; - }}); - Object.defineProperty(UIntRange.prototype, 'endInclusive', {get: function () { - return this.last; - }}); - UIntRange.prototype.contains_mef7kx$ = function (value) { - var tmp$ = uintCompare(this.first.data, value.data) <= 0; - if (tmp$) { - tmp$ = uintCompare(value.data, this.last.data) <= 0; - } - return tmp$; - }; - UIntRange.prototype.isEmpty = function () { - return uintCompare(this.first.data, this.last.data) > 0; - }; - UIntRange.prototype.equals = function (other) { - var tmp$, tmp$_0; - return Kotlin.isType(other, UIntRange) && (this.isEmpty() && other.isEmpty() || (((tmp$ = this.first) != null ? tmp$.equals(other.first) : null) && ((tmp$_0 = this.last) != null ? tmp$_0.equals(other.last) : null))); - }; - UIntRange.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * this.first.data | 0) + this.last.data | 0; - }; - UIntRange.prototype.toString = function () { - return this.first.toString() + '..' + this.last; - }; - function UIntRange$Companion() { - UIntRange$Companion_instance = this; - this.EMPTY = new UIntRange(UInt$Companion_getInstance().MAX_VALUE, UInt$Companion_getInstance().MIN_VALUE); - } - UIntRange$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var UIntRange$Companion_instance = null; - function UIntRange$Companion_getInstance() { - if (UIntRange$Companion_instance === null) { - new UIntRange$Companion(); - } - return UIntRange$Companion_instance; - } - UIntRange.$metadata$ = {kind: Kind_CLASS, simpleName: 'UIntRange', interfaces: [ClosedRange, UIntProgression]}; - function UIntProgression(start, endInclusive, step) { - UIntProgression$Companion_getInstance(); - if (step === 0) - throw IllegalArgumentException_init_0('Step must be non-zero.'); - if (step === -2147483648) - throw IllegalArgumentException_init_0('Step must be greater than Int.MIN_VALUE to avoid overflow on negation.'); - this.first = start; - this.last = getProgressionLastElement_1(start, endInclusive, step); - this.step = step; - } - UIntProgression.prototype.iterator = function () { - return new UIntProgressionIterator(this.first, this.last, this.step); - }; - UIntProgression.prototype.isEmpty = function () { - return this.step > 0 ? uintCompare(this.first.data, this.last.data) > 0 : uintCompare(this.first.data, this.last.data) < 0; - }; - UIntProgression.prototype.equals = function (other) { - var tmp$, tmp$_0; - return Kotlin.isType(other, UIntProgression) && (this.isEmpty() && other.isEmpty() || (((tmp$ = this.first) != null ? tmp$.equals(other.first) : null) && ((tmp$_0 = this.last) != null ? tmp$_0.equals(other.last) : null) && this.step === other.step)); - }; - UIntProgression.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * ((31 * this.first.data | 0) + this.last.data | 0) | 0) + this.step | 0; - }; - UIntProgression.prototype.toString = function () { - return this.step > 0 ? this.first.toString() + '..' + this.last + ' step ' + this.step : this.first.toString() + ' downTo ' + this.last + ' step ' + (-this.step | 0); - }; - function UIntProgression$Companion() { - UIntProgression$Companion_instance = this; - } - UIntProgression$Companion.prototype.fromClosedRange_fjk8us$ = function (rangeStart, rangeEnd, step) { - return new UIntProgression(rangeStart, rangeEnd, step); - }; - UIntProgression$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var UIntProgression$Companion_instance = null; - function UIntProgression$Companion_getInstance() { - if (UIntProgression$Companion_instance === null) { - new UIntProgression$Companion(); - } - return UIntProgression$Companion_instance; - } - UIntProgression.$metadata$ = {kind: Kind_CLASS, simpleName: 'UIntProgression', interfaces: [Iterable]}; - function UIntProgressionIterator(first, last, step) { - UIntIterator.call(this); - this.finalElement_0 = last; - this.hasNext_0 = step > 0 ? uintCompare(first.data, last.data) <= 0 : uintCompare(first.data, last.data) >= 0; - this.step_0 = new UInt(step); - this.next_0 = this.hasNext_0 ? first : this.finalElement_0; - } - UIntProgressionIterator.prototype.hasNext = function () { - return this.hasNext_0; - }; - UIntProgressionIterator.prototype.nextUInt = function () { - var value = this.next_0; - if (value != null ? value.equals(this.finalElement_0) : null) { - if (!this.hasNext_0) - throw NoSuchElementException_init(); - this.hasNext_0 = false; - } - else { - this.next_0 = new UInt(this.next_0.data + this.step_0.data | 0); - } - return value; - }; - UIntProgressionIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'UIntProgressionIterator', interfaces: [UIntIterator]}; - function UByteIterator() { - } - UByteIterator.prototype.next = function () { - return this.nextUByte(); - }; - UByteIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'UByteIterator', interfaces: [Iterator]}; - function UShortIterator() { - } - UShortIterator.prototype.next = function () { - return this.nextUShort(); - }; - UShortIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'UShortIterator', interfaces: [Iterator]}; - function UIntIterator() { - } - UIntIterator.prototype.next = function () { - return this.nextUInt(); - }; - UIntIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'UIntIterator', interfaces: [Iterator]}; - function ULongIterator() { - } - ULongIterator.prototype.next = function () { - return this.nextULong(); - }; - ULongIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'ULongIterator', interfaces: [Iterator]}; - function ULong(data) { - ULong$Companion_getInstance(); - this.data = data; - } - function ULong$Companion() { - ULong$Companion_instance = this; - this.MIN_VALUE = new ULong(L0); - this.MAX_VALUE = new ULong(L_1); - this.SIZE_BYTES = 8; - this.SIZE_BITS = 64; - } - ULong$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var ULong$Companion_instance = null; - function ULong$Companion_getInstance() { - if (ULong$Companion_instance === null) { - new ULong$Companion(); - } - return ULong$Companion_instance; - } - ULong.prototype.compareTo_mpmjao$ = defineInlineFunction('kotlin.kotlin.ULong.compareTo_mpmjao$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare(this.data, (new ULong_init(Kotlin.Long.fromInt(other.data).and(L255))).data); - }; - })); - ULong.prototype.compareTo_6hrhkk$ = defineInlineFunction('kotlin.kotlin.ULong.compareTo_6hrhkk$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare(this.data, (new ULong_init(Kotlin.Long.fromInt(other.data).and(L65535))).data); - }; - })); - ULong.prototype.compareTo_s87ys9$ = defineInlineFunction('kotlin.kotlin.ULong.compareTo_s87ys9$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare(this.data, (new ULong_init(Kotlin.Long.fromInt(other.data).and(L4294967295))).data); - }; - })); - ULong.prototype.compareTo_11rb$ = defineInlineFunction('kotlin.kotlin.ULong.compareTo_11rb$', wrapFunction(function () { - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare(this.data, other.data); - }; - })); - ULong.prototype.plus_mpmjao$ = defineInlineFunction('kotlin.kotlin.ULong.plus_mpmjao$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.add((new ULong_init(Kotlin.Long.fromInt(other.data).and(L255))).data)); - }; - })); - ULong.prototype.plus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.ULong.plus_6hrhkk$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.add((new ULong_init(Kotlin.Long.fromInt(other.data).and(L65535))).data)); - }; - })); - ULong.prototype.plus_s87ys9$ = defineInlineFunction('kotlin.kotlin.ULong.plus_s87ys9$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.add((new ULong_init(Kotlin.Long.fromInt(other.data).and(L4294967295))).data)); - }; - })); - ULong.prototype.plus_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.plus_mpgczg$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.add(other.data)); - }; - })); - ULong.prototype.minus_mpmjao$ = defineInlineFunction('kotlin.kotlin.ULong.minus_mpmjao$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.subtract((new ULong_init(Kotlin.Long.fromInt(other.data).and(L255))).data)); - }; - })); - ULong.prototype.minus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.ULong.minus_6hrhkk$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.subtract((new ULong_init(Kotlin.Long.fromInt(other.data).and(L65535))).data)); - }; - })); - ULong.prototype.minus_s87ys9$ = defineInlineFunction('kotlin.kotlin.ULong.minus_s87ys9$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.subtract((new ULong_init(Kotlin.Long.fromInt(other.data).and(L4294967295))).data)); - }; - })); - ULong.prototype.minus_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.minus_mpgczg$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.subtract(other.data)); - }; - })); - ULong.prototype.times_mpmjao$ = defineInlineFunction('kotlin.kotlin.ULong.times_mpmjao$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.multiply((new ULong_init(Kotlin.Long.fromInt(other.data).and(L255))).data)); - }; - })); - ULong.prototype.times_6hrhkk$ = defineInlineFunction('kotlin.kotlin.ULong.times_6hrhkk$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.multiply((new ULong_init(Kotlin.Long.fromInt(other.data).and(L65535))).data)); - }; - })); - ULong.prototype.times_s87ys9$ = defineInlineFunction('kotlin.kotlin.ULong.times_s87ys9$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.multiply((new ULong_init(Kotlin.Long.fromInt(other.data).and(L4294967295))).data)); - }; - })); - ULong.prototype.times_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.times_mpgczg$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.multiply(other.data)); - }; - })); - ULong.prototype.div_mpmjao$ = defineInlineFunction('kotlin.kotlin.ULong.div_mpmjao$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(this, new ULong_init(Kotlin.Long.fromInt(other.data).and(L255))); - }; - })); - ULong.prototype.div_6hrhkk$ = defineInlineFunction('kotlin.kotlin.ULong.div_6hrhkk$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(this, new ULong_init(Kotlin.Long.fromInt(other.data).and(L65535))); - }; - })); - ULong.prototype.div_s87ys9$ = defineInlineFunction('kotlin.kotlin.ULong.div_s87ys9$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(this, new ULong_init(Kotlin.Long.fromInt(other.data).and(L4294967295))); - }; - })); - ULong.prototype.div_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.div_mpgczg$', wrapFunction(function () { - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(this, other); - }; - })); - ULong.prototype.rem_mpmjao$ = defineInlineFunction('kotlin.kotlin.ULong.rem_mpmjao$', wrapFunction(function () { - var L255 = Kotlin.Long.fromInt(255); - var ULong_init = _.kotlin.ULong; - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(this, new ULong_init(Kotlin.Long.fromInt(other.data).and(L255))); - }; - })); - ULong.prototype.rem_6hrhkk$ = defineInlineFunction('kotlin.kotlin.ULong.rem_6hrhkk$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(this, new ULong_init(Kotlin.Long.fromInt(other.data).and(L65535))); - }; - })); - ULong.prototype.rem_s87ys9$ = defineInlineFunction('kotlin.kotlin.ULong.rem_s87ys9$', wrapFunction(function () { - var L4294967295 = new Kotlin.Long(-1, 0); - var ULong_init = _.kotlin.ULong; - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(this, new ULong_init(Kotlin.Long.fromInt(other.data).and(L4294967295))); - }; - })); - ULong.prototype.rem_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.rem_mpgczg$', wrapFunction(function () { - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(this, other); - }; - })); - ULong.prototype.inc = defineInlineFunction('kotlin.kotlin.ULong.inc', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function () { - return new ULong_init(this.data.inc()); - }; - })); - ULong.prototype.dec = defineInlineFunction('kotlin.kotlin.ULong.dec', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function () { - return new ULong_init(this.data.dec()); - }; - })); - ULong.prototype.rangeTo_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.rangeTo_mpgczg$', wrapFunction(function () { - var ULongRange_init = _.kotlin.ranges.ULongRange; - return function (other) { - return new ULongRange_init(this, other); - }; - })); - ULong.prototype.shl_za3lpa$ = defineInlineFunction('kotlin.kotlin.ULong.shl_za3lpa$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (bitCount) { - return new ULong_init(this.data.shiftLeft(bitCount)); - }; - })); - ULong.prototype.shr_za3lpa$ = defineInlineFunction('kotlin.kotlin.ULong.shr_za3lpa$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (bitCount) { - return new ULong_init(this.data.shiftRightUnsigned(bitCount)); - }; - })); - ULong.prototype.and_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.and_mpgczg$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.and(other.data)); - }; - })); - ULong.prototype.or_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.or_mpgczg$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.or(other.data)); - }; - })); - ULong.prototype.xor_mpgczg$ = defineInlineFunction('kotlin.kotlin.ULong.xor_mpgczg$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init(this.data.xor(other.data)); - }; - })); - ULong.prototype.inv = defineInlineFunction('kotlin.kotlin.ULong.inv', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function () { - return new ULong_init(this.data.inv()); - }; - })); - ULong.prototype.toByte = defineInlineFunction('kotlin.kotlin.ULong.toByte', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function () { - return toByte(this.data.toInt()); - }; - })); - ULong.prototype.toShort = defineInlineFunction('kotlin.kotlin.ULong.toShort', wrapFunction(function () { - var toShort = Kotlin.toShort; - return function () { - return toShort(this.data.toInt()); - }; - })); - ULong.prototype.toInt = defineInlineFunction('kotlin.kotlin.ULong.toInt', function () { - return this.data.toInt(); - }); - ULong.prototype.toLong = defineInlineFunction('kotlin.kotlin.ULong.toLong', function () { - return this.data; - }); - ULong.prototype.toUByte = defineInlineFunction('kotlin.kotlin.ULong.toUByte', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function () { - return new UByte_init(toByte(this.data.toInt())); - }; - })); - ULong.prototype.toUShort = defineInlineFunction('kotlin.kotlin.ULong.toUShort', wrapFunction(function () { - var toShort = Kotlin.toShort; - var UShort_init = _.kotlin.UShort; - return function () { - return new UShort_init(toShort(this.data.toInt())); - }; - })); - ULong.prototype.toUInt = defineInlineFunction('kotlin.kotlin.ULong.toUInt', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function () { - return new UInt_init(this.data.toInt()); - }; - })); - ULong.prototype.toULong = defineInlineFunction('kotlin.kotlin.ULong.toULong', function () { - return this; - }); - ULong.prototype.toFloat = defineInlineFunction('kotlin.kotlin.ULong.toFloat', wrapFunction(function () { - var ulongToDouble = _.kotlin.ulongToDouble_s8cxhz$; - return function () { - return ulongToDouble(this.data); - }; - })); - ULong.prototype.toDouble = defineInlineFunction('kotlin.kotlin.ULong.toDouble', wrapFunction(function () { - var ulongToDouble = _.kotlin.ulongToDouble_s8cxhz$; - return function () { - return ulongToDouble(this.data); - }; - })); - ULong.prototype.toString = function () { - return ulongToString(this.data); - }; - ULong.$metadata$ = {kind: Kind_CLASS, simpleName: 'ULong', interfaces: [Comparable]}; - ULong.prototype.unbox = function () { - return this.data; - }; - ULong.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.data) | 0; - return result; - }; - ULong.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.data, other.data)))); - }; - var toULong = defineInlineFunction('kotlin.kotlin.toULong_mz3mee$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(Kotlin.Long.fromInt($receiver)); - }; - })); - var toULong_0 = defineInlineFunction('kotlin.kotlin.toULong_5vcgdc$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(Kotlin.Long.fromInt($receiver)); - }; - })); - var toULong_1 = defineInlineFunction('kotlin.kotlin.toULong_s8ev3n$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init(Kotlin.Long.fromInt($receiver)); - }; - })); - var toULong_2 = defineInlineFunction('kotlin.kotlin.toULong_mts6qi$', wrapFunction(function () { - var ULong_init = _.kotlin.ULong; - return function ($receiver) { - return new ULong_init($receiver); - }; - })); - var toULong_3 = defineInlineFunction('kotlin.kotlin.toULong_81szk$', wrapFunction(function () { - var doubleToULong = _.kotlin.doubleToULong_14dthe$; - return function ($receiver) { - return doubleToULong($receiver); - }; - })); - var toULong_4 = defineInlineFunction('kotlin.kotlin.toULong_yrwdxr$', wrapFunction(function () { - var doubleToULong = _.kotlin.doubleToULong_14dthe$; - return function ($receiver) { - return doubleToULong($receiver); - }; - })); - function ULongArray(storage) { - this.storage = storage; - } - ULongArray.prototype.get_za3lpa$ = function (index) { - return new ULong(this.storage[index]); - }; - ULongArray.prototype.set_2ccimm$ = function (index, value) { - this.storage[index] = value.data; - }; - Object.defineProperty(ULongArray.prototype, 'size', {get: function () { - return this.storage.length; - }}); - ULongArray.prototype.iterator = function () { - return new ULongArray$Iterator(this.storage); - }; - function ULongArray$Iterator(array) { - ULongIterator.call(this); - this.array_0 = array; - this.index_0 = 0; - } - ULongArray$Iterator.prototype.hasNext = function () { - return this.index_0 < this.array_0.length; - }; - ULongArray$Iterator.prototype.nextULong = function () { - var tmp$; - if (this.index_0 < this.array_0.length) { - return new ULong(this.array_0[tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$]); - } - else - throw new NoSuchElementException(this.index_0.toString()); - }; - ULongArray$Iterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'Iterator', interfaces: [ULongIterator]}; - ULongArray.prototype.contains_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), ULong)) - return false; - return contains_3(this.storage, element.data); - }; - ULongArray.prototype.containsAll_brywnq$ = function (elements) { - var tmp$; - var $receiver = Kotlin.isType(tmp$ = elements, Collection) ? tmp$ : throwCCE_0(); - var all$result; - all$break: do { - var tmp$_0; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - all$result = true; - break all$break; - } - tmp$_0 = $receiver.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - var tmp$_1 = Kotlin.isType(element, ULong); - if (tmp$_1) { - tmp$_1 = contains_3(this.storage, element.data); - } - if (!tmp$_1) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - ULongArray.prototype.isEmpty = function () { - return this.storage.length === 0; - }; - ULongArray.$metadata$ = {kind: Kind_CLASS, simpleName: 'ULongArray', interfaces: [Collection]}; - function ULongArray_init(size, $this) { - $this = $this || Object.create(ULongArray.prototype); - ULongArray.call($this, Kotlin.longArray(size)); - return $this; - } - ULongArray.prototype.unbox = function () { - return this.storage; - }; - ULongArray.prototype.toString = function () { - return 'ULongArray(storage=' + Kotlin.toString(this.storage) + ')'; - }; - ULongArray.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.storage) | 0; - return result; - }; - ULongArray.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.storage, other.storage)))); - }; - var ULongArray_0 = defineInlineFunction('kotlin.kotlin.ULongArray_r17xm6$', wrapFunction(function () { - var ULongArray_init = _.kotlin.ULongArray; - function ULongArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - return function (size, init) { - return new ULongArray_init(Kotlin.longArrayF(size, ULongArray$lambda(init))); - }; - })); - var ulongArrayOf = defineInlineFunction('kotlin.kotlin.ulongArrayOf_imqi6j$', function (elements) { - return elements; - }); - function ULongRange_0(start, endInclusive) { - ULongRange$Companion_getInstance(); - ULongProgression.call(this, start, endInclusive, L1); - } - Object.defineProperty(ULongRange_0.prototype, 'start', {get: function () { - return this.first; - }}); - Object.defineProperty(ULongRange_0.prototype, 'endInclusive', {get: function () { - return this.last; - }}); - ULongRange_0.prototype.contains_mef7kx$ = function (value) { - var tmp$ = ulongCompare(this.first.data, value.data) <= 0; - if (tmp$) { - tmp$ = ulongCompare(value.data, this.last.data) <= 0; - } - return tmp$; - }; - ULongRange_0.prototype.isEmpty = function () { - return ulongCompare(this.first.data, this.last.data) > 0; - }; - ULongRange_0.prototype.equals = function (other) { - var tmp$, tmp$_0; - return Kotlin.isType(other, ULongRange_0) && (this.isEmpty() && other.isEmpty() || (((tmp$ = this.first) != null ? tmp$.equals(other.first) : null) && ((tmp$_0 = this.last) != null ? tmp$_0.equals(other.last) : null))); - }; - ULongRange_0.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * (new ULong(this.first.data.xor((new ULong(this.first.data.shiftRightUnsigned(32))).data))).data.toInt() | 0) + (new ULong(this.last.data.xor((new ULong(this.last.data.shiftRightUnsigned(32))).data))).data.toInt() | 0; - }; - ULongRange_0.prototype.toString = function () { - return this.first.toString() + '..' + this.last; - }; - function ULongRange$Companion() { - ULongRange$Companion_instance = this; - this.EMPTY = new ULongRange_0(ULong$Companion_getInstance().MAX_VALUE, ULong$Companion_getInstance().MIN_VALUE); - } - ULongRange$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var ULongRange$Companion_instance = null; - function ULongRange$Companion_getInstance() { - if (ULongRange$Companion_instance === null) { - new ULongRange$Companion(); - } - return ULongRange$Companion_instance; - } - ULongRange_0.$metadata$ = {kind: Kind_CLASS, simpleName: 'ULongRange', interfaces: [ClosedRange, ULongProgression]}; - function ULongProgression(start, endInclusive, step) { - ULongProgression$Companion_getInstance(); - if (equals(step, L0)) - throw IllegalArgumentException_init_0('Step must be non-zero.'); - if (equals(step, Long$Companion$MIN_VALUE)) - throw IllegalArgumentException_init_0('Step must be greater than Long.MIN_VALUE to avoid overflow on negation.'); - this.first = start; - this.last = getProgressionLastElement_2(start, endInclusive, step); - this.step = step; - } - ULongProgression.prototype.iterator = function () { - return new ULongProgressionIterator(this.first, this.last, this.step); - }; - ULongProgression.prototype.isEmpty = function () { - return this.step.toNumber() > 0 ? ulongCompare(this.first.data, this.last.data) > 0 : ulongCompare(this.first.data, this.last.data) < 0; - }; - ULongProgression.prototype.equals = function (other) { - var tmp$, tmp$_0; - return Kotlin.isType(other, ULongProgression) && (this.isEmpty() && other.isEmpty() || (((tmp$ = this.first) != null ? tmp$.equals(other.first) : null) && ((tmp$_0 = this.last) != null ? tmp$_0.equals(other.last) : null) && equals(this.step, other.step))); - }; - ULongProgression.prototype.hashCode = function () { - return this.isEmpty() ? -1 : (31 * ((31 * (new ULong(this.first.data.xor((new ULong(this.first.data.shiftRightUnsigned(32))).data))).data.toInt() | 0) + (new ULong(this.last.data.xor((new ULong(this.last.data.shiftRightUnsigned(32))).data))).data.toInt() | 0) | 0) + this.step.xor(this.step.shiftRightUnsigned(32)).toInt() | 0; - }; - ULongProgression.prototype.toString = function () { - return this.step.toNumber() > 0 ? this.first.toString() + '..' + this.last + ' step ' + this.step.toString() : this.first.toString() + ' downTo ' + this.last + ' step ' + this.step.unaryMinus().toString(); - }; - function ULongProgression$Companion() { - ULongProgression$Companion_instance = this; - } - ULongProgression$Companion.prototype.fromClosedRange_15zasp$ = function (rangeStart, rangeEnd, step) { - return new ULongProgression(rangeStart, rangeEnd, step); - }; - ULongProgression$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var ULongProgression$Companion_instance = null; - function ULongProgression$Companion_getInstance() { - if (ULongProgression$Companion_instance === null) { - new ULongProgression$Companion(); - } - return ULongProgression$Companion_instance; - } - ULongProgression.$metadata$ = {kind: Kind_CLASS, simpleName: 'ULongProgression', interfaces: [Iterable]}; - function ULongProgressionIterator(first, last, step) { - ULongIterator.call(this); - this.finalElement_0 = last; - this.hasNext_0 = step.toNumber() > 0 ? ulongCompare(first.data, last.data) <= 0 : ulongCompare(first.data, last.data) >= 0; - this.step_0 = new ULong(step); - this.next_0 = this.hasNext_0 ? first : this.finalElement_0; - } - ULongProgressionIterator.prototype.hasNext = function () { - return this.hasNext_0; - }; - ULongProgressionIterator.prototype.nextULong = function () { - var value = this.next_0; - if (value != null ? value.equals(this.finalElement_0) : null) { - if (!this.hasNext_0) - throw NoSuchElementException_init(); - this.hasNext_0 = false; - } - else { - this.next_0 = new ULong(this.next_0.data.add(this.step_0.data)); - } - return value; - }; - ULongProgressionIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'ULongProgressionIterator', interfaces: [ULongIterator]}; - var min_25 = defineInlineFunction('kotlin.kotlin.math.min_oqfnby$', wrapFunction(function () { - var minOf = _.kotlin.comparisons.minOf_oqfnby$; - return function (a, b) { - return minOf(a, b); - }; - })); - var min_26 = defineInlineFunction('kotlin.kotlin.math.min_jpm79w$', wrapFunction(function () { - var minOf = _.kotlin.comparisons.minOf_jpm79w$; - return function (a, b) { - return minOf(a, b); - }; - })); - var max_25 = defineInlineFunction('kotlin.kotlin.math.max_oqfnby$', wrapFunction(function () { - var maxOf = _.kotlin.comparisons.maxOf_oqfnby$; - return function (a, b) { - return maxOf(a, b); - }; - })); - var max_26 = defineInlineFunction('kotlin.kotlin.math.max_jpm79w$', wrapFunction(function () { - var maxOf = _.kotlin.comparisons.maxOf_jpm79w$; - return function (a, b) { - return maxOf(a, b); - }; - })); - function differenceModulo_1(a, b, c) { - var ac = uintRemainder(a, c); - var bc = uintRemainder(b, c); - return uintCompare(ac.data, bc.data) >= 0 ? new UInt(ac.data - bc.data | 0) : new UInt((new UInt(ac.data - bc.data | 0)).data + c.data | 0); - } - function differenceModulo_2(a, b, c) { - var ac = ulongRemainder(a, c); - var bc = ulongRemainder(b, c); - return ulongCompare(ac.data, bc.data) >= 0 ? new ULong(ac.data.subtract(bc.data)) : new ULong((new ULong(ac.data.subtract(bc.data))).data.add(c.data)); - } - function getProgressionLastElement_1(start, end, step) { - if (step > 0) { - return uintCompare(start.data, end.data) >= 0 ? end : new UInt(end.data - differenceModulo_1(end, start, new UInt(step)).data | 0); - } - else if (step < 0) { - return uintCompare(start.data, end.data) <= 0 ? end : new UInt(end.data + differenceModulo_1(start, end, new UInt(-step | 0)).data | 0); - } - else - throw IllegalArgumentException_init_0('Step is zero.'); - } - function getProgressionLastElement_2(start, end, step) { - if (step.toNumber() > 0) { - return ulongCompare(start.data, end.data) >= 0 ? end : new ULong(end.data.subtract(differenceModulo_2(end, start, new ULong(step)).data)); - } - else if (step.toNumber() < 0) { - return ulongCompare(start.data, end.data) <= 0 ? end : new ULong(end.data.add(differenceModulo_2(start, end, new ULong(step.unaryMinus())).data)); - } - else - throw IllegalArgumentException_init_0('Step is zero.'); - } - function UShort(data) { - UShort$Companion_getInstance(); - this.data = data; - } - function UShort$Companion() { - UShort$Companion_instance = this; - this.MIN_VALUE = new UShort(0); - this.MAX_VALUE = new UShort(-1 | 0); - this.SIZE_BYTES = 2; - this.SIZE_BITS = 16; - } - UShort$Companion.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Companion', interfaces: []}; - var UShort$Companion_instance = null; - function UShort$Companion_getInstance() { - if (UShort$Companion_instance === null) { - new UShort$Companion(); - } - return UShort$Companion_instance; - } - UShort.prototype.compareTo_mpmjao$ = defineInlineFunction('kotlin.kotlin.UShort.compareTo_mpmjao$', function (other) { - return Kotlin.primitiveCompareTo(this.data & 65535, other.data & 255); - }); - UShort.prototype.compareTo_11rb$ = defineInlineFunction('kotlin.kotlin.UShort.compareTo_11rb$', function (other) { - return Kotlin.primitiveCompareTo(this.data & 65535, other.data & 65535); - }); - UShort.prototype.compareTo_s87ys9$ = defineInlineFunction('kotlin.kotlin.UShort.compareTo_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintCompare = _.kotlin.uintCompare_vux9f0$; - return function (other) { - return uintCompare((new UInt_init(this.data & 65535)).data, other.data); - }; - })); - UShort.prototype.compareTo_mpgczg$ = defineInlineFunction('kotlin.kotlin.UShort.compareTo_mpgczg$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - var ulongCompare = _.kotlin.ulongCompare_3pjtqy$; - return function (other) { - return ulongCompare((new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535))).data, other.data); - }; - })); - UShort.prototype.plus_mpmjao$ = defineInlineFunction('kotlin.kotlin.UShort.plus_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 65535)).data + (new UInt_init(other.data & 255)).data | 0); - }; - })); - UShort.prototype.plus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.plus_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 65535)).data + (new UInt_init(other.data & 65535)).data | 0); - }; - })); - UShort.prototype.plus_s87ys9$ = defineInlineFunction('kotlin.kotlin.UShort.plus_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 65535)).data + other.data | 0); - }; - })); - UShort.prototype.plus_mpgczg$ = defineInlineFunction('kotlin.kotlin.UShort.plus_mpgczg$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535))).data.add(other.data)); - }; - })); - UShort.prototype.minus_mpmjao$ = defineInlineFunction('kotlin.kotlin.UShort.minus_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 65535)).data - (new UInt_init(other.data & 255)).data | 0); - }; - })); - UShort.prototype.minus_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.minus_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 65535)).data - (new UInt_init(other.data & 65535)).data | 0); - }; - })); - UShort.prototype.minus_s87ys9$ = defineInlineFunction('kotlin.kotlin.UShort.minus_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init((new UInt_init(this.data & 65535)).data - other.data | 0); - }; - })); - UShort.prototype.minus_mpgczg$ = defineInlineFunction('kotlin.kotlin.UShort.minus_mpgczg$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535))).data.subtract(other.data)); - }; - })); - UShort.prototype.times_mpmjao$ = defineInlineFunction('kotlin.kotlin.UShort.times_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul((new UInt_init(this.data & 65535)).data, (new UInt_init(other.data & 255)).data)); - }; - })); - UShort.prototype.times_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.times_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul((new UInt_init(this.data & 65535)).data, (new UInt_init(other.data & 65535)).data)); - }; - })); - UShort.prototype.times_s87ys9$ = defineInlineFunction('kotlin.kotlin.UShort.times_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UInt_init(Kotlin.imul((new UInt_init(this.data & 65535)).data, other.data)); - }; - })); - UShort.prototype.times_mpgczg$ = defineInlineFunction('kotlin.kotlin.UShort.times_mpgczg$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function (other) { - return new ULong_init((new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535))).data.multiply(other.data)); - }; - })); - UShort.prototype.div_mpmjao$ = defineInlineFunction('kotlin.kotlin.UShort.div_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(new UInt_init(this.data & 65535), new UInt_init(other.data & 255)); - }; - })); - UShort.prototype.div_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.div_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(new UInt_init(this.data & 65535), new UInt_init(other.data & 65535)); - }; - })); - UShort.prototype.div_s87ys9$ = defineInlineFunction('kotlin.kotlin.UShort.div_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintDivide = _.kotlin.uintDivide_oqfnby$; - return function (other) { - return uintDivide(new UInt_init(this.data & 65535), other); - }; - })); - UShort.prototype.div_mpgczg$ = defineInlineFunction('kotlin.kotlin.UShort.div_mpgczg$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - var ulongDivide = _.kotlin.ulongDivide_jpm79w$; - return function (other) { - return ulongDivide(new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535)), other); - }; - })); - UShort.prototype.rem_mpmjao$ = defineInlineFunction('kotlin.kotlin.UShort.rem_mpmjao$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(new UInt_init(this.data & 65535), new UInt_init(other.data & 255)); - }; - })); - UShort.prototype.rem_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.rem_6hrhkk$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(new UInt_init(this.data & 65535), new UInt_init(other.data & 65535)); - }; - })); - UShort.prototype.rem_s87ys9$ = defineInlineFunction('kotlin.kotlin.UShort.rem_s87ys9$', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - var uintRemainder = _.kotlin.uintRemainder_oqfnby$; - return function (other) { - return uintRemainder(new UInt_init(this.data & 65535), other); - }; - })); - UShort.prototype.rem_mpgczg$ = defineInlineFunction('kotlin.kotlin.UShort.rem_mpgczg$', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - var ulongRemainder = _.kotlin.ulongRemainder_jpm79w$; - return function (other) { - return ulongRemainder(new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535)), other); - }; - })); - UShort.prototype.inc = defineInlineFunction('kotlin.kotlin.UShort.inc', wrapFunction(function () { - var toShort = Kotlin.toShort; - var UShort_init = _.kotlin.UShort; - return function () { - return new UShort_init(toShort(this.data + 1)); - }; - })); - UShort.prototype.dec = defineInlineFunction('kotlin.kotlin.UShort.dec', wrapFunction(function () { - var toShort = Kotlin.toShort; - var UShort_init = _.kotlin.UShort; - return function () { - return new UShort_init(toShort(this.data - 1)); - }; - })); - UShort.prototype.rangeTo_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.rangeTo_6hrhkk$', wrapFunction(function () { - var UIntRange_init = _.kotlin.ranges.UIntRange; - var UInt_init = _.kotlin.UInt; - return function (other) { - return new UIntRange_init(new UInt_init(this.data & 65535), new UInt_init(other.data & 65535)); - }; - })); - UShort.prototype.and_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.and_6hrhkk$', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - var toShort = Kotlin.toShort; - return function (other) { - return new UShort_init(toShort(this.data & other.data)); - }; - })); - UShort.prototype.or_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.or_6hrhkk$', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - var toShort = Kotlin.toShort; - return function (other) { - return new UShort_init(toShort(this.data | other.data)); - }; - })); - UShort.prototype.xor_6hrhkk$ = defineInlineFunction('kotlin.kotlin.UShort.xor_6hrhkk$', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - var toShort = Kotlin.toShort; - return function (other) { - return new UShort_init(toShort(this.data ^ other.data)); - }; - })); - UShort.prototype.inv = defineInlineFunction('kotlin.kotlin.UShort.inv', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - var toShort = Kotlin.toShort; - return function () { - return new UShort_init(toShort(~this.data)); - }; - })); - UShort.prototype.toByte = defineInlineFunction('kotlin.kotlin.UShort.toByte', wrapFunction(function () { - var toByte = Kotlin.toByte; - return function () { - return toByte(this.data); - }; - })); - UShort.prototype.toShort = defineInlineFunction('kotlin.kotlin.UShort.toShort', function () { - return this.data; - }); - UShort.prototype.toInt = defineInlineFunction('kotlin.kotlin.UShort.toInt', function () { - return this.data & 65535; - }); - UShort.prototype.toLong = defineInlineFunction('kotlin.kotlin.UShort.toLong', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - return function () { - return Kotlin.Long.fromInt(this.data).and(L65535); - }; - })); - UShort.prototype.toUByte = defineInlineFunction('kotlin.kotlin.UShort.toUByte', wrapFunction(function () { - var toByte = Kotlin.toByte; - var UByte_init = _.kotlin.UByte; - return function () { - return new UByte_init(toByte(this.data)); - }; - })); - UShort.prototype.toUShort = defineInlineFunction('kotlin.kotlin.UShort.toUShort', function () { - return this; - }); - UShort.prototype.toUInt = defineInlineFunction('kotlin.kotlin.UShort.toUInt', wrapFunction(function () { - var UInt_init = _.kotlin.UInt; - return function () { - return new UInt_init(this.data & 65535); - }; - })); - UShort.prototype.toULong = defineInlineFunction('kotlin.kotlin.UShort.toULong', wrapFunction(function () { - var L65535 = Kotlin.Long.fromInt(65535); - var ULong_init = _.kotlin.ULong; - return function () { - return new ULong_init(Kotlin.Long.fromInt(this.data).and(L65535)); - }; - })); - UShort.prototype.toFloat = defineInlineFunction('kotlin.kotlin.UShort.toFloat', function () { - return this.data & 65535; - }); - UShort.prototype.toDouble = defineInlineFunction('kotlin.kotlin.UShort.toDouble', function () { - return this.data & 65535; - }); - UShort.prototype.toString = function () { - return (this.data & 65535).toString(); - }; - UShort.$metadata$ = {kind: Kind_CLASS, simpleName: 'UShort', interfaces: [Comparable]}; - UShort.prototype.unbox = function () { - return this.data; - }; - UShort.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.data) | 0; - return result; - }; - UShort.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.data, other.data)))); - }; - var toUShort = defineInlineFunction('kotlin.kotlin.toUShort_mz3mee$', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init($receiver); - }; - })); - var toUShort_0 = defineInlineFunction('kotlin.kotlin.toUShort_5vcgdc$', wrapFunction(function () { - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init($receiver); - }; - })); - var toUShort_1 = defineInlineFunction('kotlin.kotlin.toUShort_s8ev3n$', wrapFunction(function () { - var toShort = Kotlin.toShort; - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init(toShort($receiver)); - }; - })); - var toUShort_2 = defineInlineFunction('kotlin.kotlin.toUShort_mts6qi$', wrapFunction(function () { - var toShort = Kotlin.toShort; - var UShort_init = _.kotlin.UShort; - return function ($receiver) { - return new UShort_init(toShort($receiver.toInt())); - }; - })); - function UShortArray(storage) { - this.storage = storage; - } - UShortArray.prototype.get_za3lpa$ = function (index) { - return new UShort(this.storage[index]); - }; - UShortArray.prototype.set_1pe3u2$ = function (index, value) { - this.storage[index] = value.data; - }; - Object.defineProperty(UShortArray.prototype, 'size', {get: function () { - return this.storage.length; - }}); - UShortArray.prototype.iterator = function () { - return new UShortArray$Iterator(this.storage); - }; - function UShortArray$Iterator(array) { - UShortIterator.call(this); - this.array_0 = array; - this.index_0 = 0; - } - UShortArray$Iterator.prototype.hasNext = function () { - return this.index_0 < this.array_0.length; - }; - UShortArray$Iterator.prototype.nextUShort = function () { - var tmp$; - if (this.index_0 < this.array_0.length) { - return new UShort(this.array_0[tmp$ = this.index_0, this.index_0 = tmp$ + 1 | 0, tmp$]); - } - else - throw new NoSuchElementException(this.index_0.toString()); - }; - UShortArray$Iterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'Iterator', interfaces: [UShortIterator]}; - UShortArray.prototype.contains_11rb$ = function (element) { - var tmp$; - if (!Kotlin.isType((tmp$ = element) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE_0(), UShort)) - return false; - return contains_1(this.storage, element.data); - }; - UShortArray.prototype.containsAll_brywnq$ = function (elements) { - var tmp$; - var $receiver = Kotlin.isType(tmp$ = elements, Collection) ? tmp$ : throwCCE_0(); - var all$result; - all$break: do { - var tmp$_0; - if (Kotlin.isType($receiver, Collection) && $receiver.isEmpty()) { - all$result = true; - break all$break; - } - tmp$_0 = $receiver.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - var tmp$_1 = Kotlin.isType(element, UShort); - if (tmp$_1) { - tmp$_1 = contains_1(this.storage, element.data); - } - if (!tmp$_1) { - all$result = false; - break all$break; - } - } - all$result = true; - } - while (false); - return all$result; - }; - UShortArray.prototype.isEmpty = function () { - return this.storage.length === 0; - }; - UShortArray.$metadata$ = {kind: Kind_CLASS, simpleName: 'UShortArray', interfaces: [Collection]}; - function UShortArray_init(size, $this) { - $this = $this || Object.create(UShortArray.prototype); - UShortArray.call($this, new Int16Array(size)); - return $this; - } - UShortArray.prototype.unbox = function () { - return this.storage; - }; - UShortArray.prototype.toString = function () { - return 'UShortArray(storage=' + Kotlin.toString(this.storage) + ')'; - }; - UShortArray.prototype.hashCode = function () { - var result = 0; - result = result * 31 + Kotlin.hashCode(this.storage) | 0; - return result; - }; - UShortArray.prototype.equals = function (other) { - return this === other || (other !== null && (typeof other === 'object' && (Object.getPrototypeOf(this) === Object.getPrototypeOf(other) && Kotlin.equals(this.storage, other.storage)))); - }; - var UShortArray_0 = defineInlineFunction('kotlin.kotlin.UShortArray_hj0epe$', wrapFunction(function () { - var UShortArray_init = _.kotlin.UShortArray; - function UShortArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - return function (size, init) { - return new UShortArray_init(Kotlin.fillArray(new Int16Array(size), UShortArray$lambda(init))); - }; - })); - var ushortArrayOf = defineInlineFunction('kotlin.kotlin.ushortArrayOf_golzdd$', function (elements) { - return elements; - }); - function toString_4($receiver, radix) { - return toString_3($receiver.data & 255, radix); - } - function toString_5($receiver, radix) { - return toString_3($receiver.data & 65535, radix); - } - function toString_6($receiver, radix) { - return toString_2(Kotlin.Long.fromInt($receiver.data).and(L4294967295), radix); - } - function toString_7($receiver, radix) { - return ulongToString_0($receiver.data, checkRadix(radix)); - } - function toUByte_3($receiver) { - var tmp$; - return (tmp$ = toUByteOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toUByte_4($receiver, radix) { - var tmp$; - return (tmp$ = toUByteOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toUShort_3($receiver) { - var tmp$; - return (tmp$ = toUShortOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toUShort_4($receiver, radix) { - var tmp$; - return (tmp$ = toUShortOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toUInt_5($receiver) { - var tmp$; - return (tmp$ = toUIntOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toUInt_6($receiver, radix) { - var tmp$; - return (tmp$ = toUIntOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toULong_5($receiver) { - var tmp$; - return (tmp$ = toULongOrNull($receiver)) != null ? tmp$ : numberFormatError($receiver); - } - function toULong_6($receiver, radix) { - var tmp$; - return (tmp$ = toULongOrNull_0($receiver, radix)) != null ? tmp$ : numberFormatError($receiver); - } - function toUByteOrNull($receiver) { - return toUByteOrNull_0($receiver, 10); - } - function toUByteOrNull_0($receiver, radix) { - var tmp$; - tmp$ = toUIntOrNull_0($receiver, radix); - if (tmp$ == null) { - return null; - } - var int = tmp$; - if (uintCompare(int.data, (new UInt(UByte$Companion_getInstance().MAX_VALUE.data & 255)).data) > 0) - return null; - return new UByte(toByte(int.data)); - } - function toUShortOrNull($receiver) { - return toUShortOrNull_0($receiver, 10); - } - function toUShortOrNull_0($receiver, radix) { - var tmp$; - tmp$ = toUIntOrNull_0($receiver, radix); - if (tmp$ == null) { - return null; - } - var int = tmp$; - if (uintCompare(int.data, (new UInt(UShort$Companion_getInstance().MAX_VALUE.data & 65535)).data) > 0) - return null; - return new UShort(toShort(int.data)); - } - function toUIntOrNull($receiver) { - return toUIntOrNull_0($receiver, 10); - } - function toUIntOrNull_0($receiver, radix) { - checkRadix(radix); - var length = $receiver.length; - if (length === 0) - return null; - var limit = UInt$Companion_getInstance().MAX_VALUE; - var start; - var firstChar = $receiver.charCodeAt(0); - if (firstChar < 48) { - if (length === 1 || firstChar !== 43) - return null; - start = 1; - } - else { - start = 0; - } - var uradix = new UInt(radix); - var limitBeforeMul = uintDivide(limit, uradix); - var result = new UInt(0); - for (var i = start; i < length; i++) { - var digit = digitOf($receiver.charCodeAt(i), radix); - if (digit < 0) - return null; - if (uintCompare(result.data, limitBeforeMul.data) > 0) - return null; - result = new UInt(Kotlin.imul(result.data, uradix.data)); - var beforeAdding = result; - result = new UInt(result.data + (new UInt(digit)).data | 0); - if (uintCompare(result.data, beforeAdding.data) < 0) - return null; - } - return result; - } - function toULongOrNull($receiver) { - return toULongOrNull_0($receiver, 10); - } - function toULongOrNull_0($receiver, radix) { - checkRadix(radix); - var length = $receiver.length; - if (length === 0) - return null; - var limit = ULong$Companion_getInstance().MAX_VALUE; - var start; - var firstChar = $receiver.charCodeAt(0); - if (firstChar < 48) { - if (length === 1 || firstChar !== 43) - return null; - start = 1; - } - else { - start = 0; - } - var uradix = new UInt(radix); - var limitBeforeMul = ulongDivide(limit, new ULong(Kotlin.Long.fromInt(uradix.data).and(L4294967295))); - var result = new ULong(Kotlin.Long.ZERO); - for (var i = start; i < length; i++) { - var digit = digitOf($receiver.charCodeAt(i), radix); - if (digit < 0) - return null; - if (ulongCompare(result.data, limitBeforeMul.data) > 0) - return null; - result = new ULong(result.data.multiply((new ULong(Kotlin.Long.fromInt(uradix.data).and(L4294967295))).data)); - var beforeAdding = result; - result = new ULong(result.data.add((new ULong(Kotlin.Long.fromInt((new UInt(digit)).data).and(L4294967295))).data)); - if (ulongCompare(result.data, beforeAdding.data) < 0) - return null; - } - return result; - } - function uintCompare(v1, v2) { - return Kotlin.primitiveCompareTo(v1 ^ -2147483648, v2 ^ -2147483648); - } - function ulongCompare(v1, v2) { - return v1.xor(Long$Companion$MIN_VALUE).compareTo_11rb$(v2.xor(Long$Companion$MIN_VALUE)); - } - function uintDivide(v1, v2) { - return new UInt(Kotlin.Long.fromInt(v1.data).and(L4294967295).div(Kotlin.Long.fromInt(v2.data).and(L4294967295)).toInt()); - } - function uintRemainder(v1, v2) { - return new UInt(Kotlin.Long.fromInt(v1.data).and(L4294967295).modulo(Kotlin.Long.fromInt(v2.data).and(L4294967295)).toInt()); - } - function ulongDivide(v1, v2) { - var dividend = v1.data; - var divisor = v2.data; - if (divisor.toNumber() < 0) { - return ulongCompare(v1.data, v2.data) < 0 ? new ULong(L0) : new ULong(L1); - } - if (dividend.toNumber() >= 0) { - return new ULong(dividend.div(divisor)); - } - var quotient = dividend.shiftRightUnsigned(1).div(divisor).shiftLeft(1); - var rem = dividend.subtract(quotient.multiply(divisor)); - return new ULong(quotient.add(Kotlin.Long.fromInt(ulongCompare((new ULong(rem)).data, (new ULong(divisor)).data) >= 0 ? 1 : 0))); - } - function ulongRemainder(v1, v2) { - var tmp$; - var dividend = v1.data; - var divisor = v2.data; - if (divisor.toNumber() < 0) { - if (ulongCompare(v1.data, v2.data) < 0) { - tmp$ = v1; - } - else { - tmp$ = new ULong(v1.data.subtract(v2.data)); - } - return tmp$; - } - if (dividend.toNumber() >= 0) { - return new ULong(dividend.modulo(divisor)); - } - var quotient = dividend.shiftRightUnsigned(1).div(divisor).shiftLeft(1); - var rem = dividend.subtract(quotient.multiply(divisor)); - return new ULong(rem.subtract(ulongCompare((new ULong(rem)).data, (new ULong(divisor)).data) >= 0 ? divisor : L0)); - } - function doubleToUInt(v) { - if (isNaN_0(v)) - return new UInt(0); - else { - if (v <= uintToDouble(UInt$Companion_getInstance().MIN_VALUE.data)) - return UInt$Companion_getInstance().MIN_VALUE; - else { - if (v >= uintToDouble(UInt$Companion_getInstance().MAX_VALUE.data)) - return UInt$Companion_getInstance().MAX_VALUE; - else if (v <= 2147483647) { - return new UInt(numberToInt(v)); - } - else { - return new UInt((new UInt(numberToInt(v - 2147483647))).data + (new UInt(2147483647)).data | 0); - } - } - } - } - function doubleToULong(v) { - if (isNaN_0(v)) - return new ULong(Kotlin.Long.ZERO); - else { - if (v <= ulongToDouble(ULong$Companion_getInstance().MIN_VALUE.data)) - return ULong$Companion_getInstance().MIN_VALUE; - else { - if (v >= ulongToDouble(ULong$Companion_getInstance().MAX_VALUE.data)) - return ULong$Companion_getInstance().MAX_VALUE; - else if (v < Long$Companion$MAX_VALUE.toNumber()) { - return new ULong(Kotlin.Long.fromNumber(v)); - } - else { - return new ULong((new ULong(Kotlin.Long.fromNumber(v - 9.223372036854776E18))).data.add((new ULong(Kotlin.Long.MIN_VALUE)).data)); - } - } - } - } - function uintToDouble(v) { - return (v & 2147483647) + (v >>> 31 << 30) * 2; - } - function ulongToDouble(v) { - return v.shiftRightUnsigned(11).toNumber() * 2048 + v.and(L2047).toNumber(); - } - function ulongToString(v) { - return ulongToString_0(v, 10); - } - function ulongToString_0(v, base) { - if (v.toNumber() >= 0) - return toString_2(v, base); - var quotient = v.shiftRightUnsigned(1).div(Kotlin.Long.fromInt(base)).shiftLeft(1); - var rem = v.subtract(quotient.multiply(Kotlin.Long.fromInt(base))); - if (rem.toNumber() >= base) { - rem = rem.subtract(Kotlin.Long.fromInt(base)); - quotient = quotient.add(Kotlin.Long.fromInt(1)); - } - return toString_2(quotient, base) + toString_2(rem, base); - } - function ExperimentalUnsignedTypes() { - } - ExperimentalUnsignedTypes.$metadata$ = {kind: Kind_CLASS, simpleName: 'ExperimentalUnsignedTypes', interfaces: [Annotation]}; - var package$kotlin = _.kotlin || (_.kotlin = {}); - var package$collections = package$kotlin.collections || (package$kotlin.collections = {}); - package$collections.contains_mjy6jw$ = contains; - package$collections.contains_jlnu8a$ = contains_0; - package$collections.contains_s7ir3o$ = contains_1; - package$collections.contains_c03ot6$ = contains_2; - package$collections.contains_uxdaoa$ = contains_3; - package$collections.contains_omthmc$ = contains_4; - package$collections.contains_taaqy$ = contains_5; - package$collections.contains_yax8s4$ = contains_6; - package$collections.contains_o2f9me$ = contains_7; - package$collections.get_lastIndex_m7z4lg$ = get_lastIndex; - package$collections.get_lastIndex_964n91$ = get_lastIndex_0; - package$collections.get_lastIndex_i2lc79$ = get_lastIndex_1; - package$collections.get_lastIndex_tmsbgo$ = get_lastIndex_2; - package$collections.get_lastIndex_se6h4x$ = get_lastIndex_3; - package$collections.get_lastIndex_rjqryz$ = get_lastIndex_4; - package$collections.get_lastIndex_bvy38s$ = get_lastIndex_5; - package$collections.get_lastIndex_l1lu5t$ = get_lastIndex_6; - package$collections.get_lastIndex_355ntz$ = get_lastIndex_7; - package$collections.getOrNull_8ujjk8$ = getOrNull; - package$collections.getOrNull_mrm5p$ = getOrNull_0; - package$collections.getOrNull_m2jy6x$ = getOrNull_1; - package$collections.getOrNull_c03ot6$ = getOrNull_2; - package$collections.getOrNull_3aefkx$ = getOrNull_3; - package$collections.getOrNull_rblqex$ = getOrNull_4; - package$collections.getOrNull_xgrzbe$ = getOrNull_5; - package$collections.getOrNull_1qu12l$ = getOrNull_6; - package$collections.getOrNull_gtcw5h$ = getOrNull_7; - package$collections.firstOrNull_sfx99b$ = firstOrNull_8; - package$collections.firstOrNull_c3i447$ = firstOrNull_9; - package$collections.firstOrNull_247xw3$ = firstOrNull_10; - package$collections.firstOrNull_il4kyb$ = firstOrNull_11; - package$collections.firstOrNull_i1oc7r$ = firstOrNull_12; - package$collections.firstOrNull_u4nq1f$ = firstOrNull_13; - package$collections.firstOrNull_3vq27r$ = firstOrNull_14; - package$collections.firstOrNull_xffwn9$ = firstOrNull_15; - package$collections.firstOrNull_3ji0pj$ = firstOrNull_16; - package$collections.lastOrNull_sfx99b$ = lastOrNull_8; - package$collections.lastOrNull_c3i447$ = lastOrNull_9; - package$collections.lastOrNull_247xw3$ = lastOrNull_10; - package$collections.lastOrNull_il4kyb$ = lastOrNull_11; - package$collections.lastOrNull_i1oc7r$ = lastOrNull_12; - package$collections.lastOrNull_u4nq1f$ = lastOrNull_13; - package$collections.lastOrNull_3vq27r$ = lastOrNull_14; - package$collections.lastOrNull_xffwn9$ = lastOrNull_15; - package$collections.lastOrNull_3ji0pj$ = lastOrNull_16; - package$collections.first_us0mfu$ = first; - package$collections.first_964n91$ = first_0; - package$collections.first_i2lc79$ = first_1; - package$collections.first_tmsbgo$ = first_2; - package$collections.first_se6h4x$ = first_3; - package$collections.first_rjqryz$ = first_4; - package$collections.first_bvy38s$ = first_5; - package$collections.first_l1lu5t$ = first_6; - package$collections.first_355ntz$ = first_7; - package$collections.first_sfx99b$ = first_8; - package$collections.first_c3i447$ = first_9; - package$collections.first_247xw3$ = first_10; - package$collections.first_il4kyb$ = first_11; - package$collections.first_i1oc7r$ = first_12; - package$collections.first_u4nq1f$ = first_13; - package$collections.first_3vq27r$ = first_14; - package$collections.first_xffwn9$ = first_15; - package$collections.first_3ji0pj$ = first_16; - package$collections.firstOrNull_us0mfu$ = firstOrNull; - package$collections.firstOrNull_964n91$ = firstOrNull_0; - package$collections.firstOrNull_i2lc79$ = firstOrNull_1; - package$collections.firstOrNull_tmsbgo$ = firstOrNull_2; - package$collections.firstOrNull_se6h4x$ = firstOrNull_3; - package$collections.firstOrNull_rjqryz$ = firstOrNull_4; - package$collections.firstOrNull_bvy38s$ = firstOrNull_5; - package$collections.firstOrNull_l1lu5t$ = firstOrNull_6; - package$collections.firstOrNull_355ntz$ = firstOrNull_7; - package$collections.indexOf_mjy6jw$ = indexOf; - package$collections.indexOf_jlnu8a$ = indexOf_0; - package$collections.indexOf_s7ir3o$ = indexOf_1; - package$collections.indexOf_c03ot6$ = indexOf_2; - package$collections.indexOf_uxdaoa$ = indexOf_3; - package$collections.indexOf_omthmc$ = indexOf_4; - package$collections.indexOf_taaqy$ = indexOf_5; - package$collections.indexOf_yax8s4$ = indexOf_6; - package$collections.indexOf_o2f9me$ = indexOf_7; - package$collections.indexOfFirst_sfx99b$ = indexOfFirst; - package$collections.indexOfFirst_c3i447$ = indexOfFirst_0; - package$collections.indexOfFirst_247xw3$ = indexOfFirst_1; - package$collections.indexOfFirst_il4kyb$ = indexOfFirst_2; - package$collections.indexOfFirst_i1oc7r$ = indexOfFirst_3; - package$collections.indexOfFirst_u4nq1f$ = indexOfFirst_4; - package$collections.indexOfFirst_3vq27r$ = indexOfFirst_5; - package$collections.indexOfFirst_xffwn9$ = indexOfFirst_6; - package$collections.indexOfFirst_3ji0pj$ = indexOfFirst_7; - package$collections.get_indices_m7z4lg$ = get_indices; - var package$ranges = package$kotlin.ranges || (package$kotlin.ranges = {}); - package$ranges.reversed_zf1xzc$ = reversed_9; - package$collections.indexOfLast_sfx99b$ = indexOfLast; - package$collections.get_indices_964n91$ = get_indices_0; - package$collections.indexOfLast_c3i447$ = indexOfLast_0; - package$collections.get_indices_i2lc79$ = get_indices_1; - package$collections.indexOfLast_247xw3$ = indexOfLast_1; - package$collections.get_indices_tmsbgo$ = get_indices_2; - package$collections.indexOfLast_il4kyb$ = indexOfLast_2; - package$collections.get_indices_se6h4x$ = get_indices_3; - package$collections.indexOfLast_i1oc7r$ = indexOfLast_3; - package$collections.get_indices_rjqryz$ = get_indices_4; - package$collections.indexOfLast_u4nq1f$ = indexOfLast_4; - package$collections.get_indices_bvy38s$ = get_indices_5; - package$collections.indexOfLast_3vq27r$ = indexOfLast_5; - package$collections.get_indices_l1lu5t$ = get_indices_6; - package$collections.indexOfLast_xffwn9$ = indexOfLast_6; - package$collections.get_indices_355ntz$ = get_indices_7; - package$collections.indexOfLast_3ji0pj$ = indexOfLast_7; - package$collections.last_us0mfu$ = last; - package$collections.last_964n91$ = last_0; - package$collections.last_i2lc79$ = last_1; - package$collections.last_tmsbgo$ = last_2; - package$collections.last_se6h4x$ = last_3; - package$collections.last_rjqryz$ = last_4; - package$collections.last_bvy38s$ = last_5; - package$collections.last_l1lu5t$ = last_6; - package$collections.last_355ntz$ = last_7; - package$collections.last_sfx99b$ = last_8; - package$collections.last_c3i447$ = last_9; - package$collections.last_247xw3$ = last_10; - package$collections.last_il4kyb$ = last_11; - package$collections.last_i1oc7r$ = last_12; - package$collections.last_u4nq1f$ = last_13; - package$collections.last_3vq27r$ = last_14; - package$collections.last_xffwn9$ = last_15; - package$collections.last_3ji0pj$ = last_16; - package$collections.lastIndexOf_mjy6jw$ = lastIndexOf; - package$collections.lastIndexOf_jlnu8a$ = lastIndexOf_0; - package$collections.lastIndexOf_s7ir3o$ = lastIndexOf_1; - package$collections.lastIndexOf_c03ot6$ = lastIndexOf_2; - package$collections.lastIndexOf_uxdaoa$ = lastIndexOf_3; - package$collections.lastIndexOf_omthmc$ = lastIndexOf_4; - package$collections.lastIndexOf_taaqy$ = lastIndexOf_5; - package$collections.lastIndexOf_yax8s4$ = lastIndexOf_6; - package$collections.lastIndexOf_o2f9me$ = lastIndexOf_7; - package$collections.lastOrNull_us0mfu$ = lastOrNull; - package$collections.lastOrNull_964n91$ = lastOrNull_0; - package$collections.lastOrNull_i2lc79$ = lastOrNull_1; - package$collections.lastOrNull_tmsbgo$ = lastOrNull_2; - package$collections.lastOrNull_se6h4x$ = lastOrNull_3; - package$collections.lastOrNull_rjqryz$ = lastOrNull_4; - package$collections.lastOrNull_bvy38s$ = lastOrNull_5; - package$collections.lastOrNull_l1lu5t$ = lastOrNull_6; - package$collections.lastOrNull_355ntz$ = lastOrNull_7; - var package$random = package$kotlin.random || (package$kotlin.random = {}); - package$random.Random = Random; - package$collections.random_lj338n$ = random_8; - package$collections.random_ciead0$ = random_9; - package$collections.random_wayomy$ = random_10; - package$collections.random_os0q87$ = random_11; - package$collections.random_2uk8lc$ = random_12; - package$collections.random_zcvl96$ = random_13; - package$collections.random_k31a39$ = random_14; - package$collections.random_mwcbea$ = random_15; - package$collections.random_8kgqmy$ = random_16; - package$collections.single_us0mfu$ = single; - package$collections.single_964n91$ = single_0; - package$collections.single_i2lc79$ = single_1; - package$collections.single_tmsbgo$ = single_2; - package$collections.single_se6h4x$ = single_3; - package$collections.single_rjqryz$ = single_4; - package$collections.single_bvy38s$ = single_5; - package$collections.single_l1lu5t$ = single_6; - package$collections.single_355ntz$ = single_7; - package$kotlin.IllegalArgumentException_init_pdl1vj$ = IllegalArgumentException_init_0; - package$collections.single_sfx99b$ = single_8; - package$collections.single_c3i447$ = single_9; - package$collections.single_247xw3$ = single_10; - package$collections.single_il4kyb$ = single_11; - package$collections.single_i1oc7r$ = single_12; - package$collections.single_u4nq1f$ = single_13; - package$collections.single_3vq27r$ = single_14; - package$collections.single_xffwn9$ = single_15; - package$collections.single_3ji0pj$ = single_16; - package$collections.singleOrNull_us0mfu$ = singleOrNull; - package$collections.singleOrNull_964n91$ = singleOrNull_0; - package$collections.singleOrNull_i2lc79$ = singleOrNull_1; - package$collections.singleOrNull_tmsbgo$ = singleOrNull_2; - package$collections.singleOrNull_se6h4x$ = singleOrNull_3; - package$collections.singleOrNull_rjqryz$ = singleOrNull_4; - package$collections.singleOrNull_bvy38s$ = singleOrNull_5; - package$collections.singleOrNull_l1lu5t$ = singleOrNull_6; - package$collections.singleOrNull_355ntz$ = singleOrNull_7; - package$collections.singleOrNull_sfx99b$ = singleOrNull_8; - package$collections.singleOrNull_c3i447$ = singleOrNull_9; - package$collections.singleOrNull_247xw3$ = singleOrNull_10; - package$collections.singleOrNull_il4kyb$ = singleOrNull_11; - package$collections.singleOrNull_i1oc7r$ = singleOrNull_12; - package$collections.singleOrNull_u4nq1f$ = singleOrNull_13; - package$collections.singleOrNull_3vq27r$ = singleOrNull_14; - package$collections.singleOrNull_xffwn9$ = singleOrNull_15; - package$collections.singleOrNull_3ji0pj$ = singleOrNull_16; - package$collections.drop_8ujjk8$ = drop; - package$collections.drop_mrm5p$ = drop_0; - package$collections.drop_m2jy6x$ = drop_1; - package$collections.drop_c03ot6$ = drop_2; - package$collections.drop_3aefkx$ = drop_3; - package$collections.drop_rblqex$ = drop_4; - package$collections.drop_xgrzbe$ = drop_5; - package$collections.drop_1qu12l$ = drop_6; - package$collections.drop_gtcw5h$ = drop_7; - package$collections.dropLast_8ujjk8$ = dropLast; - package$collections.dropLast_mrm5p$ = dropLast_0; - package$collections.dropLast_m2jy6x$ = dropLast_1; - package$collections.dropLast_c03ot6$ = dropLast_2; - package$collections.dropLast_3aefkx$ = dropLast_3; - package$collections.dropLast_rblqex$ = dropLast_4; - package$collections.dropLast_xgrzbe$ = dropLast_5; - package$collections.dropLast_1qu12l$ = dropLast_6; - package$collections.dropLast_gtcw5h$ = dropLast_7; - package$collections.take_8ujjk8$ = take; - package$collections.emptyList_287e2$ = emptyList; - package$collections.dropLastWhile_sfx99b$ = dropLastWhile; - package$collections.take_mrm5p$ = take_0; - package$collections.dropLastWhile_c3i447$ = dropLastWhile_0; - package$collections.take_m2jy6x$ = take_1; - package$collections.dropLastWhile_247xw3$ = dropLastWhile_1; - package$collections.take_c03ot6$ = take_2; - package$collections.dropLastWhile_il4kyb$ = dropLastWhile_2; - package$collections.take_3aefkx$ = take_3; - package$collections.dropLastWhile_i1oc7r$ = dropLastWhile_3; - package$collections.take_rblqex$ = take_4; - package$collections.dropLastWhile_u4nq1f$ = dropLastWhile_4; - package$collections.take_xgrzbe$ = take_5; - package$collections.dropLastWhile_3vq27r$ = dropLastWhile_5; - package$collections.take_1qu12l$ = take_6; - package$collections.dropLastWhile_xffwn9$ = dropLastWhile_6; - package$collections.take_gtcw5h$ = take_7; - package$collections.dropLastWhile_3ji0pj$ = dropLastWhile_7; - package$collections.ArrayList_init_287e2$ = ArrayList_init; - package$collections.dropWhile_sfx99b$ = dropWhile; - package$collections.dropWhile_c3i447$ = dropWhile_0; - package$collections.dropWhile_247xw3$ = dropWhile_1; - package$collections.dropWhile_il4kyb$ = dropWhile_2; - package$collections.dropWhile_i1oc7r$ = dropWhile_3; - package$collections.dropWhile_u4nq1f$ = dropWhile_4; - package$collections.dropWhile_3vq27r$ = dropWhile_5; - package$collections.dropWhile_xffwn9$ = dropWhile_6; - package$collections.dropWhile_3ji0pj$ = dropWhile_7; - package$collections.filterTo_ywpv22$ = filterTo; - package$collections.filter_sfx99b$ = filter; - package$collections.filterTo_oqzfqb$ = filterTo_0; - package$collections.filter_c3i447$ = filter_0; - package$collections.filterTo_pth3ij$ = filterTo_1; - package$collections.filter_247xw3$ = filter_1; - package$collections.filterTo_fz4mzi$ = filterTo_2; - package$collections.filter_il4kyb$ = filter_2; - package$collections.filterTo_xddlih$ = filterTo_3; - package$collections.filter_i1oc7r$ = filter_3; - package$collections.filterTo_b4wiqz$ = filterTo_4; - package$collections.filter_u4nq1f$ = filter_4; - package$collections.filterTo_y6u45w$ = filterTo_5; - package$collections.filter_3vq27r$ = filter_5; - package$collections.filterTo_soq3qv$ = filterTo_6; - package$collections.filter_xffwn9$ = filter_6; - package$collections.filterTo_7as3in$ = filterTo_7; - package$collections.filter_3ji0pj$ = filter_7; - package$collections.filterIndexedTo_yy1162$ = filterIndexedTo; - package$collections.filterIndexed_1x1hc5$ = filterIndexed; - package$collections.filterIndexedTo_9utof$ = filterIndexedTo_0; - package$collections.filterIndexed_muebcr$ = filterIndexed_0; - package$collections.filterIndexedTo_9c7hyn$ = filterIndexedTo_1; - package$collections.filterIndexed_na3tu9$ = filterIndexed_1; - package$collections.filterIndexedTo_xxq4i$ = filterIndexedTo_2; - package$collections.filterIndexed_j54otz$ = filterIndexed_2; - package$collections.filterIndexedTo_sp77il$ = filterIndexedTo_3; - package$collections.filterIndexed_8y5rp7$ = filterIndexed_3; - package$collections.filterIndexedTo_1eenap$ = filterIndexedTo_4; - package$collections.filterIndexed_ngxnyp$ = filterIndexed_4; - package$collections.filterIndexedTo_a0ikl4$ = filterIndexedTo_5; - package$collections.filterIndexed_4abx9h$ = filterIndexed_5; - package$collections.filterIndexedTo_m16605$ = filterIndexedTo_6; - package$collections.filterIndexed_40mjvt$ = filterIndexed_6; - package$collections.filterIndexedTo_evsozx$ = filterIndexedTo_7; - package$collections.filterIndexed_es6ekl$ = filterIndexed_7; - package$collections.forEachIndexed_arhcu7$ = forEachIndexed; - package$collections.forEachIndexed_1b870r$ = forEachIndexed_0; - package$collections.forEachIndexed_2042pt$ = forEachIndexed_1; - package$collections.forEachIndexed_71hk2v$ = forEachIndexed_2; - package$collections.forEachIndexed_xp2l85$ = forEachIndexed_3; - package$collections.forEachIndexed_fd0uwv$ = forEachIndexed_4; - package$collections.forEachIndexed_fchhez$ = forEachIndexed_5; - package$collections.forEachIndexed_jzv3dz$ = forEachIndexed_6; - package$collections.forEachIndexed_u1r9l7$ = forEachIndexed_7; - package$collections.filterNotTo_ywpv22$ = filterNotTo; - package$collections.filterNot_sfx99b$ = filterNot; - package$collections.filterNotTo_oqzfqb$ = filterNotTo_0; - package$collections.filterNot_c3i447$ = filterNot_0; - package$collections.filterNotTo_pth3ij$ = filterNotTo_1; - package$collections.filterNot_247xw3$ = filterNot_1; - package$collections.filterNotTo_fz4mzi$ = filterNotTo_2; - package$collections.filterNot_il4kyb$ = filterNot_2; - package$collections.filterNotTo_xddlih$ = filterNotTo_3; - package$collections.filterNot_i1oc7r$ = filterNot_3; - package$collections.filterNotTo_b4wiqz$ = filterNotTo_4; - package$collections.filterNot_u4nq1f$ = filterNot_4; - package$collections.filterNotTo_y6u45w$ = filterNotTo_5; - package$collections.filterNot_3vq27r$ = filterNot_5; - package$collections.filterNotTo_soq3qv$ = filterNotTo_6; - package$collections.filterNot_xffwn9$ = filterNot_6; - package$collections.filterNotTo_7as3in$ = filterNotTo_7; - package$collections.filterNot_3ji0pj$ = filterNot_7; - package$collections.filterNotNull_emfgvx$ = filterNotNull; - package$collections.filterNotNullTo_hhiqfl$ = filterNotNullTo; - package$collections.slice_l0m14x$ = slice; - package$collections.slice_dww5cs$ = slice_0; - package$collections.slice_stgke$ = slice_1; - package$collections.slice_bo8l67$ = slice_2; - package$collections.slice_renlpk$ = slice_3; - package$collections.slice_l0yznm$ = slice_4; - package$collections.slice_eezeoj$ = slice_5; - package$collections.slice_99nmd2$ = slice_6; - package$collections.slice_bq4su$ = slice_7; - package$collections.slice_ojs19h$ = slice_8; - package$collections.slice_9qpjb4$ = slice_9; - package$collections.slice_uttdbu$ = slice_10; - package$collections.slice_e3izir$ = slice_11; - package$collections.slice_b97tkk$ = slice_12; - package$collections.slice_43gn6u$ = slice_13; - package$collections.slice_tsyzex$ = slice_14; - package$collections.slice_5rv4nu$ = slice_15; - package$collections.slice_f1e7g2$ = slice_16; - package$collections.sliceArray_fzrmze$ = sliceArray; - package$collections.sliceArray_c5a9lg$ = sliceArray_0; - package$collections.sliceArray_w9izwu$ = sliceArray_1; - package$collections.sliceArray_q1yphb$ = sliceArray_2; - package$collections.sliceArray_ofyxrs$ = sliceArray_3; - package$collections.sliceArray_3hmy1e$ = sliceArray_4; - package$collections.sliceArray_rv5q3n$ = sliceArray_5; - package$collections.sliceArray_ht9wl6$ = sliceArray_6; - package$collections.sliceArray_6pwjvi$ = sliceArray_7; - package$collections.sliceArray_8r7b3e$ = sliceArray_8; - package$collections.sliceArray_dww5cs$ = sliceArray_9; - package$collections.sliceArray_stgke$ = sliceArray_10; - package$collections.sliceArray_bo8l67$ = sliceArray_11; - package$collections.sliceArray_renlpk$ = sliceArray_12; - package$collections.sliceArray_l0yznm$ = sliceArray_13; - package$collections.sliceArray_eezeoj$ = sliceArray_14; - package$collections.sliceArray_99nmd2$ = sliceArray_15; - package$collections.sliceArray_bq4su$ = sliceArray_16; - package$collections.takeLast_8ujjk8$ = takeLast; - package$collections.takeLast_mrm5p$ = takeLast_0; - package$collections.takeLast_m2jy6x$ = takeLast_1; - package$collections.takeLast_c03ot6$ = takeLast_2; - package$collections.takeLast_3aefkx$ = takeLast_3; - package$collections.takeLast_rblqex$ = takeLast_4; - package$collections.takeLast_xgrzbe$ = takeLast_5; - package$collections.takeLast_1qu12l$ = takeLast_6; - package$collections.takeLast_gtcw5h$ = takeLast_7; - package$collections.toList_us0mfu$ = toList; - package$collections.takeLastWhile_sfx99b$ = takeLastWhile; - package$collections.toList_964n91$ = toList_0; - package$collections.takeLastWhile_c3i447$ = takeLastWhile_0; - package$collections.toList_i2lc79$ = toList_1; - package$collections.takeLastWhile_247xw3$ = takeLastWhile_1; - package$collections.toList_tmsbgo$ = toList_2; - package$collections.takeLastWhile_il4kyb$ = takeLastWhile_2; - package$collections.toList_se6h4x$ = toList_3; - package$collections.takeLastWhile_i1oc7r$ = takeLastWhile_3; - package$collections.toList_rjqryz$ = toList_4; - package$collections.takeLastWhile_u4nq1f$ = takeLastWhile_4; - package$collections.toList_bvy38s$ = toList_5; - package$collections.takeLastWhile_3vq27r$ = takeLastWhile_5; - package$collections.toList_l1lu5t$ = toList_6; - package$collections.takeLastWhile_xffwn9$ = takeLastWhile_6; - package$collections.toList_355ntz$ = toList_7; - package$collections.takeLastWhile_3ji0pj$ = takeLastWhile_7; - package$collections.takeWhile_sfx99b$ = takeWhile; - package$collections.takeWhile_c3i447$ = takeWhile_0; - package$collections.takeWhile_247xw3$ = takeWhile_1; - package$collections.takeWhile_il4kyb$ = takeWhile_2; - package$collections.takeWhile_i1oc7r$ = takeWhile_3; - package$collections.takeWhile_u4nq1f$ = takeWhile_4; - package$collections.takeWhile_3vq27r$ = takeWhile_5; - package$collections.takeWhile_xffwn9$ = takeWhile_6; - package$collections.takeWhile_3ji0pj$ = takeWhile_7; - package$collections.reverse_4b5429$ = reverse; - package$collections.reverse_964n91$ = reverse_0; - package$collections.reverse_i2lc79$ = reverse_1; - package$collections.reverse_tmsbgo$ = reverse_2; - package$collections.reverse_se6h4x$ = reverse_3; - package$collections.reverse_rjqryz$ = reverse_4; - package$collections.reverse_bvy38s$ = reverse_5; - package$collections.reverse_l1lu5t$ = reverse_6; - package$collections.reverse_355ntz$ = reverse_7; - package$collections.reversed_us0mfu$ = reversed; - package$collections.reversed_964n91$ = reversed_0; - package$collections.reversed_i2lc79$ = reversed_1; - package$collections.reversed_tmsbgo$ = reversed_2; - package$collections.reversed_se6h4x$ = reversed_3; - package$collections.reversed_rjqryz$ = reversed_4; - package$collections.reversed_bvy38s$ = reversed_5; - package$collections.reversed_l1lu5t$ = reversed_6; - package$collections.reversed_355ntz$ = reversed_7; - package$collections.reversedArray_4b5429$ = reversedArray; - package$collections.reversedArray_964n91$ = reversedArray_0; - package$collections.reversedArray_i2lc79$ = reversedArray_1; - package$collections.reversedArray_tmsbgo$ = reversedArray_2; - package$collections.reversedArray_se6h4x$ = reversedArray_3; - package$collections.reversedArray_rjqryz$ = reversedArray_4; - package$collections.reversedArray_bvy38s$ = reversedArray_5; - package$collections.reversedArray_l1lu5t$ = reversedArray_6; - package$collections.reversedArray_355ntz$ = reversedArray_7; - package$collections.sortWith_iwcb0m$ = sortWith; - package$collections.sortBy_99hh6x$ = sortBy; - package$collections.sortByDescending_99hh6x$ = sortByDescending; - package$collections.sortDescending_pbinho$ = sortDescending; - package$collections.sortDescending_964n91$ = sortDescending_0; - package$collections.sortDescending_i2lc79$ = sortDescending_1; - package$collections.sortDescending_tmsbgo$ = sortDescending_2; - package$collections.sortDescending_se6h4x$ = sortDescending_3; - package$collections.sortDescending_rjqryz$ = sortDescending_4; - package$collections.sortDescending_bvy38s$ = sortDescending_5; - package$collections.sortDescending_355ntz$ = sortDescending_6; - package$collections.sorted_pbinho$ = sorted; - package$collections.sorted_964n91$ = sorted_0; - package$collections.sorted_i2lc79$ = sorted_1; - package$collections.sorted_tmsbgo$ = sorted_2; - package$collections.sorted_se6h4x$ = sorted_3; - package$collections.sorted_rjqryz$ = sorted_4; - package$collections.sorted_bvy38s$ = sorted_5; - package$collections.sorted_355ntz$ = sorted_6; - package$collections.sortedArray_j2hqw1$ = sortedArray; - package$collections.sortedArray_964n91$ = sortedArray_0; - package$collections.sortedArray_i2lc79$ = sortedArray_1; - package$collections.sortedArray_tmsbgo$ = sortedArray_2; - package$collections.sortedArray_se6h4x$ = sortedArray_3; - package$collections.sortedArray_rjqryz$ = sortedArray_4; - package$collections.sortedArray_bvy38s$ = sortedArray_5; - package$collections.sortedArray_355ntz$ = sortedArray_6; - package$collections.sortedArrayDescending_j2hqw1$ = sortedArrayDescending; - package$collections.sortedArrayDescending_964n91$ = sortedArrayDescending_0; - package$collections.sortedArrayDescending_i2lc79$ = sortedArrayDescending_1; - package$collections.sortedArrayDescending_tmsbgo$ = sortedArrayDescending_2; - package$collections.sortedArrayDescending_se6h4x$ = sortedArrayDescending_3; - package$collections.sortedArrayDescending_rjqryz$ = sortedArrayDescending_4; - package$collections.sortedArrayDescending_bvy38s$ = sortedArrayDescending_5; - package$collections.sortedArrayDescending_355ntz$ = sortedArrayDescending_6; - package$collections.sortedArrayWith_iwcb0m$ = sortedArrayWith; - package$collections.sortedWith_iwcb0m$ = sortedWith; - package$collections.sortedBy_99hh6x$ = sortedBy; - package$collections.sortedWith_movtv6$ = sortedWith_0; - package$collections.sortedBy_jirwv8$ = sortedBy_0; - package$collections.sortedWith_u08rls$ = sortedWith_1; - package$collections.sortedBy_p0tdr4$ = sortedBy_1; - package$collections.sortedWith_rsw9pc$ = sortedWith_2; - package$collections.sortedBy_30vlmi$ = sortedBy_2; - package$collections.sortedWith_wqwa2y$ = sortedWith_3; - package$collections.sortedBy_hom4ws$ = sortedBy_3; - package$collections.sortedWith_1sg7gg$ = sortedWith_4; - package$collections.sortedBy_ksd00w$ = sortedBy_4; - package$collections.sortedWith_jucva8$ = sortedWith_5; - package$collections.sortedBy_fvpt30$ = sortedBy_5; - package$collections.sortedWith_7ffj0g$ = sortedWith_6; - package$collections.sortedBy_xt360o$ = sortedBy_6; - package$collections.sortedWith_7ncb86$ = sortedWith_7; - package$collections.sortedBy_epurks$ = sortedBy_7; - package$collections.sortedByDescending_99hh6x$ = sortedByDescending; - package$collections.sortedByDescending_jirwv8$ = sortedByDescending_0; - package$collections.sortedByDescending_p0tdr4$ = sortedByDescending_1; - package$collections.sortedByDescending_30vlmi$ = sortedByDescending_2; - package$collections.sortedByDescending_hom4ws$ = sortedByDescending_3; - package$collections.sortedByDescending_ksd00w$ = sortedByDescending_4; - package$collections.sortedByDescending_fvpt30$ = sortedByDescending_5; - package$collections.sortedByDescending_xt360o$ = sortedByDescending_6; - package$collections.sortedByDescending_epurks$ = sortedByDescending_7; - package$collections.sortedDescending_pbinho$ = sortedDescending; - package$collections.sortedDescending_964n91$ = sortedDescending_0; - package$collections.sortedDescending_i2lc79$ = sortedDescending_1; - package$collections.sortedDescending_tmsbgo$ = sortedDescending_2; - package$collections.sortedDescending_se6h4x$ = sortedDescending_3; - package$collections.sortedDescending_rjqryz$ = sortedDescending_4; - package$collections.sortedDescending_bvy38s$ = sortedDescending_5; - package$collections.sortedDescending_355ntz$ = sortedDescending_6; - package$collections.toBooleanArray_xbflon$ = toBooleanArray; - package$collections.toByteArray_vn5r1x$ = toByteArray; - package$collections.toCharArray_vfshuv$ = toCharArray; - package$collections.toDoubleArray_pnorak$ = toDoubleArray; - package$collections.toFloatArray_529xol$ = toFloatArray; - package$collections.toIntArray_5yd9ji$ = toIntArray; - package$collections.toLongArray_r2b9hd$ = toLongArray; - package$collections.toShortArray_t8c1id$ = toShortArray; - package$collections.mapCapacity_za3lpa$ = mapCapacity; - package$ranges.coerceAtLeast_dqglrj$ = coerceAtLeast_2; - package$collections.LinkedHashMap_init_bwtc7$ = LinkedHashMap_init_2; - package$collections.associateTo_t6a58$ = associateTo; - package$collections.associate_51p84z$ = associate; - package$collections.associateTo_30k0gw$ = associateTo_0; - package$collections.associate_hllm27$ = associate_0; - package$collections.associateTo_pdwiok$ = associateTo_1; - package$collections.associate_21tl2r$ = associate_1; - package$collections.associateTo_yjydda$ = associateTo_2; - package$collections.associate_ff74x3$ = associate_2; - package$collections.associateTo_o9od0g$ = associateTo_3; - package$collections.associate_d7c9rj$ = associate_3; - package$collections.associateTo_642zho$ = associateTo_4; - package$collections.associate_ddcx1p$ = associate_4; - package$collections.associateTo_t00y2o$ = associateTo_5; - package$collections.associate_neh4lr$ = associate_5; - package$collections.associateTo_l2eg58$ = associateTo_6; - package$collections.associate_su3lit$ = associate_6; - package$collections.associateTo_7k1sps$ = associateTo_7; - package$collections.associate_2m77bl$ = associate_7; - package$collections.associateByTo_jnbl5d$ = associateByTo; - package$collections.associateBy_73x53s$ = associateBy; - package$collections.associateByTo_6rsi3p$ = associateByTo_0; - package$collections.associateBy_i1orpu$ = associateBy_0; - package$collections.associateByTo_mvhbwl$ = associateByTo_1; - package$collections.associateBy_2yxo7i$ = associateBy_1; - package$collections.associateByTo_jk03w$ = associateByTo_2; - package$collections.associateBy_vhfi20$ = associateBy_2; - package$collections.associateByTo_fajp69$ = associateByTo_3; - package$collections.associateBy_oifiz6$ = associateBy_3; - package$collections.associateByTo_z2kljv$ = associateByTo_4; - package$collections.associateBy_5k9h5a$ = associateBy_4; - package$collections.associateByTo_s8dkm4$ = associateByTo_5; - package$collections.associateBy_hbdsc2$ = associateBy_5; - package$collections.associateByTo_ro4olb$ = associateByTo_6; - package$collections.associateBy_8oadti$ = associateBy_6; - package$collections.associateByTo_deafr$ = associateByTo_7; - package$collections.associateBy_pmkh76$ = associateBy_7; - package$collections.associateByTo_8rzqwv$ = associateByTo_8; - package$collections.associateBy_67lihi$ = associateBy_8; - package$collections.associateByTo_cne8q6$ = associateByTo_9; - package$collections.associateBy_prlkfp$ = associateBy_9; - package$collections.associateByTo_gcgqha$ = associateByTo_10; - package$collections.associateBy_emzy0b$ = associateBy_10; - package$collections.associateByTo_snsha9$ = associateByTo_11; - package$collections.associateBy_5wtufc$ = associateBy_11; - package$collections.associateByTo_ryii4m$ = associateByTo_12; - package$collections.associateBy_hq1329$ = associateBy_12; - package$collections.associateByTo_6a7lri$ = associateByTo_13; - package$collections.associateBy_jjomwl$ = associateBy_13; - package$collections.associateByTo_lxofut$ = associateByTo_14; - package$collections.associateBy_bvjqb8$ = associateBy_14; - package$collections.associateByTo_u9h8ze$ = associateByTo_15; - package$collections.associateBy_hxvtq7$ = associateBy_15; - package$collections.associateByTo_u7k4io$ = associateByTo_16; - package$collections.associateBy_nlw5ll$ = associateBy_16; - package$collections.toCollection_5n4o2z$ = toCollection; - package$collections.toCollection_iu3dad$ = toCollection_0; - package$collections.toCollection_wvb8kp$ = toCollection_1; - package$collections.toCollection_u9aek7$ = toCollection_2; - package$collections.toCollection_j1hzal$ = toCollection_3; - package$collections.toCollection_tkc3iv$ = toCollection_4; - package$collections.toCollection_hivqqf$ = toCollection_5; - package$collections.toCollection_v35pav$ = toCollection_6; - package$collections.toCollection_qezmjj$ = toCollection_7; - package$collections.toHashSet_us0mfu$ = toHashSet; - package$collections.toHashSet_964n91$ = toHashSet_0; - package$collections.toHashSet_i2lc79$ = toHashSet_1; - package$collections.toHashSet_tmsbgo$ = toHashSet_2; - package$collections.toHashSet_se6h4x$ = toHashSet_3; - package$collections.toHashSet_rjqryz$ = toHashSet_4; - package$collections.toHashSet_bvy38s$ = toHashSet_5; - package$collections.toHashSet_l1lu5t$ = toHashSet_6; - package$collections.toHashSet_355ntz$ = toHashSet_7; - package$collections.toMutableList_us0mfu$ = toMutableList; - package$collections.toMutableList_964n91$ = toMutableList_0; - package$collections.toMutableList_i2lc79$ = toMutableList_1; - package$collections.toMutableList_tmsbgo$ = toMutableList_2; - package$collections.toMutableList_se6h4x$ = toMutableList_3; - package$collections.toMutableList_rjqryz$ = toMutableList_4; - package$collections.toMutableList_bvy38s$ = toMutableList_5; - package$collections.toMutableList_l1lu5t$ = toMutableList_6; - package$collections.toMutableList_355ntz$ = toMutableList_7; - package$collections.toSet_us0mfu$ = toSet; - package$collections.toSet_964n91$ = toSet_0; - package$collections.toSet_i2lc79$ = toSet_1; - package$collections.toSet_tmsbgo$ = toSet_2; - package$collections.toSet_se6h4x$ = toSet_3; - package$collections.toSet_rjqryz$ = toSet_4; - package$collections.toSet_bvy38s$ = toSet_5; - package$collections.toSet_l1lu5t$ = toSet_6; - package$collections.toSet_355ntz$ = toSet_7; - package$collections.flatMapTo_qpz03$ = flatMapTo; - package$collections.flatMap_m96iup$ = flatMap; - package$collections.flatMapTo_hrglhs$ = flatMapTo_0; - package$collections.flatMap_7g5j6z$ = flatMap_0; - package$collections.flatMapTo_9q2ddu$ = flatMapTo_1; - package$collections.flatMap_2azm6x$ = flatMap_1; - package$collections.flatMapTo_ae7k4k$ = flatMapTo_2; - package$collections.flatMap_k7x5xb$ = flatMap_2; - package$collections.flatMapTo_6h8o5s$ = flatMapTo_3; - package$collections.flatMap_jv6p05$ = flatMap_3; - package$collections.flatMapTo_fngh32$ = flatMapTo_4; - package$collections.flatMap_a6ay1l$ = flatMap_4; - package$collections.flatMapTo_53zyz4$ = flatMapTo_5; - package$collections.flatMap_kx9v79$ = flatMap_5; - package$collections.flatMapTo_9hj6lm$ = flatMapTo_6; - package$collections.flatMap_io4c5r$ = flatMap_6; - package$collections.flatMapTo_5s36kw$ = flatMapTo_7; - package$collections.flatMap_m4binf$ = flatMap_7; - package$collections.addAll_ipc267$ = addAll; - package$collections.LinkedHashMap_init_q3lmfv$ = LinkedHashMap_init; - package$collections.groupByTo_1qxbxg$ = groupByTo; - package$collections.groupBy_73x53s$ = groupBy; - package$collections.groupByTo_6kmz48$ = groupByTo_0; - package$collections.groupBy_i1orpu$ = groupBy_0; - package$collections.groupByTo_bo8r4m$ = groupByTo_1; - package$collections.groupBy_2yxo7i$ = groupBy_1; - package$collections.groupByTo_q1iim5$ = groupByTo_2; - package$collections.groupBy_vhfi20$ = groupBy_2; - package$collections.groupByTo_mu2a4k$ = groupByTo_3; - package$collections.groupBy_oifiz6$ = groupBy_3; - package$collections.groupByTo_x0uw5m$ = groupByTo_4; - package$collections.groupBy_5k9h5a$ = groupBy_4; - package$collections.groupByTo_xcz1ip$ = groupByTo_5; - package$collections.groupBy_hbdsc2$ = groupBy_5; - package$collections.groupByTo_mrd1pq$ = groupByTo_6; - package$collections.groupBy_8oadti$ = groupBy_6; - package$collections.groupByTo_axxeqe$ = groupByTo_7; - package$collections.groupBy_pmkh76$ = groupBy_7; - package$collections.groupByTo_ha2xv2$ = groupByTo_8; - package$collections.groupBy_67lihi$ = groupBy_8; - package$collections.groupByTo_lnembp$ = groupByTo_9; - package$collections.groupBy_prlkfp$ = groupBy_9; - package$collections.groupByTo_n3jh2d$ = groupByTo_10; - package$collections.groupBy_emzy0b$ = groupBy_10; - package$collections.groupByTo_ted19q$ = groupByTo_11; - package$collections.groupBy_5wtufc$ = groupBy_11; - package$collections.groupByTo_bzm9l3$ = groupByTo_12; - package$collections.groupBy_hq1329$ = groupBy_12; - package$collections.groupByTo_4auzph$ = groupByTo_13; - package$collections.groupBy_jjomwl$ = groupBy_13; - package$collections.groupByTo_akngni$ = groupByTo_14; - package$collections.groupBy_bvjqb8$ = groupBy_14; - package$collections.groupByTo_au1frb$ = groupByTo_15; - package$collections.groupBy_hxvtq7$ = groupBy_15; - package$collections.groupByTo_cmmt3n$ = groupByTo_16; - package$collections.groupBy_nlw5ll$ = groupBy_16; - package$collections.getOrPut_9wl75a$ = getOrPut; - package$collections.Grouping = Grouping; - package$collections.groupingBy_73x53s$ = groupingBy; - package$collections.ArrayList_init_ww73n8$ = ArrayList_init_0; - package$collections.mapTo_4g4n0c$ = mapTo; - package$collections.map_73x53s$ = map; - package$collections.mapTo_lvjep5$ = mapTo_0; - package$collections.map_i1orpu$ = map_0; - package$collections.mapTo_jtf97t$ = mapTo_1; - package$collections.map_2yxo7i$ = map_1; - package$collections.mapTo_18cmir$ = mapTo_2; - package$collections.map_vhfi20$ = map_2; - package$collections.mapTo_6e2q1j$ = mapTo_3; - package$collections.map_oifiz6$ = map_3; - package$collections.mapTo_jpuhm1$ = mapTo_4; - package$collections.map_5k9h5a$ = map_4; - package$collections.mapTo_u2n9ft$ = mapTo_5; - package$collections.map_hbdsc2$ = map_5; - package$collections.mapTo_jrz1ox$ = mapTo_6; - package$collections.map_8oadti$ = map_6; - package$collections.mapTo_bsh7dj$ = mapTo_7; - package$collections.map_pmkh76$ = map_7; - package$collections.mapIndexedTo_d8bv34$ = mapIndexedTo; - package$collections.mapIndexed_d05wzo$ = mapIndexed; - package$collections.mapIndexedTo_797pmj$ = mapIndexedTo_0; - package$collections.mapIndexed_b1mzcm$ = mapIndexed_0; - package$collections.mapIndexedTo_5akchx$ = mapIndexedTo_1; - package$collections.mapIndexed_17cht6$ = mapIndexed_1; - package$collections.mapIndexedTo_ey1r33$ = mapIndexedTo_2; - package$collections.mapIndexed_n9l81o$ = mapIndexed_2; - package$collections.mapIndexedTo_yqgxdn$ = mapIndexedTo_3; - package$collections.mapIndexed_6hpo96$ = mapIndexed_3; - package$collections.mapIndexedTo_3uie0r$ = mapIndexedTo_4; - package$collections.mapIndexed_xqj56$ = mapIndexed_4; - package$collections.mapIndexedTo_3zacuz$ = mapIndexedTo_5; - package$collections.mapIndexed_623t7u$ = mapIndexed_5; - package$collections.mapIndexedTo_r9wz1$ = mapIndexedTo_6; - package$collections.mapIndexed_tk88gi$ = mapIndexed_6; - package$collections.mapIndexedTo_d11l8l$ = mapIndexedTo_7; - package$collections.mapIndexed_8r1kga$ = mapIndexed_7; - package$collections.mapIndexedNotNullTo_97f7ib$ = mapIndexedNotNullTo; - package$collections.mapIndexedNotNull_aytly7$ = mapIndexedNotNull; - package$collections.mapNotNullTo_cni40x$ = mapNotNullTo; - package$collections.mapNotNull_oxs7gb$ = mapNotNull; - package$collections.forEach_je628z$ = forEach; - package$collections.withIndex_us0mfu$ = withIndex; - package$collections.withIndex_964n91$ = withIndex_0; - package$collections.withIndex_i2lc79$ = withIndex_1; - package$collections.withIndex_tmsbgo$ = withIndex_2; - package$collections.withIndex_se6h4x$ = withIndex_3; - package$collections.withIndex_rjqryz$ = withIndex_4; - package$collections.withIndex_bvy38s$ = withIndex_5; - package$collections.withIndex_l1lu5t$ = withIndex_6; - package$collections.withIndex_355ntz$ = withIndex_7; - package$collections.distinct_us0mfu$ = distinct; - package$collections.distinct_964n91$ = distinct_0; - package$collections.distinct_i2lc79$ = distinct_1; - package$collections.distinct_tmsbgo$ = distinct_2; - package$collections.distinct_se6h4x$ = distinct_3; - package$collections.distinct_rjqryz$ = distinct_4; - package$collections.distinct_bvy38s$ = distinct_5; - package$collections.distinct_l1lu5t$ = distinct_6; - package$collections.distinct_355ntz$ = distinct_7; - package$collections.HashSet_init_287e2$ = HashSet_init; - package$collections.distinctBy_73x53s$ = distinctBy; - package$collections.distinctBy_i1orpu$ = distinctBy_0; - package$collections.distinctBy_2yxo7i$ = distinctBy_1; - package$collections.distinctBy_vhfi20$ = distinctBy_2; - package$collections.distinctBy_oifiz6$ = distinctBy_3; - package$collections.distinctBy_5k9h5a$ = distinctBy_4; - package$collections.distinctBy_hbdsc2$ = distinctBy_5; - package$collections.distinctBy_8oadti$ = distinctBy_6; - package$collections.distinctBy_pmkh76$ = distinctBy_7; - package$collections.intersect_fe0ubx$ = intersect; - package$collections.intersect_hrvwcl$ = intersect_0; - package$collections.intersect_ao5c0d$ = intersect_1; - package$collections.intersect_e3izir$ = intersect_2; - package$collections.intersect_665vtv$ = intersect_3; - package$collections.intersect_v6evar$ = intersect_4; - package$collections.intersect_prhtir$ = intersect_5; - package$collections.intersect_s6pdl9$ = intersect_6; - package$collections.intersect_ux50q1$ = intersect_7; - package$collections.subtract_fe0ubx$ = subtract; - package$collections.subtract_hrvwcl$ = subtract_0; - package$collections.subtract_ao5c0d$ = subtract_1; - package$collections.subtract_e3izir$ = subtract_2; - package$collections.subtract_665vtv$ = subtract_3; - package$collections.subtract_v6evar$ = subtract_4; - package$collections.subtract_prhtir$ = subtract_5; - package$collections.subtract_s6pdl9$ = subtract_6; - package$collections.subtract_ux50q1$ = subtract_7; - package$collections.toMutableSet_us0mfu$ = toMutableSet; - package$collections.toMutableSet_964n91$ = toMutableSet_0; - package$collections.toMutableSet_i2lc79$ = toMutableSet_1; - package$collections.toMutableSet_tmsbgo$ = toMutableSet_2; - package$collections.toMutableSet_se6h4x$ = toMutableSet_3; - package$collections.toMutableSet_rjqryz$ = toMutableSet_4; - package$collections.toMutableSet_bvy38s$ = toMutableSet_5; - package$collections.toMutableSet_l1lu5t$ = toMutableSet_6; - package$collections.toMutableSet_355ntz$ = toMutableSet_7; - package$collections.union_fe0ubx$ = union; - package$collections.union_hrvwcl$ = union_0; - package$collections.union_ao5c0d$ = union_1; - package$collections.union_e3izir$ = union_2; - package$collections.union_665vtv$ = union_3; - package$collections.union_v6evar$ = union_4; - package$collections.union_prhtir$ = union_5; - package$collections.union_s6pdl9$ = union_6; - package$collections.union_ux50q1$ = union_7; - package$collections.all_sfx99b$ = all; - package$collections.all_c3i447$ = all_0; - package$collections.all_247xw3$ = all_1; - package$collections.all_il4kyb$ = all_2; - package$collections.all_i1oc7r$ = all_3; - package$collections.all_u4nq1f$ = all_4; - package$collections.all_3vq27r$ = all_5; - package$collections.all_xffwn9$ = all_6; - package$collections.all_3ji0pj$ = all_7; - package$collections.any_us0mfu$ = any; - package$collections.any_964n91$ = any_0; - package$collections.any_i2lc79$ = any_1; - package$collections.any_tmsbgo$ = any_2; - package$collections.any_se6h4x$ = any_3; - package$collections.any_rjqryz$ = any_4; - package$collections.any_bvy38s$ = any_5; - package$collections.any_l1lu5t$ = any_6; - package$collections.any_355ntz$ = any_7; - package$collections.any_sfx99b$ = any_8; - package$collections.any_c3i447$ = any_9; - package$collections.any_247xw3$ = any_10; - package$collections.any_il4kyb$ = any_11; - package$collections.any_i1oc7r$ = any_12; - package$collections.any_u4nq1f$ = any_13; - package$collections.any_3vq27r$ = any_14; - package$collections.any_xffwn9$ = any_15; - package$collections.any_3ji0pj$ = any_16; - package$collections.count_sfx99b$ = count_8; - package$collections.count_c3i447$ = count_9; - package$collections.count_247xw3$ = count_10; - package$collections.count_il4kyb$ = count_11; - package$collections.count_i1oc7r$ = count_12; - package$collections.count_u4nq1f$ = count_13; - package$collections.count_3vq27r$ = count_14; - package$collections.count_xffwn9$ = count_15; - package$collections.count_3ji0pj$ = count_16; - package$collections.fold_agj4oo$ = fold; - package$collections.fold_fl151e$ = fold_0; - package$collections.fold_9nnzbm$ = fold_1; - package$collections.fold_sgag36$ = fold_2; - package$collections.fold_sc6mze$ = fold_3; - package$collections.fold_fnzdea$ = fold_4; - package$collections.fold_mnppu8$ = fold_5; - package$collections.fold_43zc0i$ = fold_6; - package$collections.fold_8nwlk6$ = fold_7; - package$collections.foldIndexed_oj0mn0$ = foldIndexed; - package$collections.foldIndexed_qzmh7i$ = foldIndexed_0; - package$collections.foldIndexed_aijnee$ = foldIndexed_1; - package$collections.foldIndexed_28ylm2$ = foldIndexed_2; - package$collections.foldIndexed_37s2ie$ = foldIndexed_3; - package$collections.foldIndexed_faee2y$ = foldIndexed_4; - package$collections.foldIndexed_ufoyfg$ = foldIndexed_5; - package$collections.foldIndexed_z82r06$ = foldIndexed_6; - package$collections.foldIndexed_sfak8u$ = foldIndexed_7; - package$collections.foldRight_svmc2u$ = foldRight; - package$collections.foldRight_wssfls$ = foldRight_0; - package$collections.foldRight_9ug2j2$ = foldRight_1; - package$collections.foldRight_8vbxp4$ = foldRight_2; - package$collections.foldRight_1fuzy8$ = foldRight_3; - package$collections.foldRight_lsgf76$ = foldRight_4; - package$collections.foldRight_v5l2cg$ = foldRight_5; - package$collections.foldRight_ej6ng6$ = foldRight_6; - package$collections.foldRight_i7w5ds$ = foldRight_7; - package$collections.foldRightIndexed_et4u4i$ = foldRightIndexed; - package$collections.foldRightIndexed_le73fo$ = foldRightIndexed_0; - package$collections.foldRightIndexed_8zkega$ = foldRightIndexed_1; - package$collections.foldRightIndexed_ltx404$ = foldRightIndexed_2; - package$collections.foldRightIndexed_qk9kf8$ = foldRightIndexed_3; - package$collections.foldRightIndexed_95xca2$ = foldRightIndexed_4; - package$collections.foldRightIndexed_lxtlx8$ = foldRightIndexed_5; - package$collections.foldRightIndexed_gkwrji$ = foldRightIndexed_6; - package$collections.foldRightIndexed_ivb0f8$ = foldRightIndexed_7; - package$collections.forEach_l09evt$ = forEach_0; - package$collections.forEach_q32uhv$ = forEach_1; - package$collections.forEach_4l7qrh$ = forEach_2; - package$collections.forEach_j4vz15$ = forEach_3; - package$collections.forEach_w9sc9v$ = forEach_4; - package$collections.forEach_txsb7r$ = forEach_5; - package$collections.forEach_g04iob$ = forEach_6; - package$collections.forEach_kxoc7t$ = forEach_7; - package$collections.max_pnorak$ = max; - package$collections.max_529xol$ = max_0; - package$collections.max_pbinho$ = max_1; - package$collections.max_964n91$ = max_2; - package$collections.max_i2lc79$ = max_3; - package$collections.max_tmsbgo$ = max_4; - package$collections.max_se6h4x$ = max_5; - package$collections.max_rjqryz$ = max_6; - package$collections.max_bvy38s$ = max_7; - package$collections.max_355ntz$ = max_8; - package$collections.maxBy_99hh6x$ = maxBy; - package$collections.maxBy_jirwv8$ = maxBy_0; - package$collections.maxBy_p0tdr4$ = maxBy_1; - package$collections.maxBy_30vlmi$ = maxBy_2; - package$collections.maxBy_hom4ws$ = maxBy_3; - package$collections.maxBy_ksd00w$ = maxBy_4; - package$collections.maxBy_fvpt30$ = maxBy_5; - package$collections.maxBy_xt360o$ = maxBy_6; - package$collections.maxBy_epurks$ = maxBy_7; - package$collections.maxWith_iwcb0m$ = maxWith; - package$collections.maxWith_movtv6$ = maxWith_0; - package$collections.maxWith_u08rls$ = maxWith_1; - package$collections.maxWith_rsw9pc$ = maxWith_2; - package$collections.maxWith_wqwa2y$ = maxWith_3; - package$collections.maxWith_1sg7gg$ = maxWith_4; - package$collections.maxWith_jucva8$ = maxWith_5; - package$collections.maxWith_7ffj0g$ = maxWith_6; - package$collections.maxWith_7ncb86$ = maxWith_7; - package$collections.min_pnorak$ = min; - package$collections.min_529xol$ = min_0; - package$collections.min_pbinho$ = min_1; - package$collections.min_964n91$ = min_2; - package$collections.min_i2lc79$ = min_3; - package$collections.min_tmsbgo$ = min_4; - package$collections.min_se6h4x$ = min_5; - package$collections.min_rjqryz$ = min_6; - package$collections.min_bvy38s$ = min_7; - package$collections.min_355ntz$ = min_8; - package$collections.minBy_99hh6x$ = minBy; - package$collections.minBy_jirwv8$ = minBy_0; - package$collections.minBy_p0tdr4$ = minBy_1; - package$collections.minBy_30vlmi$ = minBy_2; - package$collections.minBy_hom4ws$ = minBy_3; - package$collections.minBy_ksd00w$ = minBy_4; - package$collections.minBy_fvpt30$ = minBy_5; - package$collections.minBy_xt360o$ = minBy_6; - package$collections.minBy_epurks$ = minBy_7; - package$collections.minWith_iwcb0m$ = minWith; - package$collections.minWith_movtv6$ = minWith_0; - package$collections.minWith_u08rls$ = minWith_1; - package$collections.minWith_rsw9pc$ = minWith_2; - package$collections.minWith_wqwa2y$ = minWith_3; - package$collections.minWith_1sg7gg$ = minWith_4; - package$collections.minWith_jucva8$ = minWith_5; - package$collections.minWith_7ffj0g$ = minWith_6; - package$collections.minWith_7ncb86$ = minWith_7; - package$collections.none_us0mfu$ = none; - package$collections.none_964n91$ = none_0; - package$collections.none_i2lc79$ = none_1; - package$collections.none_tmsbgo$ = none_2; - package$collections.none_se6h4x$ = none_3; - package$collections.none_rjqryz$ = none_4; - package$collections.none_bvy38s$ = none_5; - package$collections.none_l1lu5t$ = none_6; - package$collections.none_355ntz$ = none_7; - package$collections.none_sfx99b$ = none_8; - package$collections.none_c3i447$ = none_9; - package$collections.none_247xw3$ = none_10; - package$collections.none_il4kyb$ = none_11; - package$collections.none_i1oc7r$ = none_12; - package$collections.none_u4nq1f$ = none_13; - package$collections.none_3vq27r$ = none_14; - package$collections.none_xffwn9$ = none_15; - package$collections.none_3ji0pj$ = none_16; - package$kotlin.UnsupportedOperationException_init_pdl1vj$ = UnsupportedOperationException_init_0; - package$collections.reduce_5bz9yp$ = reduce; - package$collections.reduce_ua0gmo$ = reduce_0; - package$collections.reduce_5x6csy$ = reduce_1; - package$collections.reduce_vuuzha$ = reduce_2; - package$collections.reduce_8z4g8g$ = reduce_3; - package$collections.reduce_m57mj6$ = reduce_4; - package$collections.reduce_5rthjk$ = reduce_5; - package$collections.reduce_if3lfm$ = reduce_6; - package$collections.reduce_724a40$ = reduce_7; - package$collections.reduceIndexed_f61gul$ = reduceIndexed; - package$collections.reduceIndexed_y1rlg4$ = reduceIndexed_0; - package$collections.reduceIndexed_ctdw5m$ = reduceIndexed_1; - package$collections.reduceIndexed_y7bnwe$ = reduceIndexed_2; - package$collections.reduceIndexed_54m7jg$ = reduceIndexed_3; - package$collections.reduceIndexed_mzocqy$ = reduceIndexed_4; - package$collections.reduceIndexed_i4uovg$ = reduceIndexed_5; - package$collections.reduceIndexed_fqu0be$ = reduceIndexed_6; - package$collections.reduceIndexed_n25zu4$ = reduceIndexed_7; - package$collections.reduceRight_m9c08d$ = reduceRight; - package$collections.reduceRight_ua0gmo$ = reduceRight_0; - package$collections.reduceRight_5x6csy$ = reduceRight_1; - package$collections.reduceRight_vuuzha$ = reduceRight_2; - package$collections.reduceRight_8z4g8g$ = reduceRight_3; - package$collections.reduceRight_m57mj6$ = reduceRight_4; - package$collections.reduceRight_5rthjk$ = reduceRight_5; - package$collections.reduceRight_if3lfm$ = reduceRight_6; - package$collections.reduceRight_724a40$ = reduceRight_7; - package$collections.reduceRightIndexed_cf9tch$ = reduceRightIndexed; - package$collections.reduceRightIndexed_y1rlg4$ = reduceRightIndexed_0; - package$collections.reduceRightIndexed_ctdw5m$ = reduceRightIndexed_1; - package$collections.reduceRightIndexed_y7bnwe$ = reduceRightIndexed_2; - package$collections.reduceRightIndexed_54m7jg$ = reduceRightIndexed_3; - package$collections.reduceRightIndexed_mzocqy$ = reduceRightIndexed_4; - package$collections.reduceRightIndexed_i4uovg$ = reduceRightIndexed_5; - package$collections.reduceRightIndexed_fqu0be$ = reduceRightIndexed_6; - package$collections.reduceRightIndexed_n25zu4$ = reduceRightIndexed_7; - package$collections.sumBy_9qh8u2$ = sumBy; - package$collections.sumBy_s616nk$ = sumBy_0; - package$collections.sumBy_sccsus$ = sumBy_1; - package$collections.sumBy_n2f0qi$ = sumBy_2; - package$collections.sumBy_8jxuvk$ = sumBy_3; - package$collections.sumBy_lv6o8c$ = sumBy_4; - package$collections.sumBy_a4xh9s$ = sumBy_5; - package$collections.sumBy_d84lg4$ = sumBy_6; - package$collections.sumBy_izzzcg$ = sumBy_7; - package$collections.sumByDouble_vyz3zq$ = sumByDouble; - package$collections.sumByDouble_kkr9hw$ = sumByDouble_0; - package$collections.sumByDouble_u2ap1s$ = sumByDouble_1; - package$collections.sumByDouble_suc1jq$ = sumByDouble_2; - package$collections.sumByDouble_rqe08c$ = sumByDouble_3; - package$collections.sumByDouble_8jdnkg$ = sumByDouble_4; - package$collections.sumByDouble_vuwwjw$ = sumByDouble_5; - package$collections.sumByDouble_1f8lq0$ = sumByDouble_6; - package$collections.sumByDouble_ik7e6s$ = sumByDouble_7; - package$collections.requireNoNulls_9b7vla$ = requireNoNulls; - package$collections.partition_sfx99b$ = partition; - package$collections.partition_c3i447$ = partition_0; - package$collections.partition_247xw3$ = partition_1; - package$collections.partition_il4kyb$ = partition_2; - package$collections.partition_i1oc7r$ = partition_3; - package$collections.partition_u4nq1f$ = partition_4; - package$collections.partition_3vq27r$ = partition_5; - package$collections.partition_xffwn9$ = partition_6; - package$collections.partition_3ji0pj$ = partition_7; - package$collections.zip_r9t3v7$ = zip; - package$collections.zip_f8fqmg$ = zip_0; - package$collections.zip_ty5cjm$ = zip_1; - package$collections.zip_hh3at1$ = zip_2; - package$collections.zip_1qoa9o$ = zip_3; - package$collections.zip_84cwbm$ = zip_4; - package$collections.zip_eqchap$ = zip_5; - package$collections.zip_jvo9m6$ = zip_6; - package$collections.zip_stlr6e$ = zip_7; - package$collections.zip_t5fk8e$ = zip_8; - package$collections.zip_c731w7$ = zip_9; - package$collections.zip_ochmv5$ = zip_10; - package$collections.zip_fvmov$ = zip_11; - package$collections.zip_g0832p$ = zip_12; - package$collections.zip_cpiwht$ = zip_13; - package$collections.zip_p5twxn$ = zip_14; - package$collections.zip_6fiayp$ = zip_15; - package$collections.zip_xwrum3$ = zip_16; - package$collections.zip_evp5ax$ = zip_17; - package$collections.zip_bguba6$ = zip_18; - package$collections.zip_1xs6vw$ = zip_19; - package$collections.zip_rs3hg1$ = zip_20; - package$collections.zip_spy2lm$ = zip_21; - package$collections.zip_s1ag1o$ = zip_22; - package$collections.zip_qczpth$ = zip_23; - package$collections.zip_za56m0$ = zip_24; - package$collections.zip_jfs5m8$ = zip_25; - package$collections.collectionSizeOrDefault_ba2ldo$ = collectionSizeOrDefault; - package$collections.zip_aoaibi$ = zip_26; - package$collections.zip_2fxjb5$ = zip_27; - package$collections.zip_ey57vj$ = zip_28; - package$collections.zip_582drv$ = zip_29; - package$collections.zip_5584fz$ = zip_30; - package$collections.zip_dszx9d$ = zip_31; - package$collections.zip_p8lavz$ = zip_32; - package$collections.zip_e6btvt$ = zip_33; - package$collections.zip_imz1rz$ = zip_34; - package$collections.zip_ndt7zj$ = zip_35; - package$collections.zip_907jet$ = zip_36; - package$collections.zip_mgkctd$ = zip_37; - package$collections.zip_tq12cv$ = zip_38; - package$collections.zip_tec1tx$ = zip_39; - package$collections.zip_pmvpm9$ = zip_40; - package$collections.zip_qsfoml$ = zip_41; - package$collections.zip_wxyzfz$ = zip_42; - package$collections.zip_fvjg0r$ = zip_43; - package$collections.zip_u8n9wb$ = zip_44; - package$collections.zip_2l2rw1$ = zip_45; - package$collections.zip_3bxm8r$ = zip_46; - package$collections.zip_h04u5h$ = zip_47; - package$collections.zip_t5hjvf$ = zip_48; - package$collections.zip_l9qpsl$ = zip_49; - package$collections.zip_rvvoh1$ = zip_50; - package$collections.joinTo_aust33$ = joinTo; - package$collections.joinTo_5gzrdz$ = joinTo_0; - package$collections.joinTo_9p6wnv$ = joinTo_1; - package$collections.joinTo_sylrwb$ = joinTo_2; - package$collections.joinTo_d79htt$ = joinTo_3; - package$collections.joinTo_ohfn4r$ = joinTo_4; - package$collections.joinTo_ghgesr$ = joinTo_5; - package$collections.joinTo_7e5iud$ = joinTo_6; - package$collections.joinTo_gm3uff$ = joinTo_7; - package$collections.joinToString_cgipc5$ = joinToString; - package$collections.joinToString_s78119$ = joinToString_0; - package$collections.joinToString_khecbp$ = joinToString_1; - package$collections.joinToString_vk9fgb$ = joinToString_2; - package$collections.joinToString_q4l9w5$ = joinToString_3; - package$collections.joinToString_cph1y3$ = joinToString_4; - package$collections.joinToString_raq4np$ = joinToString_5; - package$collections.joinToString_fgvu1x$ = joinToString_6; - package$collections.joinToString_xqrb1d$ = joinToString_7; - package$collections.asIterable_us0mfu$ = asIterable; - package$collections.asIterable_964n91$ = asIterable_0; - package$collections.asIterable_i2lc79$ = asIterable_1; - package$collections.asIterable_tmsbgo$ = asIterable_2; - package$collections.asIterable_se6h4x$ = asIterable_3; - package$collections.asIterable_rjqryz$ = asIterable_4; - package$collections.asIterable_bvy38s$ = asIterable_5; - package$collections.asIterable_l1lu5t$ = asIterable_6; - package$collections.asIterable_355ntz$ = asIterable_7; - package$collections.asSequence_us0mfu$ = asSequence; - package$collections.asSequence_964n91$ = asSequence_0; - package$collections.asSequence_i2lc79$ = asSequence_1; - package$collections.asSequence_tmsbgo$ = asSequence_2; - package$collections.asSequence_se6h4x$ = asSequence_3; - package$collections.asSequence_rjqryz$ = asSequence_4; - package$collections.asSequence_bvy38s$ = asSequence_5; - package$collections.asSequence_l1lu5t$ = asSequence_6; - package$collections.asSequence_355ntz$ = asSequence_7; - package$collections.average_vn5r1x$ = average; - package$collections.average_t8c1id$ = average_0; - package$collections.average_5yd9ji$ = average_1; - package$collections.average_r2b9hd$ = average_2; - package$collections.average_529xol$ = average_3; - package$collections.average_pnorak$ = average_4; - package$collections.average_964n91$ = average_5; - package$collections.average_i2lc79$ = average_6; - package$collections.average_tmsbgo$ = average_7; - package$collections.average_se6h4x$ = average_8; - package$collections.average_rjqryz$ = average_9; - package$collections.average_bvy38s$ = average_10; - package$collections.sum_vn5r1x$ = sum; - package$collections.sum_t8c1id$ = sum_0; - package$collections.sum_5yd9ji$ = sum_1; - package$collections.sum_r2b9hd$ = sum_2; - package$collections.sum_529xol$ = sum_3; - package$collections.sum_pnorak$ = sum_4; - package$collections.sum_964n91$ = sum_5; - package$collections.sum_i2lc79$ = sum_6; - package$collections.sum_tmsbgo$ = sum_7; - package$collections.sum_se6h4x$ = sum_8; - package$collections.sum_rjqryz$ = sum_9; - package$collections.sum_bvy38s$ = sum_10; - package$collections.contains_2ws7j4$ = contains_8; - package$collections.elementAt_ba2ldo$ = elementAt; - package$collections.elementAtOrElse_qeve62$ = elementAtOrElse_8; - package$collections.get_lastIndex_55thoc$ = get_lastIndex_12; - package$collections.elementAtOrNull_ba2ldo$ = elementAtOrNull_8; - package$collections.getOrNull_yzln2o$ = getOrNull_8; - package$collections.firstOrNull_6jwkkr$ = firstOrNull_19; - package$collections.lastOrNull_6jwkkr$ = lastOrNull_19; - package$collections.lastOrNull_dmm9ex$ = lastOrNull_20; - package$collections.first_7wnvza$ = first_17; - package$collections.first_2p1efm$ = first_18; - package$collections.first_6jwkkr$ = first_19; - package$collections.firstOrNull_7wnvza$ = firstOrNull_17; - package$collections.firstOrNull_2p1efm$ = firstOrNull_18; - package$collections.indexOf_2ws7j4$ = indexOf_8; - package$collections.indexOf_bv23uc$ = indexOf_9; - package$collections.checkIndexOverflow_za3lpa$ = checkIndexOverflow; - package$collections.indexOfFirst_6jwkkr$ = indexOfFirst_8; - package$collections.indexOfFirst_dmm9ex$ = indexOfFirst_9; - package$collections.indexOfLast_6jwkkr$ = indexOfLast_8; - package$collections.indexOfLast_dmm9ex$ = indexOfLast_9; - package$collections.last_7wnvza$ = last_17; - package$collections.last_2p1efm$ = last_18; - package$collections.last_6jwkkr$ = last_19; - package$collections.last_dmm9ex$ = last_20; - package$collections.lastIndexOf_2ws7j4$ = lastIndexOf_8; - package$collections.lastIndexOf_bv23uc$ = lastIndexOf_9; - package$collections.lastOrNull_7wnvza$ = lastOrNull_17; - package$collections.lastOrNull_2p1efm$ = lastOrNull_18; - package$collections.random_iscd7z$ = random_18; - package$collections.single_7wnvza$ = single_17; - package$collections.single_2p1efm$ = single_18; - package$collections.single_6jwkkr$ = single_19; - package$collections.singleOrNull_7wnvza$ = singleOrNull_17; - package$collections.singleOrNull_2p1efm$ = singleOrNull_18; - package$collections.singleOrNull_6jwkkr$ = singleOrNull_19; - package$collections.drop_ba2ldo$ = drop_8; - package$collections.dropLast_yzln2o$ = dropLast_8; - package$collections.take_ba2ldo$ = take_8; - package$collections.dropLastWhile_dmm9ex$ = dropLastWhile_8; - package$collections.dropWhile_6jwkkr$ = dropWhile_8; - package$collections.filterTo_cslyey$ = filterTo_8; - package$collections.filter_6jwkkr$ = filter_8; - package$collections.filterIndexedTo_i2yxnm$ = filterIndexedTo_8; - package$collections.filterIndexed_p81qtj$ = filterIndexed_8; - package$collections.forEachIndexed_g8ms6t$ = forEachIndexed_8; - package$collections.filterNotTo_cslyey$ = filterNotTo_8; - package$collections.filterNot_6jwkkr$ = filterNot_8; - package$collections.filterNotNull_m3lr2h$ = filterNotNull_0; - package$collections.filterNotNullTo_u9kwcl$ = filterNotNullTo_0; - package$collections.slice_6bjbi1$ = slice_17; - package$collections.slice_b9tsm5$ = slice_18; - package$collections.takeLast_yzln2o$ = takeLast_8; - package$collections.toList_7wnvza$ = toList_8; - package$collections.takeLastWhile_dmm9ex$ = takeLastWhile_8; - package$collections.takeWhile_6jwkkr$ = takeWhile_8; - package$collections.reversed_7wnvza$ = reversed_8; - package$collections.sortWith_nqfjgj$ = sortWith_0; - package$collections.sortBy_yag3x6$ = sortBy_0; - package$collections.sortByDescending_yag3x6$ = sortByDescending_0; - package$collections.sortDescending_4wi501$ = sortDescending_7; - package$collections.sorted_exjks8$ = sorted_7; - package$collections.sortedWith_eknfly$ = sortedWith_8; - package$collections.sortedBy_nd8ern$ = sortedBy_8; - package$collections.sortedByDescending_nd8ern$ = sortedByDescending_8; - package$collections.sortedDescending_exjks8$ = sortedDescending_7; - package$collections.toBooleanArray_xmyvgf$ = toBooleanArray_0; - package$collections.toByteArray_kdx1v$ = toByteArray_0; - package$collections.toCharArray_rr68x$ = toCharArray_0; - package$collections.toDoubleArray_tcduak$ = toDoubleArray_0; - package$collections.toFloatArray_zwy31$ = toFloatArray_0; - package$collections.toIntArray_fx3nzu$ = toIntArray_0; - package$collections.toLongArray_558emf$ = toLongArray_0; - package$collections.toShortArray_p5z1wt$ = toShortArray_0; - package$collections.associateTo_tp6zhs$ = associateTo_8; - package$collections.associate_wbhhmp$ = associate_8; - package$collections.associateByTo_q9k9lv$ = associateByTo_17; - package$collections.associateBy_dvm6j0$ = associateBy_17; - package$collections.associateByTo_5s21dh$ = associateByTo_18; - package$collections.associateBy_6kgnfi$ = associateBy_18; - package$collections.associateWithTo_u35i63$ = associateWithTo; - package$collections.associateWith_dvm6j0$ = associateWith; - package$collections.toCollection_5cfyqp$ = toCollection_8; - package$collections.toHashSet_7wnvza$ = toHashSet_8; - package$collections.toMutableList_7wnvza$ = toMutableList_8; - package$collections.toMutableList_4c7yge$ = toMutableList_9; - package$collections.toSet_7wnvza$ = toSet_8; - package$collections.flatMapTo_farraf$ = flatMapTo_8; - package$collections.flatMap_en2w03$ = flatMap_8; - package$collections.groupByTo_2nn80$ = groupByTo_17; - package$collections.groupBy_dvm6j0$ = groupBy_17; - package$collections.groupByTo_spnc2q$ = groupByTo_18; - package$collections.groupBy_6kgnfi$ = groupBy_18; - package$collections.groupingBy_dvm6j0$ = groupingBy_0; - package$collections.mapTo_h3il0w$ = mapTo_8; - package$collections.map_dvm6j0$ = map_8; - package$collections.mapIndexedTo_qixlg$ = mapIndexedTo_8; - package$collections.mapIndexed_yigmvk$ = mapIndexed_8; - package$collections.mapIndexedNotNullTo_s7kjlj$ = mapIndexedNotNullTo_0; - package$collections.mapIndexedNotNull_aw5p9p$ = mapIndexedNotNull_0; - package$collections.mapNotNullTo_p5b1il$ = mapNotNullTo_0; - package$collections.mapNotNull_3fhhkf$ = mapNotNull_0; - package$collections.forEach_i7id1t$ = forEach_8; - package$collections.withIndex_7wnvza$ = withIndex_8; - package$collections.distinct_7wnvza$ = distinct_8; - package$collections.distinctBy_dvm6j0$ = distinctBy_8; - package$collections.intersect_q4559j$ = intersect_8; - package$collections.subtract_q4559j$ = subtract_8; - package$collections.toMutableSet_7wnvza$ = toMutableSet_8; - package$collections.union_q4559j$ = union_8; - package$collections.Collection = Collection; - package$collections.all_6jwkkr$ = all_8; - package$collections.any_7wnvza$ = any_17; - package$collections.any_6jwkkr$ = any_18; - package$collections.count_7wnvza$ = count_17; - package$collections.checkCountOverflow_za3lpa$ = checkCountOverflow; - package$collections.count_6jwkkr$ = count_19; - package$collections.fold_l1hrho$ = fold_8; - package$collections.foldIndexed_a080b4$ = foldIndexed_8; - package$collections.foldRight_flo3fi$ = foldRight_8; - package$collections.foldRightIndexed_nj6056$ = foldRightIndexed_8; - package$collections.max_l63kqw$ = max_9; - package$collections.max_lvsncp$ = max_10; - package$collections.max_exjks8$ = max_11; - package$collections.maxBy_nd8ern$ = maxBy_8; - package$collections.maxWith_eknfly$ = maxWith_8; - package$collections.min_l63kqw$ = min_9; - package$collections.min_lvsncp$ = min_10; - package$collections.min_exjks8$ = min_11; - package$collections.minBy_nd8ern$ = minBy_8; - package$collections.minWith_eknfly$ = minWith_8; - package$collections.none_7wnvza$ = none_17; - package$collections.none_6jwkkr$ = none_18; - package$collections.onEach_w8vc4v$ = onEach; - package$collections.reduce_lrrcxv$ = reduce_8; - package$collections.reduceIndexed_8txfjb$ = reduceIndexed_8; - package$collections.reduceRight_y5l5zf$ = reduceRight_8; - package$collections.reduceRightIndexed_1a67zb$ = reduceRightIndexed_8; - package$collections.sumBy_1nckxa$ = sumBy_8; - package$collections.sumByDouble_k0tf9a$ = sumByDouble_8; - package$collections.requireNoNulls_m3lr2h$ = requireNoNulls_0; - package$collections.requireNoNulls_whsx6z$ = requireNoNulls_1; - package$collections.chunked_ba2ldo$ = chunked; - package$collections.chunked_oqjilr$ = chunked_0; - package$collections.minus_2ws7j4$ = minus; - package$collections.minus_4gmyjx$ = minus_0; - package$collections.minus_q4559j$ = minus_1; - package$collections.minus_i0e5px$ = minus_2; - package$collections.partition_6jwkkr$ = partition_8; - package$collections.plus_2ws7j4$ = plus; - package$collections.plus_qloxvw$ = plus_0; - package$collections.plus_4gmyjx$ = plus_1; - package$collections.plus_drqvgf$ = plus_2; - package$collections.plus_q4559j$ = plus_3; - package$collections.plus_mydzjv$ = plus_4; - package$collections.plus_i0e5px$ = plus_5; - package$collections.plus_hjm0xj$ = plus_6; - package$collections.windowed_vo9c23$ = windowed; - package$collections.windowed_au5p4$ = windowed_0; - package$collections.zip_xiheex$ = zip_51; - package$collections.zip_curaua$ = zip_52; - package$collections.zip_45mdf7$ = zip_53; - package$collections.zip_3h9v02$ = zip_54; - package$collections.zipWithNext_7wnvza$ = zipWithNext; - package$collections.zipWithNext_kvcuaw$ = zipWithNext_0; - package$collections.joinTo_gcc71v$ = joinTo_8; - package$collections.joinToString_fmv235$ = joinToString_8; - package$collections.asSequence_7wnvza$ = asSequence_8; - package$collections.average_922ytb$ = average_11; - package$collections.average_oz9asn$ = average_12; - package$collections.average_plj8ka$ = average_13; - package$collections.average_dmxgdv$ = average_14; - package$collections.average_lvsncp$ = average_15; - package$collections.average_l63kqw$ = average_16; - package$collections.sum_922ytb$ = sum_11; - package$collections.sum_oz9asn$ = sum_12; - package$collections.sum_plj8ka$ = sum_13; - package$collections.sum_dmxgdv$ = sum_14; - package$collections.sum_lvsncp$ = sum_15; - package$collections.sum_l63kqw$ = sum_16; - var package$comparisons = package$kotlin.comparisons || (package$kotlin.comparisons = {}); - package$comparisons.maxOf_7cibz0$ = maxOf; - package$comparisons.maxOf_z1gega$ = maxOf_0; - package$comparisons.minOf_7cibz0$ = minOf; - package$comparisons.minOf_z1gega$ = minOf_0; - package$collections.toList_abgq59$ = toList_9; - package$collections.flatMapTo_qdz8ho$ = flatMapTo_9; - package$collections.flatMap_2r9935$ = flatMap_9; - package$collections.mapTo_qxe4nl$ = mapTo_9; - package$collections.map_8169ik$ = map_9; - package$collections.mapNotNullTo_ir6y9a$ = mapNotNullTo_1; - package$collections.mapNotNull_9b72hb$ = mapNotNull_1; - package$collections.forEach_62casv$ = forEach_9; - package$collections.all_9peqz9$ = all_9; - package$collections.any_abgq59$ = any_19; - package$collections.any_9peqz9$ = any_20; - package$collections.count_9peqz9$ = count_21; - package$collections.minBy_44nibo$ = minBy_9; - package$collections.minWith_e3q53g$ = minWith_9; - package$collections.none_abgq59$ = none_19; - package$collections.none_9peqz9$ = none_20; - package$collections.onEach_bdwhnn$ = onEach_0; - package$collections.asSequence_abgq59$ = asSequence_9; - package$ranges.random_xmiyix$ = random_22; - package$ranges.random_6753zu$ = random_23; - package$ranges.random_bx1m1g$ = random_24; - package$ranges.contains_8t4apg$ = contains_12; - package$ranges.contains_ptt68h$ = contains_13; - package$ranges.contains_a0sexr$ = contains_14; - package$ranges.contains_st7t5o$ = contains_15; - package$ranges.contains_w4n8vz$ = contains_16; - package$ranges.contains_bupbvv$ = contains_17; - package$ranges.contains_vs2922$ = contains_18; - package$ranges.contains_fnkcb2$ = contains_19; - package$ranges.contains_sc6rfc$ = contains_20; - package$ranges.contains_lmtni0$ = contains_21; - package$ranges.contains_b3prtk$ = contains_22; - package$ranges.contains_jdujeb$ = contains_23; - package$ranges.contains_ng3igv$ = contains_24; - package$ranges.contains_qlzezp$ = contains_25; - package$ranges.contains_u6rtyw$ = contains_26; - package$ranges.contains_wwtm9y$ = contains_27; - package$ranges.contains_sy6r8u$ = contains_28; - package$ranges.contains_wegtiw$ = contains_29; - package$ranges.contains_x0ackb$ = contains_30; - package$ranges.contains_84mv1k$ = contains_31; - package$ranges.contains_8sy4e8$ = contains_32; - package$ranges.contains_pyp6pl$ = contains_33; - package$ranges.contains_a0yl8z$ = contains_34; - package$ranges.contains_stdzgw$ = contains_35; - package$ranges.contains_w4tf77$ = contains_36; - package$ranges.contains_basjzs$ = contains_37; - package$ranges.contains_jkxbkj$ = contains_38; - package$ranges.contains_nn6an3$ = contains_39; - package$ranges.contains_tzp1so$ = contains_40; - package$ranges.contains_1thfvp$ = contains_41; - package$ranges.downTo_ehttk$ = downTo; - package$ranges.downTo_2ou2j3$ = downTo_0; - package$ranges.downTo_buxqzf$ = downTo_1; - package$ranges.downTo_7mbe97$ = downTo_2; - package$ranges.downTo_ui3wc7$ = downTo_3; - package$ranges.downTo_dqglrj$ = downTo_4; - package$ranges.downTo_if0zpk$ = downTo_5; - package$ranges.downTo_798l30$ = downTo_6; - package$ranges.downTo_di2vk2$ = downTo_7; - package$ranges.downTo_ebnic$ = downTo_8; - package$ranges.downTo_2p08ub$ = downTo_9; - package$ranges.downTo_bv3xan$ = downTo_10; - package$ranges.downTo_7m57xz$ = downTo_11; - package$ranges.downTo_c8b4g4$ = downTo_12; - package$ranges.downTo_cltogl$ = downTo_13; - package$ranges.downTo_cqjimh$ = downTo_14; - package$ranges.downTo_mvfjzl$ = downTo_15; - package$ranges.reversed_3080cb$ = reversed_10; - package$ranges.reversed_uthk7p$ = reversed_11; - package$ranges.step_xsgg7u$ = step; - package$ranges.step_9rx6pe$ = step_0; - package$ranges.step_kf5xo7$ = step_1; - package$ranges.toByteExactOrNull_8e50z4$ = toByteExactOrNull; - package$ranges.toByteExactOrNull_nzsbcz$ = toByteExactOrNull_0; - package$ranges.toByteExactOrNull_ybd44d$ = toByteExactOrNull_1; - package$ranges.toByteExactOrNull_1zw1ma$ = toByteExactOrNull_2; - package$ranges.toByteExactOrNull_umcohv$ = toByteExactOrNull_3; - package$ranges.toIntExactOrNull_nzsbcz$ = toIntExactOrNull; - package$ranges.toIntExactOrNull_1zw1ma$ = toIntExactOrNull_0; - package$ranges.toIntExactOrNull_umcohv$ = toIntExactOrNull_1; - package$ranges.toLongExactOrNull_1zw1ma$ = toLongExactOrNull; - package$ranges.toLongExactOrNull_umcohv$ = toLongExactOrNull_0; - package$ranges.toShortExactOrNull_8e50z4$ = toShortExactOrNull; - package$ranges.toShortExactOrNull_nzsbcz$ = toShortExactOrNull_0; - package$ranges.toShortExactOrNull_1zw1ma$ = toShortExactOrNull_1; - package$ranges.toShortExactOrNull_umcohv$ = toShortExactOrNull_2; - package$ranges.until_ehttk$ = until; - package$ranges.until_2ou2j3$ = until_0; - package$ranges.until_buxqzf$ = until_1; - package$ranges.until_7mbe97$ = until_2; - package$ranges.until_ui3wc7$ = until_3; - package$ranges.until_dqglrj$ = until_4; - package$ranges.until_if0zpk$ = until_5; - package$ranges.until_798l30$ = until_6; - package$ranges.until_di2vk2$ = until_7; - package$ranges.until_ebnic$ = until_8; - package$ranges.until_2p08ub$ = until_9; - package$ranges.until_bv3xan$ = until_10; - package$ranges.until_7m57xz$ = until_11; - package$ranges.until_c8b4g4$ = until_12; - package$ranges.until_cltogl$ = until_13; - package$ranges.until_cqjimh$ = until_14; - package$ranges.until_mvfjzl$ = until_15; - package$ranges.coerceAtLeast_8xshf9$ = coerceAtLeast; - package$ranges.coerceAtLeast_buxqzf$ = coerceAtLeast_0; - package$ranges.coerceAtLeast_mvfjzl$ = coerceAtLeast_1; - package$ranges.coerceAtLeast_2p08ub$ = coerceAtLeast_3; - package$ranges.coerceAtLeast_yni7l$ = coerceAtLeast_4; - package$ranges.coerceAtLeast_38ydlf$ = coerceAtLeast_5; - package$ranges.coerceAtMost_8xshf9$ = coerceAtMost; - package$ranges.coerceAtMost_buxqzf$ = coerceAtMost_0; - package$ranges.coerceAtMost_mvfjzl$ = coerceAtMost_1; - package$ranges.coerceAtMost_dqglrj$ = coerceAtMost_2; - package$ranges.coerceAtMost_2p08ub$ = coerceAtMost_3; - package$ranges.coerceAtMost_yni7l$ = coerceAtMost_4; - package$ranges.coerceAtMost_38ydlf$ = coerceAtMost_5; - package$ranges.coerceIn_99j3dd$ = coerceIn; - package$ranges.coerceIn_glfpss$ = coerceIn_0; - package$ranges.coerceIn_jn2ilo$ = coerceIn_1; - package$ranges.coerceIn_e4yvb3$ = coerceIn_2; - package$ranges.coerceIn_ekzx8g$ = coerceIn_3; - package$ranges.coerceIn_wj6e7o$ = coerceIn_4; - package$ranges.coerceIn_nig4hr$ = coerceIn_5; - package$ranges.coerceIn_52zmhz$ = coerceIn_6; - package$ranges.coerceIn_jqk3rj$ = coerceIn_7; - package$ranges.coerceIn_nayhkp$ = coerceIn_8; - package$ranges.coerceIn_k7ygy9$ = coerceIn_9; - var package$sequences = package$kotlin.sequences || (package$kotlin.sequences = {}); - package$sequences.contains_9h40j2$ = contains_42; - package$sequences.elementAt_wuwhe2$ = elementAt_1; - package$sequences.elementAtOrElse_i0ukx8$ = elementAtOrElse_10; - package$sequences.elementAtOrNull_wuwhe2$ = elementAtOrNull_10; - package$sequences.firstOrNull_euau3h$ = firstOrNull_21; - package$sequences.lastOrNull_euau3h$ = lastOrNull_22; - package$sequences.first_veqyi0$ = first_20; - package$sequences.first_euau3h$ = first_21; - package$sequences.firstOrNull_veqyi0$ = firstOrNull_20; - package$sequences.indexOf_9h40j2$ = indexOf_10; - package$sequences.indexOfFirst_euau3h$ = indexOfFirst_10; - package$sequences.indexOfLast_euau3h$ = indexOfLast_10; - package$sequences.last_veqyi0$ = last_21; - package$sequences.last_euau3h$ = last_22; - package$sequences.lastIndexOf_9h40j2$ = lastIndexOf_10; - package$sequences.lastOrNull_veqyi0$ = lastOrNull_21; - package$sequences.single_veqyi0$ = single_20; - package$sequences.single_euau3h$ = single_21; - package$sequences.singleOrNull_veqyi0$ = singleOrNull_20; - package$sequences.singleOrNull_euau3h$ = singleOrNull_21; - package$sequences.drop_wuwhe2$ = drop_9; - package$sequences.dropWhile_euau3h$ = dropWhile_9; - package$sequences.filter_euau3h$ = filter_9; - package$sequences.filterIndexed_m6ft53$ = filterIndexed_9; - package$sequences.forEachIndexed_iyis71$ = forEachIndexed_9; - package$sequences.filterIndexedTo_t68vbo$ = filterIndexedTo_9; - package$sequences.Sequence = Sequence; - package$sequences.filterNot_euau3h$ = filterNot_9; - package$sequences.filterNotNull_q2m9h7$ = filterNotNull_1; - package$sequences.filterNotNullTo_jmgotp$ = filterNotNullTo_1; - package$sequences.filterNotTo_zemxx4$ = filterNotTo_9; - package$sequences.filterTo_zemxx4$ = filterTo_9; - package$sequences.take_wuwhe2$ = take_9; - package$sequences.takeWhile_euau3h$ = takeWhile_9; - package$sequences.sorted_gtzq52$ = sorted_8; - package$sequences.sortedWith_vjgqpk$ = sortedWith_9; - package$sequences.sortedBy_aht3pn$ = sortedBy_9; - package$sequences.sortedByDescending_aht3pn$ = sortedByDescending_9; - package$sequences.sortedDescending_gtzq52$ = sortedDescending_8; - package$sequences.associateTo_xiiici$ = associateTo_9; - package$sequences.associate_ohgugh$ = associate_9; - package$sequences.associateByTo_pdrkj5$ = associateByTo_19; - package$sequences.associateBy_z5avom$ = associateBy_19; - package$sequences.associateByTo_vqogar$ = associateByTo_20; - package$sequences.associateBy_rpj48c$ = associateBy_20; - package$sequences.associateWithTo_uyy78t$ = associateWithTo_0; - package$sequences.associateWith_z5avom$ = associateWith_0; - package$sequences.toCollection_gtszxp$ = toCollection_9; - package$sequences.toHashSet_veqyi0$ = toHashSet_9; - package$sequences.toList_veqyi0$ = toList_10; - package$sequences.toMutableList_veqyi0$ = toMutableList_10; - package$sequences.toSet_veqyi0$ = toSet_9; - package$sequences.flatMap_49vfel$ = flatMap_10; - package$collections.addAll_tj7pfx$ = addAll_0; - package$sequences.flatMapTo_skhdnd$ = flatMapTo_10; - package$sequences.groupByTo_m5ds0u$ = groupByTo_19; - package$sequences.groupBy_z5avom$ = groupBy_19; - package$sequences.groupByTo_r8laog$ = groupByTo_20; - package$sequences.groupBy_rpj48c$ = groupBy_20; - package$sequences.groupingBy_z5avom$ = groupingBy_1; - package$sequences.map_z5avom$ = map_10; - package$sequences.mapIndexed_b7yuyq$ = mapIndexed_9; - package$sequences.mapIndexedNotNull_pqenxb$ = mapIndexedNotNull_1; - package$sequences.mapIndexedNotNullTo_eyjglh$ = mapIndexedNotNullTo_1; - package$sequences.mapIndexedTo_49r4ke$ = mapIndexedTo_9; - package$sequences.mapNotNull_qpz9h9$ = mapNotNull_2; - package$sequences.forEach_o41pun$ = forEach_10; - package$sequences.mapNotNullTo_u5l3of$ = mapNotNullTo_2; - package$sequences.mapTo_kntv26$ = mapTo_10; - package$sequences.withIndex_veqyi0$ = withIndex_9; - package$sequences.distinct_veqyi0$ = distinct_9; - package$sequences.distinctBy_z5avom$ = distinctBy_9; - package$sequences.toMutableSet_veqyi0$ = toMutableSet_9; - package$sequences.all_euau3h$ = all_10; - package$sequences.any_veqyi0$ = any_21; - package$sequences.any_euau3h$ = any_22; - package$sequences.count_veqyi0$ = count_22; - package$sequences.count_euau3h$ = count_23; - package$sequences.fold_azbry2$ = fold_9; - package$sequences.foldIndexed_wxmp26$ = foldIndexed_9; - package$sequences.max_1bslqu$ = max_12; - package$sequences.max_8rwv2f$ = max_13; - package$sequences.max_gtzq52$ = max_14; - package$sequences.maxBy_aht3pn$ = maxBy_10; - package$sequences.maxWith_vjgqpk$ = maxWith_10; - package$sequences.min_1bslqu$ = min_12; - package$sequences.min_8rwv2f$ = min_13; - package$sequences.min_gtzq52$ = min_14; - package$sequences.minBy_aht3pn$ = minBy_10; - package$sequences.minWith_vjgqpk$ = minWith_10; - package$sequences.none_veqyi0$ = none_21; - package$sequences.none_euau3h$ = none_22; - package$sequences.onEach_o41pun$ = onEach_1; - package$sequences.reduce_linb1r$ = reduce_9; - package$sequences.reduceIndexed_8denzp$ = reduceIndexed_9; - package$sequences.sumBy_gvemys$ = sumBy_9; - package$sequences.sumByDouble_b4hqx8$ = sumByDouble_9; - package$sequences.requireNoNulls_q2m9h7$ = requireNoNulls_2; - package$sequences.chunked_wuwhe2$ = chunked_1; - package$sequences.chunked_b62g8t$ = chunked_2; - package$sequences.minus_9h40j2$ = minus_3; - package$sequences.minus_5jckhn$ = minus_4; - package$sequences.minus_639hpx$ = minus_5; - package$sequences.minus_v0iwhp$ = minus_6; - package$sequences.partition_euau3h$ = partition_9; - package$sequences.plus_9h40j2$ = plus_7; - package$sequences.plus_5jckhn$ = plus_8; - package$sequences.plus_639hpx$ = plus_9; - package$sequences.plus_v0iwhp$ = plus_10; - package$sequences.windowed_1ll6yl$ = windowed_1; - package$sequences.windowed_4fyara$ = windowed_2; - package$sequences.zip_r7q3s9$ = zip_55; - package$sequences.zip_etk53i$ = zip_56; - package$sequences.zipWithNext_veqyi0$ = zipWithNext_1; - package$sequences.zipWithNext_k332kq$ = zipWithNext_2; - package$sequences.joinTo_q99qgx$ = joinTo_9; - package$sequences.joinToString_853xkz$ = joinToString_9; - package$sequences.asIterable_veqyi0$ = asIterable_10; - package$sequences.average_in95sd$ = average_17; - package$sequences.average_wxyyw7$ = average_18; - package$sequences.average_j17fkc$ = average_19; - package$sequences.average_n83ncx$ = average_20; - package$sequences.average_8rwv2f$ = average_21; - package$sequences.average_1bslqu$ = average_22; - package$sequences.sum_in95sd$ = sum_17; - package$sequences.sum_wxyyw7$ = sum_18; - package$sequences.sum_j17fkc$ = sum_19; - package$sequences.sum_n83ncx$ = sum_20; - package$sequences.sum_8rwv2f$ = sum_21; - package$sequences.sum_1bslqu$ = sum_22; - package$collections.minus_xfiyik$ = minus_7; - package$collections.minus_ws1dkn$ = minus_8; - package$collections.minus_khz7k3$ = minus_9; - package$collections.minus_dk0kmn$ = minus_10; - package$collections.plus_xfiyik$ = plus_11; - package$collections.plus_ws1dkn$ = plus_12; - package$collections.plus_khz7k3$ = plus_13; - package$collections.plus_dk0kmn$ = plus_14; - var package$text = package$kotlin.text || (package$kotlin.text = {}); - package$text.get_lastIndex_gw00vp$ = get_lastIndex_13; - package$text.getOrNull_94bcnn$ = getOrNull_9; - package$text.firstOrNull_2pivbd$ = firstOrNull_23; - package$text.lastOrNull_2pivbd$ = lastOrNull_24; - package$text.first_gw00vp$ = first_22; - package$text.iterator_gw00vp$ = iterator_4; - package$text.first_2pivbd$ = first_23; - package$text.firstOrNull_gw00vp$ = firstOrNull_22; - package$text.get_indices_gw00vp$ = get_indices_13; - package$text.indexOfFirst_2pivbd$ = indexOfFirst_11; - package$text.indexOfLast_2pivbd$ = indexOfLast_11; - package$text.last_gw00vp$ = last_23; - package$text.last_2pivbd$ = last_24; - package$text.lastOrNull_gw00vp$ = lastOrNull_23; - package$text.random_kewcp8$ = random_26; - package$text.single_gw00vp$ = single_22; - package$text.single_2pivbd$ = single_23; - package$text.singleOrNull_gw00vp$ = singleOrNull_22; - package$text.singleOrNull_2pivbd$ = singleOrNull_23; - package$text.drop_94bcnn$ = drop_10; - package$text.drop_6ic1pp$ = drop_11; - package$text.dropLast_94bcnn$ = dropLast_9; - package$text.dropLast_6ic1pp$ = dropLast_10; - package$text.dropLastWhile_2pivbd$ = dropLastWhile_9; - package$text.dropLastWhile_ouje1d$ = dropLastWhile_10; - package$text.dropWhile_2pivbd$ = dropWhile_10; - package$text.dropWhile_ouje1d$ = dropWhile_11; - package$text.StringBuilder_init = StringBuilder_init_1; - package$text.filterTo_2vcf41$ = filterTo_10; - package$text.filter_2pivbd$ = filter_10; - package$text.filter_ouje1d$ = filter_11; - package$text.filterIndexedTo_2omorh$ = filterIndexedTo_10; - package$text.filterIndexed_3xan9v$ = filterIndexed_10; - package$text.filterIndexed_4cgdv1$ = filterIndexed_11; - package$text.forEachIndexed_q254al$ = forEachIndexed_10; - package$text.filterNotTo_2vcf41$ = filterNotTo_10; - package$text.filterNot_2pivbd$ = filterNot_10; - package$text.filterNot_ouje1d$ = filterNot_11; - package$text.slice_i511yc$ = slice_19; - package$text.slice_fc3b62$ = slice_20; - package$text.slice_ymrxhc$ = slice_21; - package$text.take_94bcnn$ = take_10; - package$text.take_6ic1pp$ = take_11; - package$text.takeLast_94bcnn$ = takeLast_9; - package$text.takeLast_6ic1pp$ = takeLast_10; - package$text.takeLastWhile_2pivbd$ = takeLastWhile_9; - package$text.takeLastWhile_ouje1d$ = takeLastWhile_10; - package$text.takeWhile_2pivbd$ = takeWhile_10; - package$text.takeWhile_ouje1d$ = takeWhile_11; - package$text.reversed_gw00vp$ = reversed_12; - package$text.associateTo_1pzh9q$ = associateTo_10; - package$text.associate_b3xl1f$ = associate_10; - package$text.associateByTo_lm6k0r$ = associateByTo_21; - package$text.associateBy_16h5q4$ = associateBy_21; - package$text.associateByTo_woixqq$ = associateByTo_22; - package$text.associateBy_m7aj6v$ = associateBy_22; - package$text.associateWithTo_dykjl$ = associateWithTo_1; - package$text.associateWith_16h5q4$ = associateWith_1; - package$text.toCollection_7uruwd$ = toCollection_10; - package$text.toHashSet_gw00vp$ = toHashSet_10; - package$text.toList_gw00vp$ = toList_11; - package$text.toMutableList_gw00vp$ = toMutableList_11; - package$text.toSet_gw00vp$ = toSet_10; - package$text.flatMapTo_kg2lzy$ = flatMapTo_11; - package$text.flatMap_83nucd$ = flatMap_11; - package$text.groupByTo_mntg7c$ = groupByTo_21; - package$text.groupBy_16h5q4$ = groupBy_21; - package$text.groupByTo_dgnza9$ = groupByTo_22; - package$text.groupBy_m7aj6v$ = groupBy_22; - package$text.groupingBy_16h5q4$ = groupingBy_2; - package$text.mapTo_wrnknd$ = mapTo_11; - package$text.map_16h5q4$ = map_11; - package$text.mapIndexedTo_4f8103$ = mapIndexedTo_10; - package$text.mapIndexed_bnyqco$ = mapIndexed_10; - package$text.mapIndexedNotNullTo_cynlyo$ = mapIndexedNotNullTo_2; - package$text.mapIndexedNotNull_iqd6dn$ = mapIndexedNotNull_2; - package$text.mapNotNullTo_jcwsr8$ = mapNotNullTo_3; - package$text.mapNotNull_10i1d3$ = mapNotNull_3; - package$text.forEach_57f55l$ = forEach_11; - package$text.withIndex_gw00vp$ = withIndex_10; - package$text.all_2pivbd$ = all_11; - package$text.any_gw00vp$ = any_23; - package$text.any_2pivbd$ = any_24; - package$text.count_2pivbd$ = count_25; - package$text.fold_riyz04$ = fold_10; - package$text.foldIndexed_l9i73k$ = foldIndexed_10; - package$text.foldRight_xy5j5e$ = foldRight_9; - package$text.foldRightIndexed_bpin9y$ = foldRightIndexed_9; - package$text.max_gw00vp$ = max_15; - package$text.maxBy_lwkw4q$ = maxBy_11; - package$text.maxWith_mfvi1w$ = maxWith_11; - package$text.min_gw00vp$ = min_15; - package$text.minBy_lwkw4q$ = minBy_11; - package$text.minWith_mfvi1w$ = minWith_11; - package$text.none_gw00vp$ = none_23; - package$text.none_2pivbd$ = none_24; - package$text.onEach_jdhw1f$ = onEach_2; - package$text.reduce_bc19pa$ = reduce_10; - package$text.reduceIndexed_8uyn22$ = reduceIndexed_10; - package$text.reduceRight_bc19pa$ = reduceRight_9; - package$text.reduceRightIndexed_8uyn22$ = reduceRightIndexed_9; - package$text.sumBy_kg4n8i$ = sumBy_10; - package$text.sumByDouble_4bpanu$ = sumByDouble_10; - package$text.chunked_94bcnn$ = chunked_3; - package$text.chunked_hq8uo9$ = chunked_4; - package$text.chunkedSequence_94bcnn$ = chunkedSequence; - package$text.chunkedSequence_hq8uo9$ = chunkedSequence_0; - package$text.partition_2pivbd$ = partition_10; - package$text.partition_ouje1d$ = partition_11; - package$text.windowed_l0nco6$ = windowed_3; - package$text.windowed_tbil1a$ = windowed_4; - package$text.windowedSequence_l0nco6$ = windowedSequence; - package$text.windowedSequence_tbil1a$ = windowedSequence_0; - package$text.zip_b6aurr$ = zip_57; - package$text.zip_tac5w1$ = zip_58; - package$text.zipWithNext_gw00vp$ = zipWithNext_3; - package$text.zipWithNext_hf4kax$ = zipWithNext_4; - package$text.asIterable_gw00vp$ = asIterable_11; - package$text.asSequence_gw00vp$ = asSequence_11; - package$collections.get_lastIndex_9hsmwz$ = get_lastIndex_8; - package$collections.get_lastIndex_rnn80q$ = get_lastIndex_9; - package$collections.get_lastIndex_o5f02i$ = get_lastIndex_10; - package$collections.get_lastIndex_k4ndbq$ = get_lastIndex_11; - package$collections.getOrNull_h8io69$ = getOrNull_10; - package$collections.getOrNull_k9lyrg$ = getOrNull_11; - package$collections.getOrNull_hlz5c8$ = getOrNull_12; - package$collections.getOrNull_7156lo$ = getOrNull_13; - package$collections.firstOrNull_9hsmwz$ = firstOrNull_24; - package$collections.firstOrNull_rnn80q$ = firstOrNull_25; - package$collections.firstOrNull_o5f02i$ = firstOrNull_26; - package$collections.firstOrNull_k4ndbq$ = firstOrNull_27; - package$collections.get_indices_9hsmwz$ = get_indices_8; - package$collections.get_indices_rnn80q$ = get_indices_9; - package$collections.get_indices_o5f02i$ = get_indices_10; - package$collections.get_indices_k4ndbq$ = get_indices_11; - package$collections.lastOrNull_9hsmwz$ = lastOrNull_25; - package$collections.lastOrNull_rnn80q$ = lastOrNull_26; - package$collections.lastOrNull_o5f02i$ = lastOrNull_27; - package$collections.lastOrNull_k4ndbq$ = lastOrNull_28; - package$collections.random_b7l3ya$ = random_31; - package$collections.random_2qnwpx$ = random_32; - package$collections.random_i3mfo9$ = random_33; - package$collections.random_7icwln$ = random_34; - package$kotlin.UInt = UInt; - package$kotlin.ULong = ULong; - package$kotlin.UByte = UByte; - package$kotlin.UShort = UShort; - package$collections.singleOrNull_9hsmwz$ = singleOrNull_24; - package$collections.singleOrNull_rnn80q$ = singleOrNull_25; - package$collections.singleOrNull_o5f02i$ = singleOrNull_26; - package$collections.singleOrNull_k4ndbq$ = singleOrNull_27; - package$collections.drop_h8io69$ = drop_12; - package$collections.drop_k9lyrg$ = drop_13; - package$collections.drop_hlz5c8$ = drop_14; - package$collections.drop_7156lo$ = drop_15; - package$collections.dropLast_h8io69$ = dropLast_11; - package$collections.dropLast_k9lyrg$ = dropLast_12; - package$collections.dropLast_hlz5c8$ = dropLast_13; - package$collections.dropLast_7156lo$ = dropLast_14; - package$collections.take_h8io69$ = take_12; - package$collections.take_k9lyrg$ = take_13; - package$collections.take_hlz5c8$ = take_14; - package$collections.take_7156lo$ = take_15; - package$collections.slice_s5302e$ = slice_23; - package$collections.slice_ol8wd$ = slice_24; - package$collections.slice_ct67gf$ = slice_25; - package$collections.slice_n4i5zx$ = slice_26; - package$collections.slice_m409qm$ = slice_27; - package$collections.slice_o2bt9t$ = slice_28; - package$collections.slice_pku3j9$ = slice_29; - package$collections.slice_1clitb$ = slice_30; - package$collections.sliceArray_fhxhza$ = sliceArray_17; - package$collections.sliceArray_ev9i1p$ = sliceArray_18; - package$collections.sliceArray_lpzpbj$ = sliceArray_19; - package$collections.sliceArray_q24qi5$ = sliceArray_20; - package$collections.sliceArray_s5302e$ = sliceArray_21; - package$collections.sliceArray_ol8wd$ = sliceArray_22; - package$collections.sliceArray_ct67gf$ = sliceArray_23; - package$collections.sliceArray_n4i5zx$ = sliceArray_24; - package$collections.takeLast_h8io69$ = takeLast_11; - package$collections.takeLast_k9lyrg$ = takeLast_12; - package$collections.takeLast_hlz5c8$ = takeLast_13; - package$collections.takeLast_7156lo$ = takeLast_14; - package$collections.reversed_9hsmwz$ = reversed_14; - package$collections.reversed_rnn80q$ = reversed_15; - package$collections.reversed_o5f02i$ = reversed_16; - package$collections.reversed_k4ndbq$ = reversed_17; - package$collections.sortDescending_9hsmwz$ = sortDescending_8; - package$collections.sortDescending_rnn80q$ = sortDescending_9; - package$collections.sortDescending_o5f02i$ = sortDescending_10; - package$collections.sortDescending_k4ndbq$ = sortDescending_11; - package$collections.sorted_9hsmwz$ = sorted_9; - package$collections.sorted_rnn80q$ = sorted_10; - package$collections.sorted_o5f02i$ = sorted_11; - package$collections.sorted_k4ndbq$ = sorted_12; - package$collections.sortedArray_9hsmwz$ = sortedArray_7; - package$collections.sortedArray_rnn80q$ = sortedArray_8; - package$collections.sortedArray_o5f02i$ = sortedArray_9; - package$collections.sortedArray_k4ndbq$ = sortedArray_10; - package$collections.sortedArrayDescending_9hsmwz$ = sortedArrayDescending_7; - package$collections.sortedArrayDescending_rnn80q$ = sortedArrayDescending_8; - package$collections.sortedArrayDescending_o5f02i$ = sortedArrayDescending_9; - package$collections.sortedArrayDescending_k4ndbq$ = sortedArrayDescending_10; - package$collections.sortedDescending_9hsmwz$ = sortedDescending_9; - package$collections.sortedDescending_rnn80q$ = sortedDescending_10; - package$collections.sortedDescending_o5f02i$ = sortedDescending_11; - package$collections.sortedDescending_k4ndbq$ = sortedDescending_12; - package$collections.contentEquals_yvstjl$ = contentEquals_0; - package$collections.contentEquals_oi0tr9$ = contentEquals_1; - package$collections.contentEquals_7u5a2r$ = contentEquals_2; - package$collections.contentEquals_7t078x$ = contentEquals_3; - package$collections.contentHashCode_9hsmwz$ = contentHashCode_0; - package$collections.contentHashCode_rnn80q$ = contentHashCode_1; - package$collections.contentHashCode_o5f02i$ = contentHashCode_2; - package$collections.contentHashCode_k4ndbq$ = contentHashCode_3; - package$collections.contentToString_9hsmwz$ = contentToString; - package$collections.contentToString_rnn80q$ = contentToString_0; - package$collections.contentToString_o5f02i$ = contentToString_1; - package$collections.contentToString_k4ndbq$ = contentToString_2; - package$collections.copyOf_tmsbgo$ = copyOf_10; - package$collections.copyOf_se6h4x$ = copyOf_11; - package$collections.copyOf_964n91$ = copyOf_8; - package$collections.copyOf_i2lc79$ = copyOf_9; - package$collections.copyOf_c03ot6$ = copyOf_18; - package$collections.copyOf_3aefkx$ = copyOf_19; - package$collections.copyOf_mrm5p$ = copyOf_16; - package$collections.copyOf_m2jy6x$ = copyOf_17; - package$collections.copyOfRange_6pxxqk$ = copyOfRange_6; - package$collections.copyOfRange_2n8m0j$ = copyOfRange_7; - package$collections.copyOfRange_ietg8x$ = copyOfRange_4; - package$collections.copyOfRange_qxueih$ = copyOfRange_5; - package$collections.plus_c03ot6$ = plus_30; - package$collections.plus_uxdaoa$ = plus_31; - package$collections.plus_jlnu8a$ = plus_28; - package$collections.plus_s7ir3o$ = plus_29; - package$collections.plus_gm02yb$ = plus_19; - package$collections.plus_677egv$ = plus_20; - package$collections.plus_38kby7$ = plus_21; - package$collections.plus_c0pbm5$ = plus_22; - package$collections.plus_mgkctd$ = plus_48; - package$collections.plus_tq12cv$ = plus_49; - package$collections.plus_ndt7zj$ = plus_46; - package$collections.plus_907jet$ = plus_47; - package$collections.sort_9hsmwz$ = sort_0; - package$collections.sort_rnn80q$ = sort_1; - package$collections.sort_o5f02i$ = sort_2; - package$collections.sort_k4ndbq$ = sort_3; - package$collections.toTypedArray_9hsmwz$ = toTypedArray; - package$collections.toTypedArray_rnn80q$ = toTypedArray_0; - package$collections.toTypedArray_o5f02i$ = toTypedArray_1; - package$collections.toTypedArray_k4ndbq$ = toTypedArray_2; - package$collections.toUByteArray_hpq79g$ = toUByteArray; - package$collections.toUIntArray_ndskub$ = toUIntArray; - package$collections.toULongArray_d4vpow$ = toULongArray; - package$collections.toUShortArray_nmmbue$ = toUShortArray; - package$collections.withIndex_9hsmwz$ = withIndex_11; - package$collections.withIndex_rnn80q$ = withIndex_12; - package$collections.withIndex_o5f02i$ = withIndex_13; - package$collections.withIndex_k4ndbq$ = withIndex_14; - package$collections.max_9hsmwz$ = max_16; - package$collections.max_rnn80q$ = max_17; - package$collections.max_o5f02i$ = max_18; - package$collections.max_k4ndbq$ = max_19; - package$collections.maxWith_tn4aoe$ = maxWith_12; - package$collections.maxWith_b44h28$ = maxWith_13; - package$collections.maxWith_yaj5y8$ = maxWith_14; - package$collections.maxWith_902cl0$ = maxWith_15; - package$collections.min_9hsmwz$ = min_16; - package$collections.min_rnn80q$ = min_17; - package$collections.min_o5f02i$ = min_18; - package$collections.min_k4ndbq$ = min_19; - package$collections.minWith_tn4aoe$ = minWith_12; - package$collections.minWith_b44h28$ = minWith_13; - package$collections.minWith_yaj5y8$ = minWith_14; - package$collections.minWith_902cl0$ = minWith_15; - package$collections.zip_dqp5xi$ = zip_59; - package$collections.zip_sgqn2v$ = zip_60; - package$collections.zip_t2lyjh$ = zip_61; - package$collections.zip_60tpzb$ = zip_62; - package$collections.zip_6x2jmc$ = zip_67; - package$collections.zip_iifz73$ = zip_68; - package$collections.zip_19c7vn$ = zip_69; - package$collections.zip_y9wwht$ = zip_70; - package$collections.zip_yvstjl$ = zip_75; - package$collections.zip_oi0tr9$ = zip_76; - package$collections.zip_7u5a2r$ = zip_77; - package$collections.zip_7t078x$ = zip_78; - package$collections.sum_ndskub$ = sum_23; - package$collections.sum_d4vpow$ = sum_24; - package$collections.sum_hpq79g$ = sum_25; - package$collections.sum_nmmbue$ = sum_26; - package$collections.toUByteArray_dnd7nw$ = toUByteArray_1; - package$collections.toUIntArray_8tr39h$ = toUIntArray_1; - package$collections.toULongArray_92iq3c$ = toULongArray_1; - package$collections.toUShortArray_vdg9qq$ = toUShortArray_1; - package$collections.sum_hbg50x$ = sum_31; - package$collections.sum_tyefd0$ = sum_32; - package$collections.sum_yj8wxk$ = sum_33; - package$collections.sum_n76072$ = sum_34; - package$comparisons.maxOf_oqfnby$ = maxOf_1; - package$comparisons.maxOf_jpm79w$ = maxOf_2; - package$comparisons.maxOf_jl2jf8$ = maxOf_3; - package$comparisons.maxOf_2ahd1g$ = maxOf_4; - package$comparisons.minOf_oqfnby$ = minOf_1; - package$comparisons.minOf_jpm79w$ = minOf_2; - package$comparisons.minOf_jl2jf8$ = minOf_3; - package$comparisons.minOf_2ahd1g$ = minOf_4; - package$ranges.random_7v08js$ = random_37; - package$ranges.random_nk0vix$ = random_38; - package$ranges.contains_dwk81l$ = contains_45; - package$ranges.contains_jxvyg8$ = contains_46; - package$ranges.contains_at9xrl$ = contains_47; - package$ranges.contains_dwe1qd$ = contains_48; - package$ranges.contains_4lp1ib$ = contains_49; - package$ranges.contains_kug9t0$ = contains_50; - package$ranges.downTo_y54h1t$ = downTo_16; - package$ranges.downTo_ibvkqp$ = downTo_17; - package$ranges.downTo_y9o4wh$ = downTo_18; - package$ranges.downTo_rdgzmv$ = downTo_19; - package$ranges.reversed_i0sryf$ = reversed_18; - package$ranges.reversed_pys8o6$ = reversed_19; - package$ranges.step_f4enhh$ = step_2; - package$ranges.step_7edafj$ = step_3; - package$ranges.until_y54h1t$ = until_16; - package$ranges.until_ibvkqp$ = until_17; - package$ranges.until_y9o4wh$ = until_18; - package$ranges.until_rdgzmv$ = until_19; - package$ranges.coerceAtLeast_ibvkqp$ = coerceAtLeast_6; - package$ranges.coerceAtLeast_y9o4wh$ = coerceAtLeast_7; - package$ranges.coerceAtLeast_y54h1t$ = coerceAtLeast_8; - package$ranges.coerceAtLeast_rdgzmv$ = coerceAtLeast_9; - package$ranges.coerceAtMost_ibvkqp$ = coerceAtMost_6; - package$ranges.coerceAtMost_y9o4wh$ = coerceAtMost_7; - package$ranges.coerceAtMost_y54h1t$ = coerceAtMost_8; - package$ranges.coerceAtMost_rdgzmv$ = coerceAtMost_9; - package$ranges.coerceIn_c1v3ga$ = coerceIn_10; - package$ranges.coerceIn_x7zcdb$ = coerceIn_11; - package$ranges.coerceIn_mkpui5$ = coerceIn_12; - package$ranges.coerceIn_9bl8v3$ = coerceIn_13; - package$ranges.coerceIn_na0ld7$ = coerceIn_14; - package$ranges.coerceIn_pt40p3$ = coerceIn_15; - package$sequences.sum_qwmbzz$ = sum_35; - package$sequences.sum_guin2q$ = sum_36; - package$sequences.sum_lfd4na$ = sum_37; - package$sequences.sum_3cv170$ = sum_38; - var package$math = package$kotlin.math || (package$kotlin.math = {}); - Object.defineProperty(package$math, 'PI', {get: function () { - return PI; - }}); - Object.defineProperty(package$math, 'E', {get: function () { - return E; - }}); - package$kotlin.Annotation = Annotation; - package$kotlin.CharSequence = CharSequence; - package$collections.Iterable = Iterable; - package$collections.MutableIterable = MutableIterable; - package$collections.MutableCollection = MutableCollection; - package$collections.List = List; - package$collections.MutableList = MutableList; - package$collections.Set = Set; - package$collections.MutableSet = MutableSet; - Map.Entry = Map$Entry; - package$collections.Map = Map; - MutableMap.MutableEntry = MutableMap$MutableEntry; - package$collections.MutableMap = MutableMap; - package$kotlin.Function = Function_0; - package$collections.Iterator = Iterator; - package$collections.MutableIterator = MutableIterator; - package$collections.ListIterator = ListIterator; - package$collections.MutableListIterator = MutableListIterator; - package$collections.ByteIterator = ByteIterator; - package$collections.CharIterator = CharIterator; - package$collections.ShortIterator = ShortIterator; - package$collections.IntIterator = IntIterator; - package$collections.LongIterator = LongIterator; - package$collections.FloatIterator = FloatIterator; - package$collections.DoubleIterator = DoubleIterator; - package$collections.BooleanIterator = BooleanIterator; - package$ranges.CharProgressionIterator = CharProgressionIterator; - package$ranges.IntProgressionIterator = IntProgressionIterator; - package$ranges.LongProgressionIterator = LongProgressionIterator; - Object.defineProperty(CharProgression, 'Companion', {get: CharProgression$Companion_getInstance}); - package$ranges.CharProgression = CharProgression; - Object.defineProperty(IntProgression, 'Companion', {get: IntProgression$Companion_getInstance}); - package$ranges.IntProgression = IntProgression; - Object.defineProperty(LongProgression, 'Companion', {get: LongProgression$Companion_getInstance}); - package$ranges.LongProgression = LongProgression; - package$ranges.ClosedRange = ClosedRange; - Object.defineProperty(CharRange, 'Companion', {get: CharRange$Companion_getInstance}); - package$ranges.CharRange = CharRange; - Object.defineProperty(IntRange, 'Companion', {get: IntRange$Companion_getInstance}); - package$ranges.IntRange = IntRange; - Object.defineProperty(LongRange, 'Companion', {get: LongRange$Companion_getInstance}); - package$ranges.LongRange = LongRange; - Object.defineProperty(package$kotlin, 'Unit', {get: Unit_getInstance}); - Object.defineProperty(AnnotationTarget, 'CLASS', {get: AnnotationTarget$CLASS_getInstance}); - Object.defineProperty(AnnotationTarget, 'ANNOTATION_CLASS', {get: AnnotationTarget$ANNOTATION_CLASS_getInstance}); - Object.defineProperty(AnnotationTarget, 'TYPE_PARAMETER', {get: AnnotationTarget$TYPE_PARAMETER_getInstance}); - Object.defineProperty(AnnotationTarget, 'PROPERTY', {get: AnnotationTarget$PROPERTY_getInstance}); - Object.defineProperty(AnnotationTarget, 'FIELD', {get: AnnotationTarget$FIELD_getInstance}); - Object.defineProperty(AnnotationTarget, 'LOCAL_VARIABLE', {get: AnnotationTarget$LOCAL_VARIABLE_getInstance}); - Object.defineProperty(AnnotationTarget, 'VALUE_PARAMETER', {get: AnnotationTarget$VALUE_PARAMETER_getInstance}); - Object.defineProperty(AnnotationTarget, 'CONSTRUCTOR', {get: AnnotationTarget$CONSTRUCTOR_getInstance}); - Object.defineProperty(AnnotationTarget, 'FUNCTION', {get: AnnotationTarget$FUNCTION_getInstance}); - Object.defineProperty(AnnotationTarget, 'PROPERTY_GETTER', {get: AnnotationTarget$PROPERTY_GETTER_getInstance}); - Object.defineProperty(AnnotationTarget, 'PROPERTY_SETTER', {get: AnnotationTarget$PROPERTY_SETTER_getInstance}); - Object.defineProperty(AnnotationTarget, 'TYPE', {get: AnnotationTarget$TYPE_getInstance}); - Object.defineProperty(AnnotationTarget, 'EXPRESSION', {get: AnnotationTarget$EXPRESSION_getInstance}); - Object.defineProperty(AnnotationTarget, 'FILE', {get: AnnotationTarget$FILE_getInstance}); - Object.defineProperty(AnnotationTarget, 'TYPEALIAS', {get: AnnotationTarget$TYPEALIAS_getInstance}); - var package$annotation = package$kotlin.annotation || (package$kotlin.annotation = {}); - package$annotation.AnnotationTarget = AnnotationTarget; - Object.defineProperty(AnnotationRetention, 'SOURCE', {get: AnnotationRetention$SOURCE_getInstance}); - Object.defineProperty(AnnotationRetention, 'BINARY', {get: AnnotationRetention$BINARY_getInstance}); - Object.defineProperty(AnnotationRetention, 'RUNTIME', {get: AnnotationRetention$RUNTIME_getInstance}); - package$annotation.AnnotationRetention = AnnotationRetention; - package$annotation.Target = Target; - package$annotation.Retention = Retention; - package$annotation.Repeatable = Repeatable; - package$annotation.MustBeDocumented = MustBeDocumented; - var package$internal = package$kotlin.internal || (package$kotlin.internal = {}); - package$internal.PureReifiable = PureReifiable; - package$internal.PlatformDependent = PlatformDependent; - package$internal.getProgressionLastElement_qt1dr2$ = getProgressionLastElement; - package$internal.getProgressionLastElement_b9bd0d$ = getProgressionLastElement_0; - var package$reflect = package$kotlin.reflect || (package$kotlin.reflect = {}); - package$reflect.KAnnotatedElement = KAnnotatedElement; - package$reflect.KCallable = KCallable; - package$reflect.KClass = KClass; - package$reflect.KClassifier = KClassifier; - package$reflect.KDeclarationContainer = KDeclarationContainer; - package$reflect.KFunction = KFunction; - Object.defineProperty(KParameter$Kind, 'INSTANCE', {get: KParameter$Kind$INSTANCE_getInstance}); - Object.defineProperty(KParameter$Kind, 'EXTENSION_RECEIVER', {get: KParameter$Kind$EXTENSION_RECEIVER_getInstance}); - Object.defineProperty(KParameter$Kind, 'VALUE', {get: KParameter$Kind$VALUE_getInstance}); - KParameter.Kind = KParameter$Kind; - package$reflect.KParameter = KParameter; - KProperty.Accessor = KProperty$Accessor; - KProperty.Getter = KProperty$Getter; - package$reflect.KProperty = KProperty; - KMutableProperty.Setter = KMutableProperty$Setter; - package$reflect.KMutableProperty = KMutableProperty; - KProperty0.Getter = KProperty0$Getter; - package$reflect.KProperty0 = KProperty0; - KMutableProperty0.Setter = KMutableProperty0$Setter; - package$reflect.KMutableProperty0 = KMutableProperty0; - KProperty1.Getter = KProperty1$Getter; - package$reflect.KProperty1 = KProperty1; - KMutableProperty1.Setter = KMutableProperty1$Setter; - package$reflect.KMutableProperty1 = KMutableProperty1; - KProperty2.Getter = KProperty2$Getter; - package$reflect.KProperty2 = KProperty2; - KMutableProperty2.Setter = KMutableProperty2$Setter; - package$reflect.KMutableProperty2 = KMutableProperty2; - package$reflect.KType = KType; - Object.defineProperty(KTypeProjection, 'Companion', {get: KTypeProjection$Companion_getInstance}); - package$reflect.KTypeProjection = KTypeProjection; - package$reflect.KTypeParameter = KTypeParameter; - Object.defineProperty(KVariance, 'INVARIANT', {get: KVariance$INVARIANT_getInstance}); - Object.defineProperty(KVariance, 'IN', {get: KVariance$IN_getInstance}); - Object.defineProperty(KVariance, 'OUT', {get: KVariance$OUT_getInstance}); - package$reflect.KVariance = KVariance; - Object.defineProperty(KVisibility, 'PUBLIC', {get: KVisibility$PUBLIC_getInstance}); - Object.defineProperty(KVisibility, 'PROTECTED', {get: KVisibility$PROTECTED_getInstance}); - Object.defineProperty(KVisibility, 'INTERNAL', {get: KVisibility$INTERNAL_getInstance}); - Object.defineProperty(KVisibility, 'PRIVATE', {get: KVisibility$PRIVATE_getInstance}); - package$reflect.KVisibility = KVisibility; - _.arrayIterator = arrayIterator; - _.booleanArrayIterator = booleanArrayIterator; - _.byteArrayIterator = byteArrayIterator; - _.shortArrayIterator = shortArrayIterator; - _.charArrayIterator = charArrayIterator; - _.intArrayIterator = intArrayIterator; - _.floatArrayIterator = floatArrayIterator; - _.doubleArrayIterator = doubleArrayIterator; - _.longArrayIterator = longArrayIterator; - _.PropertyMetadata = PropertyMetadata; - _.noWhenBranchMatched = noWhenBranchMatched; - _.subSequence = subSequence; - _.captureStack = captureStack; - _.newThrowable = newThrowable; - _.BoxedChar = BoxedChar; - _.arrayConcat = arrayConcat; - _.primitiveArrayConcat = primitiveArrayConcat; - _.booleanArrayOf = booleanArrayOf; - _.charArrayOf = charArrayOf; - _.longArrayOf = longArrayOf; - var package$coroutines = package$kotlin.coroutines || (package$kotlin.coroutines = {}); - package$coroutines.CoroutineImpl = CoroutineImpl; - Object.defineProperty(package$coroutines, 'CompletedContinuation', {get: CompletedContinuation_getInstance}); - var package$intrinsics = package$coroutines.intrinsics || (package$coroutines.intrinsics = {}); - package$intrinsics.createCoroutineUnintercepted_x18nsh$ = createCoroutineUnintercepted; - package$intrinsics.createCoroutineUnintercepted_3a617i$ = createCoroutineUnintercepted_0; - package$intrinsics.intercepted_f9mg25$ = intercepted; - package$kotlin.emptyArray_287e2$ = emptyArray; - package$kotlin.lazy_klfg04$ = lazy; - package$kotlin.lazy_kls4a0$ = lazy_0; - package$kotlin.lazy_c7lj6g$ = lazy_1; - package$kotlin.fillFrom_dgzutr$ = fillFrom; - package$kotlin.arrayCopyResize_xao4iu$ = arrayCopyResize; - package$kotlin.arrayPlusCollection_ksxw79$ = arrayPlusCollection; - package$kotlin.fillFromCollection_40q1uj$ = fillFromCollection; - package$kotlin.copyArrayType_dgzutr$ = copyArrayType; - package$kotlin.jsIsType_dgzutr$ = jsIsType; - package$collections.elementAt_8ujjk8$ = elementAt_2; - package$collections.elementAt_mrm5p$ = elementAt_3; - package$collections.elementAt_m2jy6x$ = elementAt_4; - package$collections.elementAt_c03ot6$ = elementAt_5; - package$collections.elementAt_3aefkx$ = elementAt_6; - package$collections.elementAt_rblqex$ = elementAt_7; - package$collections.elementAt_xgrzbe$ = elementAt_8; - package$collections.elementAt_1qu12l$ = elementAt_9; - package$collections.elementAt_gtcw5h$ = elementAt_10; - package$collections.asList_us0mfu$ = asList; - package$collections.asList_355ntz$ = asList_7; - package$collections.arrayCopy = arrayCopy; - package$collections.copyOf_us0mfu$ = copyOf_7; - package$collections.copyOf_rjqryz$ = copyOf_12; - package$collections.copyOf_bvy38s$ = copyOf_13; - package$collections.copyOf_l1lu5t$ = copyOf_14; - package$collections.copyOf_355ntz$ = copyOf_15; - package$collections.copyOf_rblqex$ = copyOf_20; - package$collections.copyOf_xgrzbe$ = copyOf_21; - package$collections.copyOf_1qu12l$ = copyOf_22; - package$collections.copyOf_gtcw5h$ = copyOf_23; - package$collections.copyOf_8ujjk8$ = copyOf_24; - package$collections.copyOfRange_5f8l3u$ = copyOfRange_3; - package$collections.copyOfRange_kh1mav$ = copyOfRange_8; - package$collections.copyOfRange_yfnal4$ = copyOfRange_9; - package$collections.copyOfRange_ke2ov9$ = copyOfRange_10; - package$collections.copyOfRange_wlitf7$ = copyOfRange_11; - package$collections.plus_mjy6jw$ = plus_27; - package$collections.plus_tec1tx$ = plus_50; - package$collections.plus_omthmc$ = plus_32; - package$collections.plus_pmvpm9$ = plus_51; - package$collections.plus_taaqy$ = plus_33; - package$collections.plus_qsfoml$ = plus_52; - package$collections.plus_yax8s4$ = plus_34; - package$collections.plus_wxyzfz$ = plus_53; - package$collections.plus_o2f9me$ = plus_35; - package$collections.plus_b32j0n$ = plus_36; - package$collections.plus_lamh9t$ = plus_37; - package$collections.plus_tizwwv$ = plus_38; - package$collections.plus_q1yphb$ = plus_39; - package$collections.plus_nmtg5l$ = plus_40; - package$collections.plus_gtiwrj$ = plus_41; - package$collections.plus_5ltrxd$ = plus_42; - package$collections.plus_cr20yn$ = plus_43; - package$collections.plus_4ow3it$ = plus_44; - package$collections.plus_vu4gah$ = plus_45; - package$collections.plusElement_mjy6jw$ = plusElement_3; - package$collections.sort_se6h4x$ = sort_4; - package$collections.sort_pbinho$ = sort_5; - package$collections.sort_ra7spe$ = sort_6; - package$collections.toTypedArray_964n91$ = toTypedArray_3; - package$collections.toTypedArray_i2lc79$ = toTypedArray_4; - package$collections.toTypedArray_tmsbgo$ = toTypedArray_5; - package$collections.toTypedArray_se6h4x$ = toTypedArray_6; - package$collections.toTypedArray_rjqryz$ = toTypedArray_7; - package$collections.toTypedArray_bvy38s$ = toTypedArray_8; - package$collections.toTypedArray_l1lu5t$ = toTypedArray_9; - package$collections.toTypedArray_355ntz$ = toTypedArray_10; - package$collections.reverse_vvxzk3$ = reverse_12; - package$comparisons.maxOf_sdesaw$ = maxOf_9; - package$comparisons.maxOf_3pjtqy$ = maxOf_13; - package$comparisons.maxOf_73gzaq$ = maxOf_16; - package$comparisons.minOf_sdesaw$ = minOf_9; - package$comparisons.minOf_3pjtqy$ = minOf_13; - package$comparisons.minOf_73gzaq$ = minOf_16; - package$text.elementAt_94bcnn$ = elementAt_11; - package$collections.elementAt_h8io69$ = elementAt_12; - package$collections.elementAt_k9lyrg$ = elementAt_13; - package$collections.elementAt_hlz5c8$ = elementAt_14; - package$collections.elementAt_7156lo$ = elementAt_15; - package$collections.asList_9hsmwz$ = asList_8; - package$collections.asList_rnn80q$ = asList_9; - package$collections.asList_o5f02i$ = asList_10; - package$collections.asList_k4ndbq$ = asList_11; - var package$jquery = _.jquery || (_.jquery = {}); - var package$ui = package$jquery.ui || (package$jquery.ui = {}); - package$ui.buttonset_vwohdt$ = buttonset; - package$ui.dialog_vwohdt$ = dialog; - package$ui.dialog_pm4xy9$ = dialog_0; - package$ui.dialog_zc05ld$ = dialog_1; - package$ui.dialog_v89ba5$ = dialog_2; - package$ui.dialog_pfp31$ = dialog_3; - package$ui.button_vwohdt$ = button; - package$ui.accordion_vwohdt$ = accordion; - package$ui.draggable_pm4xy9$ = draggable; - package$ui.selectable_vwohdt$ = selectable; - package$kotlin.Comparator = Comparator; - package$kotlin.Comparator_x4fedy$ = Comparator_0; - var package$js = package$kotlin.js || (package$kotlin.js = {}); - package$js.native = native; - package$js.nativeGetter = nativeGetter; - package$js.nativeSetter = nativeSetter; - package$js.nativeInvoke = nativeInvoke; - package$js.library = library; - package$js.marker = marker; - package$js.JsName = JsName; - package$js.JsModule = JsModule; - package$js.JsNonModule = JsNonModule; - package$js.JsQualifier = JsQualifier; - var package$jvm = package$kotlin.jvm || (package$kotlin.jvm = {}); - package$jvm.Volatile = Volatile; - package$jvm.Synchronized = Synchronized; - package$collections.copyToArray = copyToArray; - package$collections.copyToArrayImpl = copyToArrayImpl; - package$collections.copyToExistingArrayImpl = copyToArrayImpl_0; - package$collections.listOf_mh5how$ = listOf; - package$collections.setOf_mh5how$ = setOf; - package$collections.mapOf_x2b85n$ = mapOf; - package$collections.fill_dwdffb$ = fill; - package$collections.shuffle_vvxzk3$ = shuffle; - package$collections.shuffled_7wnvza$ = shuffled; - package$collections.sort_4wi501$ = sort_14; - package$collections.arrayOfNulls_83b1gz$ = arrayOfNulls; - package$collections.toSingletonMapOrSelf_1vp4qn$ = toSingletonMapOrSelf; - package$collections.toMutableMap_abgq59$ = toMutableMap; - package$collections.toSingletonMap_3imywq$ = toSingletonMap; - package$collections.copyToArrayOfAny_e0iprw$ = copyToArrayOfAny; - package$collections.AbstractMutableCollection = AbstractMutableCollection; - package$collections.AbstractMutableList = AbstractMutableList; - AbstractMutableMap.SimpleEntry_init_trwmqg$ = AbstractMutableMap$AbstractMutableMap$SimpleEntry_init; - AbstractMutableMap.SimpleEntry = AbstractMutableMap$SimpleEntry; - package$collections.AbstractMutableMap = AbstractMutableMap; - package$collections.AbstractMutableSet = AbstractMutableSet; - package$collections.ArrayList_init_mqih57$ = ArrayList_init_1; - package$collections.ArrayList = ArrayList; - package$collections.sortArrayWith_w8adym$ = sortArrayWith; - package$collections.sortArrayWith_6xblhi$ = sortArrayWith_0; - package$collections.sortArray_5zbtrs$ = sortArray; - package$collections.contentDeepHashCodeImpl = contentDeepHashCodeImpl; - Object.defineProperty(EqualityComparator, 'HashCode', {get: EqualityComparator$HashCode_getInstance}); - package$collections.EqualityComparator = EqualityComparator; - package$collections.HashMap_init_va96d4$ = HashMap_init; - package$collections.HashMap_init_q3lmfv$ = HashMap_init_0; - package$collections.HashMap_init_xf5xz2$ = HashMap_init_1; - package$collections.HashMap_init_bwtc7$ = HashMap_init_2; - package$collections.HashMap_init_73mtqc$ = HashMap_init_3; - package$collections.HashMap = HashMap; - package$collections.stringMapOf_gkrhic$ = stringMapOf; - package$collections.HashSet_init_mqih57$ = HashSet_init_0; - package$collections.HashSet_init_2wofer$ = HashSet_init_1; - package$collections.HashSet_init_ww73n8$ = HashSet_init_2; - package$collections.HashSet_init_nn01ho$ = HashSet_init_3; - package$collections.HashSet = HashSet; - package$collections.stringSetOf_vqirvp$ = stringSetOf; - package$collections.InternalHashCodeMap = InternalHashCodeMap; - package$collections.InternalMap = InternalMap; - package$collections.InternalStringMap = InternalStringMap; - package$collections.LinkedHashMap_init_p5wce1$ = LinkedHashMap_init_0; - package$collections.LinkedHashMap_init_xf5xz2$ = LinkedHashMap_init_1; - package$collections.LinkedHashMap_init_73mtqc$ = LinkedHashMap_init_3; - package$collections.LinkedHashMap = LinkedHashMap; - package$collections.linkedStringMapOf_gkrhic$ = linkedStringMapOf; - package$collections.LinkedHashSet_init_nkfcz7$ = LinkedHashSet_init; - package$collections.LinkedHashSet_init_287e2$ = LinkedHashSet_init_0; - package$collections.LinkedHashSet_init_mqih57$ = LinkedHashSet_init_1; - package$collections.LinkedHashSet_init_2wofer$ = LinkedHashSet_init_2; - package$collections.LinkedHashSet_init_ww73n8$ = LinkedHashSet_init_3; - package$collections.LinkedHashSet = LinkedHashSet; - package$collections.linkedStringSetOf_vqirvp$ = linkedStringSetOf; - package$collections.RandomAccess = RandomAccess; - var package$contracts = package$kotlin.contracts || (package$kotlin.contracts = {}); - package$contracts.InvocationKind = InvocationKind; - var package$io = package$kotlin.io || (package$kotlin.io = {}); - package$io.BaseOutput = BaseOutput; - package$io.NodeJsOutput = NodeJsOutput; - package$io.OutputToConsoleLog = OutputToConsoleLog; - package$io.BufferedOutput = BufferedOutput; - package$io.BufferedOutputToConsoleLog = BufferedOutputToConsoleLog; - Object.defineProperty(package$io, 'output', {get: function () { - return output; - }, set: function (value) { - output = value; - }}); - package$io.println = println; - package$io.println_s8jyv4$ = println_0; - package$io.print_s8jyv4$ = print; - package$coroutines.SafeContinuation_init_wj8d80$ = SafeContinuation_init; - package$coroutines.SafeContinuation = SafeContinuation; - var package$js_0 = package$coroutines.js || (package$coroutines.js = {}); - var package$internal_0 = package$js_0.internal || (package$js_0.internal = {}); - Object.defineProperty(package$internal_0, 'EmptyContinuation', {get: function () { - return EmptyContinuation; - }}); - package$js.dateLocaleOptions_49uy1x$ = dateLocaleOptions; - var package$dom = package$kotlin.dom || (package$kotlin.dom = {}); - package$dom.createElement_7cgwi1$ = createElement; - package$dom.appendElement_ldvnw0$ = appendElement; - package$dom.hasClass_46n0ku$ = hasClass; - package$dom.addClass_hhb33f$ = addClass; - package$dom.removeClass_hhb33f$ = removeClass; - package$dom.get_isText_asww5s$ = get_isText; - package$dom.get_isElement_asww5s$ = get_isElement; - var package$org = _.org || (_.org = {}); - var package$w3c = package$org.w3c || (package$org.w3c = {}); - var package$dom_0 = package$w3c.dom || (package$w3c.dom = {}); - var package$events = package$dom_0.events || (package$dom_0.events = {}); - package$events.EventListener_gbr1zf$ = EventListener; - package$dom_0.asList_kt9thq$ = asList_12; - package$dom.clear_asww5s$ = clear; - package$dom.appendText_46n0ku$ = appendText; - package$js.iterator_s8jyvk$ = iterator; - _.throwNPE = throwNPE; - _.throwCCE = throwCCE_0; - _.throwISE = throwISE; - _.throwUPAE = throwUPAE; - package$kotlin.Error_init = Error_init; - package$kotlin.Error_init_pdl1vj$ = Error_init_0; - package$kotlin.Error_init_dbl4no$ = Error_init_1; - package$kotlin.Error = Error_0; - package$kotlin.Exception_init = Exception_init; - package$kotlin.Exception_init_pdl1vj$ = Exception_init_0; - package$kotlin.Exception_init_dbl4no$ = Exception_init_1; - package$kotlin.Exception = Exception; - package$kotlin.RuntimeException_init = RuntimeException_init; - package$kotlin.RuntimeException_init_pdl1vj$ = RuntimeException_init_0; - package$kotlin.RuntimeException_init_dbl4no$ = RuntimeException_init_1; - package$kotlin.RuntimeException = RuntimeException; - package$kotlin.IllegalArgumentException_init = IllegalArgumentException_init; - package$kotlin.IllegalArgumentException_init_dbl4no$ = IllegalArgumentException_init_1; - package$kotlin.IllegalArgumentException = IllegalArgumentException; - package$kotlin.IllegalStateException_init = IllegalStateException_init; - package$kotlin.IllegalStateException_init_pdl1vj$ = IllegalStateException_init_0; - package$kotlin.IllegalStateException_init_dbl4no$ = IllegalStateException_init_1; - package$kotlin.IllegalStateException = IllegalStateException; - package$kotlin.IndexOutOfBoundsException_init = IndexOutOfBoundsException_init; - package$kotlin.IndexOutOfBoundsException = IndexOutOfBoundsException; - package$kotlin.ConcurrentModificationException_init = ConcurrentModificationException_init; - package$kotlin.ConcurrentModificationException_init_pdl1vj$ = ConcurrentModificationException_init_0; - package$kotlin.ConcurrentModificationException_init_dbl4no$ = ConcurrentModificationException_init_1; - package$kotlin.ConcurrentModificationException = ConcurrentModificationException; - package$kotlin.UnsupportedOperationException_init = UnsupportedOperationException_init; - package$kotlin.UnsupportedOperationException_init_dbl4no$ = UnsupportedOperationException_init_1; - package$kotlin.UnsupportedOperationException = UnsupportedOperationException; - package$kotlin.NumberFormatException_init = NumberFormatException_init; - package$kotlin.NumberFormatException = NumberFormatException; - package$kotlin.NullPointerException_init = NullPointerException_init; - package$kotlin.NullPointerException = NullPointerException; - package$kotlin.ClassCastException_init = ClassCastException_init; - package$kotlin.ClassCastException = ClassCastException; - package$kotlin.AssertionError_init = AssertionError_init; - package$kotlin.AssertionError_init_pdl1vj$ = AssertionError_init_0; - package$kotlin.AssertionError_init_s8jyv4$ = AssertionError_init_1; - package$kotlin.AssertionError = AssertionError; - package$kotlin.NoSuchElementException_init = NoSuchElementException_init; - package$kotlin.NoSuchElementException = NoSuchElementException; - package$kotlin.ArithmeticException_init = ArithmeticException_init; - package$kotlin.ArithmeticException = ArithmeticException; - package$kotlin.NoWhenBranchMatchedException_init = NoWhenBranchMatchedException_init; - package$kotlin.NoWhenBranchMatchedException_init_pdl1vj$ = NoWhenBranchMatchedException_init_0; - package$kotlin.NoWhenBranchMatchedException_init_dbl4no$ = NoWhenBranchMatchedException_init_1; - package$kotlin.NoWhenBranchMatchedException = NoWhenBranchMatchedException; - package$kotlin.UninitializedPropertyAccessException_init = UninitializedPropertyAccessException_init; - package$kotlin.UninitializedPropertyAccessException_init_pdl1vj$ = UninitializedPropertyAccessException_init_0; - package$kotlin.UninitializedPropertyAccessException_init_dbl4no$ = UninitializedPropertyAccessException_init_1; - package$kotlin.UninitializedPropertyAccessException = UninitializedPropertyAccessException; - package$collections.eachCount_kji7v9$ = eachCount; - package$io.Serializable = Serializable; - package$js.min_bug313$ = min_20; - package$js.max_bug313$ = max_20; - package$js.json_pyyo18$ = json; - package$js.add_g26eq9$ = add; - package$math.log_lu1900$ = log; - package$math.round_14dthe$ = round; - package$math.withSign_38ydlf$ = withSign; - package$math.get_ulp_yrwdxr$ = get_ulp; - package$math.nextUp_yrwdxr$ = nextUp; - package$math.nextDown_yrwdxr$ = nextDown; - package$math.nextTowards_38ydlf$ = nextTowards; - package$math.roundToInt_yrwdxr$ = roundToInt; - package$math.roundToLong_yrwdxr$ = roundToLong; - package$math.abs_za3lpa$ = abs_1; - package$math.get_sign_s8ev3n$ = get_sign_1; - package$math.abs_s8cxhz$ = abs_2; - package$math.min_3pjtqy$ = min_24; - package$math.max_3pjtqy$ = max_24; - package$math.get_sign_mts6qi$ = get_sign_2; - package$kotlin.isNaN_yrwdxr$ = isNaN_0; - package$kotlin.isNaN_81szk$ = isNaN_1; - package$kotlin.isInfinite_yrwdxr$ = isInfinite; - package$kotlin.isInfinite_81szk$ = isInfinite_0; - package$kotlin.isFinite_yrwdxr$ = isFinite; - package$kotlin.isFinite_81szk$ = isFinite_0; - package$js.then_eyvp0y$ = then; - package$js.then_a5sxob$ = then_0; - package$random.defaultPlatformRandom_8be2vx$ = defaultPlatformRandom; - package$random.fastLog2_kcn2v3$ = fastLog2; - package$random.doubleFromParts_6xvm5r$ = doubleFromParts; - package$ranges.rangeTo_38ydlf$ = rangeTo_1; - package$js.get_jsClass_irb06o$ = get_jsClass; - package$js.get_js_1yb8b7$ = get_js; - package$js.get_kotlin_2sk2mx$ = get_kotlin; - var package$js_1 = package$reflect.js || (package$reflect.js = {}); - var package$internal_1 = package$js_1.internal || (package$js_1.internal = {}); - package$internal_1.KClassImpl = KClassImpl; - package$internal_1.SimpleKClassImpl = SimpleKClassImpl; - package$internal_1.PrimitiveKClassImpl = PrimitiveKClassImpl; - Object.defineProperty(package$internal_1, 'NothingKClassImpl', {get: NothingKClassImpl_getInstance}); - Object.defineProperty(package$internal_1, 'PrimitiveClasses', {get: PrimitiveClasses_getInstance}); - _.getKClass = getKClass; - _.getKClassFromExpression = getKClassFromExpression; - package$js.reset_xjqeni$ = reset; - package$js.get_kmxd4d$ = get_0; - package$js.asArray_tgewol$ = asArray; - package$sequences.ConstrainedOnceSequence = ConstrainedOnceSequence; - package$text.isWhitespace_myv2d0$ = isWhitespace; - package$text.isHighSurrogate_myv2d0$ = isHighSurrogate; - package$text.isLowSurrogate_myv2d0$ = isLowSurrogate; - package$text.toBoolean_pdl1vz$ = toBoolean; - package$text.toByte_pdl1vz$ = toByte_0; - package$text.toByte_6ic1pp$ = toByte_1; - package$text.toShort_pdl1vz$ = toShort_0; - package$text.toShort_6ic1pp$ = toShort_1; - package$text.toInt_pdl1vz$ = toInt; - package$text.toInt_6ic1pp$ = toInt_0; - package$text.toLong_pdl1vz$ = toLong; - package$text.toLong_6ic1pp$ = toLong_0; - package$text.toDouble_pdl1vz$ = toDouble; - package$text.toDoubleOrNull_pdl1vz$ = toDoubleOrNull; - package$text.toString_dqglrj$ = toString_3; - package$text.toString_if0zpk$ = toString_2; - package$text.checkRadix_za3lpa$ = checkRadix; - package$text.digitOf_xvg9q0$ = digitOf; - Object.defineProperty(RegexOption, 'IGNORE_CASE', {get: RegexOption$IGNORE_CASE_getInstance}); - Object.defineProperty(RegexOption, 'MULTILINE', {get: RegexOption$MULTILINE_getInstance}); - package$text.RegexOption = RegexOption; - package$text.MatchGroup = MatchGroup; - package$text.StringBuilder_init_za3lpa$ = StringBuilder_init; - Object.defineProperty(Regex, 'Companion', {get: Regex$Companion_getInstance}); - package$text.Regex_init_sb3q2$ = Regex_init; - package$text.Regex_init_61zpoe$ = Regex_init_0; - package$text.Regex = Regex; - package$text.Regex_sb3q2$ = Regex_0; - package$text.Regex_61zpoe$ = Regex_1; - package$text.String_4hbowm$ = String_1; - package$text.String_8chfmy$ = String_2; - package$text.concatToString_355ntz$ = concatToString; - package$text.concatToString_wlitf7$ = concatToString_0; - package$text.toCharArray_pdl1vz$ = toCharArray_1; - package$text.toCharArray_qgyqat$ = toCharArray_2; - package$text.decodeToString_964n91$ = decodeToString; - package$text.decodeToString_vahp5y$ = decodeToString_0; - package$text.encodeToByteArray_pdl1vz$ = encodeToByteArray; - package$text.encodeToByteArray_i5b2wk$ = encodeToByteArray_0; - package$text.compareTo_7epoxm$ = compareTo; - package$text.get_CASE_INSENSITIVE_ORDER_6eet4j$ = get_CASE_INSENSITIVE_ORDER; - package$text.startsWith_7epoxm$ = startsWith; - package$text.startsWith_3azpy2$ = startsWith_0; - package$text.endsWith_7epoxm$ = endsWith; - package$text.matches_rjktp$ = matches; - package$text.isBlank_gw00vp$ = isBlank; - package$text.equals_igcy3c$ = equals_0; - package$text.regionMatches_h3ii2q$ = regionMatches; - package$text.capitalize_pdl1vz$ = capitalize; - package$text.decapitalize_pdl1vz$ = decapitalize; - package$text.repeat_94bcnn$ = repeat; - package$text.replace_680rmw$ = replace; - package$text.replace_r2fvfm$ = replace_0; - package$text.replaceFirst_680rmw$ = replaceFirst; - package$text.replaceFirst_r2fvfm$ = replaceFirst_0; - package$text.Appendable = Appendable; - package$text.StringBuilder_init_6bul2c$ = StringBuilder_init_0; - package$text.StringBuilder = StringBuilder; - package$text.clear_dn5lc7$ = clear_0; - package$text.CharacterCodingException_init = CharacterCodingException_init; - package$text.CharacterCodingException = CharacterCodingException; - package$text.encodeUtf8_eq9l2e$ = encodeUtf8; - package$text.decodeUtf8_bndkiu$ = decodeUtf8; - package$dom_0.get_NONZERO_mhbikd$ = get_NONZERO; - package$dom_0.get_NONE_xgljrz$ = get_NONE; - package$dom_0.get_DEFAULT_b5608t$ = get_DEFAULT; - package$dom_0.get_DEFAULT_xqeuit$ = get_DEFAULT_0; - package$dom_0.get_LOW_32fsn1$ = get_LOW_0; - package$dom_0.get_CLASSIC_xc77to$ = get_CLASSIC; - var package$fetch = package$w3c.fetch || (package$w3c.fetch = {}); - package$fetch.get_OMIT_yuzaxt$ = get_OMIT; - package$dom_0.get_AUTO_gi1pud$ = get_AUTO_0; - package$dom_0.get_CENTER_ltkif$ = get_CENTER_0; - package$dom_0.get_BORDER_eb1l8y$ = get_BORDER; - package$dom_0.get_LOADING_cuyr1n$ = get_LOADING; - package$dom_0.get_INTERACTIVE_cuyr1n$ = get_INTERACTIVE; - package$dom_0.get_COMPLETE_cuyr1n$ = get_COMPLETE; - package$dom_0.get_EMPTY_k3kzzn$ = get_EMPTY; - package$dom_0.get_MAYBE_k3kzzn$ = get_MAYBE; - package$dom_0.get_PROBABLY_k3kzzn$ = get_PROBABLY; - package$dom_0.get_DISABLED_ygmcel$ = get_DISABLED; - package$dom_0.get_HIDDEN_ygmcel$ = get_HIDDEN; - package$dom_0.get_SHOWING_ygmcel$ = get_SHOWING; - package$dom_0.get_SUBTITLES_fw7o78$ = get_SUBTITLES; - package$dom_0.get_CAPTIONS_fw7o78$ = get_CAPTIONS; - package$dom_0.get_DESCRIPTIONS_fw7o78$ = get_DESCRIPTIONS; - package$dom_0.get_CHAPTERS_fw7o78$ = get_CHAPTERS; - package$dom_0.get_METADATA_fw7o78$ = get_METADATA; - package$dom_0.get_SELECT_efic67$ = get_SELECT; - package$dom_0.get_START_efic67$ = get_START; - package$dom_0.get_END_efic67$ = get_END; - package$dom_0.get_PRESERVE_efic67$ = get_PRESERVE; - package$dom_0.get_EVENODD_mhbikd$ = get_EVENODD; - package$dom_0.get_LOW_lt2gtk$ = get_LOW; - package$dom_0.get_MEDIUM_lt2gtk$ = get_MEDIUM; - package$dom_0.get_HIGH_lt2gtk$ = get_HIGH; - package$dom_0.get_BUTT_w26v20$ = get_BUTT; - package$dom_0.get_ROUND_w26v20$ = get_ROUND; - package$dom_0.get_SQUARE_w26v20$ = get_SQUARE; - package$dom_0.get_ROUND_1xtghu$ = get_ROUND_0; - package$dom_0.get_BEVEL_1xtghu$ = get_BEVEL; - package$dom_0.get_MITER_1xtghu$ = get_MITER; - package$dom_0.get_START_hbi5si$ = get_START_0; - package$dom_0.get_END_hbi5si$ = get_END_0; - package$dom_0.get_LEFT_hbi5si$ = get_LEFT; - package$dom_0.get_RIGHT_hbi5si$ = get_RIGHT; - package$dom_0.get_CENTER_hbi5si$ = get_CENTER; - package$dom_0.get_TOP_oz2y96$ = get_TOP; - package$dom_0.get_HANGING_oz2y96$ = get_HANGING; - package$dom_0.get_MIDDLE_oz2y96$ = get_MIDDLE; - package$dom_0.get_ALPHABETIC_oz2y96$ = get_ALPHABETIC; - package$dom_0.get_IDEOGRAPHIC_oz2y96$ = get_IDEOGRAPHIC; - package$dom_0.get_BOTTOM_oz2y96$ = get_BOTTOM; - package$dom_0.get_LTR_qxot9j$ = get_LTR; - package$dom_0.get_RTL_qxot9j$ = get_RTL; - package$dom_0.get_INHERIT_qxot9j$ = get_INHERIT; - package$dom_0.get_AUTO_huqvoj$ = get_AUTO; - package$dom_0.get_MANUAL_huqvoj$ = get_MANUAL; - package$dom_0.get_FLIPY_xgljrz$ = get_FLIPY; - package$dom_0.get_NONE_b5608t$ = get_NONE_0; - package$dom_0.get_PREMULTIPLY_b5608t$ = get_PREMULTIPLY; - package$dom_0.get_NONE_xqeuit$ = get_NONE_1; - package$dom_0.get_PIXELATED_32fsn1$ = get_PIXELATED; - package$dom_0.get_MEDIUM_32fsn1$ = get_MEDIUM_0; - package$dom_0.get_HIGH_32fsn1$ = get_HIGH_0; - package$dom_0.get_BLOB_qxle9l$ = get_BLOB; - package$dom_0.get_ARRAYBUFFER_qxle9l$ = get_ARRAYBUFFER; - package$dom_0.get_MODULE_xc77to$ = get_MODULE; - package$dom_0.get_OPEN_knhupb$ = get_OPEN; - package$dom_0.get_CLOSED_knhupb$ = get_CLOSED; - package$dom_0.get_INSTANT_gi1pud$ = get_INSTANT; - package$dom_0.get_SMOOTH_gi1pud$ = get_SMOOTH; - package$dom_0.get_START_ltkif$ = get_START_1; - package$dom_0.get_END_ltkif$ = get_END_1; - package$dom_0.get_NEAREST_ltkif$ = get_NEAREST; - package$dom_0.get_MARGIN_eb1l8y$ = get_MARGIN; - package$dom_0.get_PADDING_eb1l8y$ = get_PADDING; - package$dom_0.get_CONTENT_eb1l8y$ = get_CONTENT; - var package$mediacapture = package$dom_0.mediacapture || (package$dom_0.mediacapture = {}); - package$mediacapture.get_LIVE_tsyfvu$ = get_LIVE; - package$mediacapture.get_ENDED_tsyfvu$ = get_ENDED; - package$mediacapture.get_USER_ctcynt$ = get_USER; - package$mediacapture.get_ENVIRONMENT_ctcynt$ = get_ENVIRONMENT; - package$mediacapture.get_LEFT_ctcynt$ = get_LEFT_0; - package$mediacapture.get_RIGHT_ctcynt$ = get_RIGHT_0; - package$mediacapture.get_NONE_qdzhpp$ = get_NONE_2; - package$mediacapture.get_CROP_AND_SCALE_qdzhpp$ = get_CROP_AND_SCALE; - package$mediacapture.get_AUDIOINPUT_bcgeby$ = get_AUDIOINPUT; - package$mediacapture.get_AUDIOOUTPUT_bcgeby$ = get_AUDIOOUTPUT; - package$mediacapture.get_VIDEOINPUT_bcgeby$ = get_VIDEOINPUT; - package$fetch.get_EMPTY_ih0r03$ = get_EMPTY_0; - package$fetch.get_AUDIO_ih0r03$ = get_AUDIO; - package$fetch.get_FONT_ih0r03$ = get_FONT; - package$fetch.get_IMAGE_ih0r03$ = get_IMAGE; - package$fetch.get_SCRIPT_ih0r03$ = get_SCRIPT; - package$fetch.get_STYLE_ih0r03$ = get_STYLE; - package$fetch.get_TRACK_ih0r03$ = get_TRACK; - package$fetch.get_VIDEO_ih0r03$ = get_VIDEO; - package$fetch.get_EMPTY_dgizjn$ = get_EMPTY_1; - package$fetch.get_DOCUMENT_dgizjn$ = get_DOCUMENT; - package$fetch.get_EMBED_dgizjn$ = get_EMBED; - package$fetch.get_FONT_dgizjn$ = get_FONT_0; - package$fetch.get_IMAGE_dgizjn$ = get_IMAGE_0; - package$fetch.get_MANIFEST_dgizjn$ = get_MANIFEST; - package$fetch.get_MEDIA_dgizjn$ = get_MEDIA; - package$fetch.get_OBJECT_dgizjn$ = get_OBJECT; - package$fetch.get_REPORT_dgizjn$ = get_REPORT; - package$fetch.get_SCRIPT_dgizjn$ = get_SCRIPT_0; - package$fetch.get_SERVICEWORKER_dgizjn$ = get_SERVICEWORKER; - package$fetch.get_SHAREDWORKER_dgizjn$ = get_SHAREDWORKER; - package$fetch.get_STYLE_dgizjn$ = get_STYLE_0; - package$fetch.get_WORKER_dgizjn$ = get_WORKER; - package$fetch.get_XSLT_dgizjn$ = get_XSLT; - package$fetch.get_NAVIGATE_jvdbus$ = get_NAVIGATE; - package$fetch.get_SAME_ORIGIN_jvdbus$ = get_SAME_ORIGIN; - package$fetch.get_NO_CORS_jvdbus$ = get_NO_CORS; - package$fetch.get_CORS_jvdbus$ = get_CORS; - package$fetch.get_SAME_ORIGIN_yuzaxt$ = get_SAME_ORIGIN_0; - package$fetch.get_INCLUDE_yuzaxt$ = get_INCLUDE; - package$fetch.get_DEFAULT_iyytcp$ = get_DEFAULT_1; - package$fetch.get_NO_STORE_iyytcp$ = get_NO_STORE; - package$fetch.get_RELOAD_iyytcp$ = get_RELOAD; - package$fetch.get_NO_CACHE_iyytcp$ = get_NO_CACHE; - package$fetch.get_FORCE_CACHE_iyytcp$ = get_FORCE_CACHE; - package$fetch.get_ONLY_IF_CACHED_iyytcp$ = get_ONLY_IF_CACHED; - package$fetch.get_FOLLOW_tow8et$ = get_FOLLOW; - package$fetch.get_ERROR_tow8et$ = get_ERROR; - package$fetch.get_MANUAL_tow8et$ = get_MANUAL_0; - package$fetch.get_BASIC_1el1vz$ = get_BASIC; - package$fetch.get_CORS_1el1vz$ = get_CORS_0; - package$fetch.get_DEFAULT_1el1vz$ = get_DEFAULT_2; - package$fetch.get_ERROR_1el1vz$ = get_ERROR_0; - package$fetch.get_OPAQUE_1el1vz$ = get_OPAQUE; - package$fetch.get_OPAQUEREDIRECT_1el1vz$ = get_OPAQUEREDIRECT; - var package$notifications = package$w3c.notifications || (package$w3c.notifications = {}); - package$notifications.get_AUTO_6wyje4$ = get_AUTO_1; - package$notifications.get_DEFAULT_4wcaio$ = get_DEFAULT_3; - package$notifications.get_DENIED_4wcaio$ = get_DENIED; - package$notifications.get_GRANTED_4wcaio$ = get_GRANTED; - package$notifications.get_LTR_6wyje4$ = get_LTR_0; - package$notifications.get_RTL_6wyje4$ = get_RTL_0; - var package$workers = package$w3c.workers || (package$w3c.workers = {}); - package$workers.get_WINDOW_jpgnoe$ = get_WINDOW; - package$workers.get_INSTALLING_7rndk9$ = get_INSTALLING; - package$workers.get_INSTALLED_7rndk9$ = get_INSTALLED; - package$workers.get_ACTIVATING_7rndk9$ = get_ACTIVATING; - package$workers.get_ACTIVATED_7rndk9$ = get_ACTIVATED; - package$workers.get_REDUNDANT_7rndk9$ = get_REDUNDANT; - package$workers.get_AUXILIARY_1foc4s$ = get_AUXILIARY; - package$workers.get_TOP_LEVEL_1foc4s$ = get_TOP_LEVEL; - package$workers.get_NESTED_1foc4s$ = get_NESTED; - package$workers.get_NONE_1foc4s$ = get_NONE_3; - package$workers.get_WORKER_jpgnoe$ = get_WORKER_0; - package$workers.get_SHAREDWORKER_jpgnoe$ = get_SHAREDWORKER_0; - package$workers.get_ALL_jpgnoe$ = get_ALL; - var package$xhr = package$w3c.xhr || (package$w3c.xhr = {}); - package$xhr.get_EMPTY_8edqmh$ = get_EMPTY_2; - package$xhr.get_ARRAYBUFFER_8edqmh$ = get_ARRAYBUFFER_0; - package$xhr.get_BLOB_8edqmh$ = get_BLOB_0; - package$xhr.get_DOCUMENT_8edqmh$ = get_DOCUMENT_0; - package$xhr.get_JSON_8edqmh$ = get_JSON; - package$xhr.get_TEXT_8edqmh$ = get_TEXT; - Object.defineProperty(Experimental$Level, 'WARNING', {get: Experimental$Level$WARNING_getInstance}); - Object.defineProperty(Experimental$Level, 'ERROR', {get: Experimental$Level$ERROR_getInstance}); - Experimental.Level = Experimental$Level; - package$kotlin.Experimental = Experimental; - package$kotlin.UseExperimental = UseExperimental; - package$kotlin.WasExperimental = WasExperimental; - package$kotlin.ExperimentalStdlibApi = ExperimentalStdlibApi; - package$kotlin.BuilderInference = BuilderInference; - package$kotlin.ExperimentalMultiplatform = ExperimentalMultiplatform; - package$kotlin.OptionalExpectation = OptionalExpectation; - package$collections.AbstractCollection = AbstractCollection; - package$collections.AbstractIterator = AbstractIterator; - Object.defineProperty(AbstractList, 'Companion', {get: AbstractList$Companion_getInstance}); - package$collections.AbstractList = AbstractList; - Object.defineProperty(AbstractMap, 'Companion', {get: AbstractMap$Companion_getInstance}); - package$collections.AbstractMap = AbstractMap; - Object.defineProperty(AbstractSet, 'Companion', {get: AbstractSet$Companion_getInstance}); - package$collections.AbstractSet = AbstractSet; - package$collections.flatten_yrqxlj$ = flatten; - package$collections.unzip_v2dak7$ = unzip; - package$collections.contentDeepEqualsImpl = contentDeepEqualsImpl; - package$collections.contentDeepToStringImpl = contentDeepToStringImpl; - Object.defineProperty(package$collections, 'EmptyIterator', {get: EmptyIterator_getInstance}); - Object.defineProperty(package$collections, 'EmptyList', {get: EmptyList_getInstance}); - package$collections.asCollection_vj43ah$ = asCollection; - package$collections.listOf_i5x0yv$ = listOf_0; - package$collections.mutableListOf_i5x0yv$ = mutableListOf_0; - package$collections.arrayListOf_i5x0yv$ = arrayListOf_0; - package$collections.listOfNotNull_issdgt$ = listOfNotNull; - package$collections.listOfNotNull_jurz7g$ = listOfNotNull_0; - package$collections.get_indices_gzk92b$ = get_indices_12; - package$collections.optimizeReadOnlyList_qzupvv$ = optimizeReadOnlyList; - package$collections.binarySearch_jhx6be$ = binarySearch; - package$collections.binarySearch_vikexg$ = binarySearch_0; - package$comparisons.compareValues_s00gnj$ = compareValues; - package$collections.binarySearch_sr7qim$ = binarySearch_1; - package$collections.binarySearchBy_7gj2ve$ = binarySearchBy; - package$collections.throwIndexOverflow = throwIndexOverflow; - package$collections.throwCountOverflow = throwCountOverflow; - package$collections.aggregateTo_qtifb3$ = aggregateTo; - package$collections.aggregate_kz95qp$ = aggregate; - package$collections.fold_2g9ybd$ = fold_15; - package$collections.foldTo_ldb57n$ = foldTo; - package$collections.fold_id3q3f$ = fold_16; - package$collections.foldTo_1dwgsv$ = foldTo_0; - package$collections.reduce_hy0spo$ = reduce_15; - package$collections.reduceTo_vpctix$ = reduceTo; - package$collections.eachCountTo_i5vr9n$ = eachCountTo; - package$collections.IndexedValue = IndexedValue; - package$collections.IndexingIterable = IndexingIterable; - package$collections.collectionSizeOrNull_7wnvza$ = collectionSizeOrNull; - package$collections.convertToSetForSetOperationWith_wo44v8$ = convertToSetForSetOperationWith; - package$collections.convertToSetForSetOperation_tw993d$ = convertToSetForSetOperation; - package$collections.flatten_u0ad8z$ = flatten_0; - package$collections.unzip_6hr0sd$ = unzip_0; - package$collections.withIndex_35ci02$ = withIndex_15; - package$collections.forEach_p594rv$ = forEach_16; - package$collections.IndexingIterator = IndexingIterator; - package$collections.getOrImplicitDefault_t9ocha$ = getOrImplicitDefault; - package$collections.withDefault_jgsead$ = withDefault; - package$collections.withDefault_btzz9u$ = withDefault_0; - package$collections.emptyMap_q3lmfv$ = emptyMap; - package$collections.mapOf_qfcya0$ = mapOf_0; - package$collections.mutableMapOf_qfcya0$ = mutableMapOf_0; - package$collections.hashMapOf_qfcya0$ = hashMapOf_0; - package$collections.linkedMapOf_qfcya0$ = linkedMapOf_0; - package$collections.getOrElseNullable_e54js$ = getOrElseNullable; - package$collections.getValue_t9ocha$ = getValue_2; - package$collections.mapValuesTo_8auxj8$ = mapValuesTo; - package$collections.mapKeysTo_l1xmvz$ = mapKeysTo; - package$collections.putAll_5gv49o$ = putAll; - package$collections.putAll_cweazw$ = putAll_0; - package$collections.putAll_2ud8ki$ = putAll_1; - package$collections.mapValues_8169ik$ = mapValues; - package$collections.mapKeys_8169ik$ = mapKeys; - package$collections.filterKeys_bbcyu0$ = filterKeys; - package$collections.filterValues_btttvb$ = filterValues; - package$collections.filterTo_6i6lq2$ = filterTo_15; - package$collections.filter_9peqz9$ = filter_16; - package$collections.filterNotTo_6i6lq2$ = filterNotTo_15; - package$collections.filterNot_9peqz9$ = filterNot_16; - package$collections.toMap_6hr0sd$ = toMap; - package$collections.toMap_jbpz7q$ = toMap_0; - package$collections.toMap_v2dak7$ = toMap_1; - package$collections.toMap_ujwnei$ = toMap_2; - package$collections.toMap_ah2ab9$ = toMap_3; - package$collections.toMap_vxlxo8$ = toMap_4; - package$collections.toMap_abgq59$ = toMap_5; - package$collections.toMap_d6li1s$ = toMap_6; - package$collections.plus_e8164j$ = plus_54; - package$collections.plus_cm8adq$ = plus_55; - package$collections.plus_z7hp2i$ = plus_56; - package$collections.plus_kc70o4$ = plus_57; - package$collections.plus_iwxh38$ = plus_58; - package$collections.minus_4pa84t$ = minus_11; - package$collections.minus_uk696c$ = minus_12; - package$collections.minus_8blsds$ = minus_13; - package$collections.minus_nyfmny$ = minus_14; - package$collections.removeAll_ipc267$ = removeAll_2; - package$collections.removeAll_ye1y7v$ = removeAll_4; - package$collections.removeAll_tj7pfx$ = removeAll_3; - package$collections.optimizeReadOnlyMap_1vp4qn$ = optimizeReadOnlyMap; - package$collections.addAll_ye1y7v$ = addAll_1; - package$collections.removeAll_uhyeqt$ = removeAll_0; - package$collections.retainAll_uhyeqt$ = retainAll_0; - package$collections.removeAll_qafx1e$ = removeAll_1; - package$collections.retainAll_qafx1e$ = retainAll_1; - package$collections.retainAll_ipc267$ = retainAll_2; - package$collections.retainAll_ye1y7v$ = retainAll_3; - package$collections.retainAll_tj7pfx$ = retainAll_4; - package$collections.shuffle_9jeydg$ = shuffle_0; - package$collections.shuffled_4173s5$ = shuffled_0; - package$collections.asReversed_2p1efm$ = asReversed; - package$collections.asReversed_vvxzk3$ = asReversed_0; - package$sequences.sequence_o0x0bg$ = sequence; - package$sequences.iterator_o0x0bg$ = iterator_3; - package$sequences.SequenceScope = SequenceScope; - package$sequences.asSequence_35ci02$ = asSequence_12; - package$sequences.sequenceOf_i5x0yv$ = sequenceOf; - package$sequences.emptySequence_287e2$ = emptySequence; - package$sequences.ifEmpty_za92oh$ = ifEmpty_2; - package$sequences.flatten_41nmvn$ = flatten_1; - package$sequences.flatten_d9bjs1$ = flatten_2; - package$sequences.unzip_ah2ab9$ = unzip_1; - package$sequences.FilteringSequence = FilteringSequence; - package$sequences.TransformingSequence = TransformingSequence; - package$sequences.TransformingIndexedSequence = TransformingIndexedSequence; - package$sequences.IndexingSequence = IndexingSequence; - package$sequences.MergingSequence = MergingSequence; - package$sequences.FlatteningSequence = FlatteningSequence; - package$sequences.DropTakeSequence = DropTakeSequence; - package$sequences.SubSequence = SubSequence; - package$sequences.TakeSequence = TakeSequence; - package$sequences.TakeWhileSequence = TakeWhileSequence; - package$sequences.DropSequence = DropSequence; - package$sequences.DropWhileSequence = DropWhileSequence; - package$sequences.DistinctSequence = DistinctSequence; - package$sequences.constrainOnce_veqyi0$ = constrainOnce; - package$sequences.generateSequence_9ce4rd$ = generateSequence; - package$sequences.generateSequence_gexuht$ = generateSequence_0; - package$sequences.generateSequence_c6s9hp$ = generateSequence_1; - Object.defineProperty(package$collections, 'EmptySet', {get: EmptySet_getInstance}); - package$collections.emptySet_287e2$ = emptySet; - package$collections.setOf_i5x0yv$ = setOf_0; - package$collections.mutableSetOf_i5x0yv$ = mutableSetOf_0; - package$collections.hashSetOf_i5x0yv$ = hashSetOf_0; - package$collections.linkedSetOf_i5x0yv$ = linkedSetOf_0; - package$collections.optimizeReadOnlySet_94kdbt$ = optimizeReadOnlySet; - package$collections.checkWindowSizeStep_6xvm5r$ = checkWindowSizeStep; - package$collections.windowedSequence_38k18b$ = windowedSequence_1; - package$collections.windowedIterator_4ozct4$ = windowedIterator; - package$collections.MovingSubList = MovingSubList; - package$collections.sortArray_6dl5as$ = sortArray_0; - package$collections.sortArray_tugffi$ = sortArray_1; - package$collections.sortArray_57d09b$ = sortArray_2; - package$collections.sortArray_tnvzeg$ = sortArray_3; - package$comparisons.compareValuesBy_d999kh$ = compareValuesBy; - package$comparisons.compareBy_bvgy4j$ = compareBy; - package$comparisons.then_15rrmw$ = then_1; - package$comparisons.thenDescending_15rrmw$ = thenDescending; - package$comparisons.nullsFirst_c94i6r$ = nullsFirst; - package$comparisons.naturalOrder_dahdeg$ = naturalOrder; - package$comparisons.nullsLast_c94i6r$ = nullsLast; - package$comparisons.reverseOrder_dahdeg$ = reverseOrder; - package$comparisons.reversed_2avth4$ = reversed_20; - package$contracts.ExperimentalContracts = ExperimentalContracts; - package$contracts.ContractBuilder = ContractBuilder; - Object.defineProperty(InvocationKind, 'AT_MOST_ONCE', {get: InvocationKind$AT_MOST_ONCE_getInstance}); - Object.defineProperty(InvocationKind, 'AT_LEAST_ONCE', {get: InvocationKind$AT_LEAST_ONCE_getInstance}); - Object.defineProperty(InvocationKind, 'EXACTLY_ONCE', {get: InvocationKind$EXACTLY_ONCE_getInstance}); - Object.defineProperty(InvocationKind, 'UNKNOWN', {get: InvocationKind$UNKNOWN_getInstance}); - package$contracts.Effect = Effect; - package$contracts.ConditionalEffect = ConditionalEffect; - package$contracts.SimpleEffect = SimpleEffect; - package$contracts.Returns = Returns; - package$contracts.ReturnsNotNull = ReturnsNotNull; - package$contracts.CallsInPlace = CallsInPlace; - package$coroutines.Continuation = Continuation; - package$coroutines.RestrictsSuspension = RestrictsSuspension; - package$kotlin.Result = Result; - package$coroutines.createCoroutine_x18nsh$ = createCoroutine; - package$coroutines.createCoroutine_3a617i$ = createCoroutine_0; - package$coroutines.startCoroutine_x18nsh$ = startCoroutine; - package$coroutines.startCoroutine_3a617i$ = startCoroutine_0; - package$intrinsics.get_COROUTINE_SUSPENDED = get_COROUTINE_SUSPENDED; - Object.defineProperty(package$coroutines, 'coroutineContext', {get: get_coroutineContext}); - Object.defineProperty(ContinuationInterceptor, 'Key', {get: ContinuationInterceptor$Key_getInstance}); - package$coroutines.ContinuationInterceptor = ContinuationInterceptor; - CoroutineContext.Key = CoroutineContext$Key; - CoroutineContext.Element = CoroutineContext$Element; - package$coroutines.CoroutineContext = CoroutineContext; - package$coroutines.AbstractCoroutineContextElement = AbstractCoroutineContextElement; - Object.defineProperty(package$coroutines, 'EmptyCoroutineContext', {get: EmptyCoroutineContext_getInstance}); - package$coroutines.CombinedContext = CombinedContext; - Object.defineProperty(package$intrinsics, 'COROUTINE_SUSPENDED', {get: get_COROUTINE_SUSPENDED}); - Object.defineProperty(CoroutineSingletons, 'COROUTINE_SUSPENDED', {get: CoroutineSingletons$COROUTINE_SUSPENDED_getInstance}); - Object.defineProperty(CoroutineSingletons, 'UNDECIDED', {get: CoroutineSingletons$UNDECIDED_getInstance}); - Object.defineProperty(CoroutineSingletons, 'RESUMED', {get: CoroutineSingletons$RESUMED_getInstance}); - package$intrinsics.CoroutineSingletons = CoroutineSingletons; - var package$experimental = package$kotlin.experimental || (package$kotlin.experimental = {}); - package$experimental.ExperimentalTypeInference = ExperimentalTypeInference; - package$internal.NoInfer = NoInfer; - package$internal.Exact = Exact; - package$internal.LowPriorityInOverloadResolution = LowPriorityInOverloadResolution; - package$internal.HidesMembers = HidesMembers; - package$internal.OnlyInputTypes = OnlyInputTypes; - package$internal.InlineOnly = InlineOnly; - package$internal.DynamicExtension = DynamicExtension; - package$internal.AccessibleLateinitPropertyLiteral = AccessibleLateinitPropertyLiteral; - package$internal.RequireKotlin = RequireKotlin; - Object.defineProperty(RequireKotlinVersionKind, 'LANGUAGE_VERSION', {get: RequireKotlinVersionKind$LANGUAGE_VERSION_getInstance}); - Object.defineProperty(RequireKotlinVersionKind, 'COMPILER_VERSION', {get: RequireKotlinVersionKind$COMPILER_VERSION_getInstance}); - Object.defineProperty(RequireKotlinVersionKind, 'API_VERSION', {get: RequireKotlinVersionKind$API_VERSION_getInstance}); - package$internal.RequireKotlinVersionKind = RequireKotlinVersionKind; - package$internal.ContractsDsl = ContractsDsl; - var package$properties = package$kotlin.properties || (package$kotlin.properties = {}); - package$properties.ObservableProperty = ObservableProperty; - Object.defineProperty(package$properties, 'Delegates', {get: Delegates_getInstance}); - package$properties.ReadOnlyProperty = ReadOnlyProperty; - package$properties.ReadWriteProperty = ReadWriteProperty; - Object.defineProperty(Random, 'Default', {get: Random$Default_getInstance}); - Object.defineProperty(Random, 'Companion', {get: Random$Companion_getInstance}); - package$random.Random_za3lpa$ = Random_0; - package$random.Random_s8cxhz$ = Random_1; - package$random.nextInt_ixthlz$ = nextInt; - package$random.nextLong_lq3jag$ = nextLong; - package$random.takeUpperBits_b6l1hq$ = takeUpperBits; - package$random.checkRangeBounds_6xvm5r$ = checkRangeBounds; - package$random.checkRangeBounds_cfj5zr$ = checkRangeBounds_0; - package$random.checkRangeBounds_sdh6z7$ = checkRangeBounds_1; - package$random.boundsErrorMessage_dgzutr$ = boundsErrorMessage; - package$random.nextUInt_j8mu42$ = nextUInt; - package$random.nextUInt_nppi6x$ = nextUInt_0; - package$random.nextUInt_3yup1w$ = nextUInt_1; - package$random.nextUInt_d63giy$ = nextUInt_2; - package$random.nextULong_j8mu42$ = nextULong; - package$random.nextULong_otw1ua$ = nextULong_0; - package$random.nextULong_3bt3ku$ = nextULong_1; - package$random.nextULong_f33ad7$ = nextULong_2; - package$random.nextUBytes_dg37c5$ = nextUBytes; - package$random.nextUBytes_wucvsg$ = nextUBytes_0; - package$random.nextUBytes_h8e49n$ = nextUBytes_1; - package$random.checkUIntRangeBounds_xgezkr$ = checkUIntRangeBounds; - package$random.checkULongRangeBounds_jmpl8x$ = checkULongRangeBounds; - package$random.XorWowRandom_init_6xvm5r$ = XorWowRandom_init; - package$random.XorWowRandom = XorWowRandom; - package$ranges.ClosedFloatingPointRange = ClosedFloatingPointRange; - package$ranges.rangeTo_8xshf9$ = rangeTo_0; - package$ranges.checkStepIsPositive_44uddq$ = checkStepIsPositive; - package$text.equals_4lte5s$ = equals_1; - package$text.isSurrogate_myv2d0$ = isSurrogate; - package$text.trimMargin_rjktp$ = trimMargin; - package$text.replaceIndentByMargin_j4ogox$ = replaceIndentByMargin; - package$text.trimIndent_pdl1vz$ = trimIndent; - package$text.replaceIndent_rjktp$ = replaceIndent; - package$text.prependIndent_rjktp$ = prependIndent; - package$text.append_1mr2mh$ = append; - package$text.append_4v9nlb$ = append_0; - package$text.append_s3yiwm$ = append_1; - package$text.appendElement_k2zgzt$ = appendElement_0; - package$text.toByteOrNull_pdl1vz$ = toByteOrNull; - package$text.toByteOrNull_6ic1pp$ = toByteOrNull_0; - package$text.toShortOrNull_pdl1vz$ = toShortOrNull; - package$text.toShortOrNull_6ic1pp$ = toShortOrNull_0; - package$text.toIntOrNull_pdl1vz$ = toIntOrNull; - package$text.toIntOrNull_6ic1pp$ = toIntOrNull_0; - package$text.toLongOrNull_pdl1vz$ = toLongOrNull; - package$text.toLongOrNull_6ic1pp$ = toLongOrNull_0; - package$text.numberFormatError_y4putb$ = numberFormatError; - package$text.trim_2pivbd$ = trim; - package$text.trim_ouje1d$ = trim_0; - package$text.trimStart_2pivbd$ = trimStart; - package$text.trimStart_ouje1d$ = trimStart_0; - package$text.trimEnd_2pivbd$ = trimEnd; - package$text.trimEnd_ouje1d$ = trimEnd_0; - package$text.trim_8d0cet$ = trim_1; - package$text.trim_wqw3xr$ = trim_2; - package$text.trimStart_8d0cet$ = trimStart_1; - package$text.trimStart_wqw3xr$ = trimStart_2; - package$text.trimEnd_8d0cet$ = trimEnd_1; - package$text.trimEnd_wqw3xr$ = trimEnd_2; - package$text.trim_gw00vp$ = trim_3; - package$text.trimStart_gw00vp$ = trimStart_3; - package$text.trimEnd_gw00vp$ = trimEnd_3; - package$text.padStart_yk9sg4$ = padStart; - package$text.padStart_vrc1nu$ = padStart_0; - package$text.padEnd_yk9sg4$ = padEnd; - package$text.padEnd_vrc1nu$ = padEnd_0; - package$text.hasSurrogatePairAt_94bcnn$ = hasSurrogatePairAt; - package$text.substring_fc3b62$ = substring_1; - package$text.subSequence_i511yc$ = subSequence_0; - package$text.substring_i511yc$ = substring_3; - package$text.substringBefore_8cymmc$ = substringBefore; - package$text.substringBefore_j4ogox$ = substringBefore_0; - package$text.substringAfter_8cymmc$ = substringAfter; - package$text.substringAfter_j4ogox$ = substringAfter_0; - package$text.substringBeforeLast_8cymmc$ = substringBeforeLast; - package$text.substringBeforeLast_j4ogox$ = substringBeforeLast_0; - package$text.substringAfterLast_8cymmc$ = substringAfterLast; - package$text.substringAfterLast_j4ogox$ = substringAfterLast_0; - package$text.replaceRange_p5j4qv$ = replaceRange; - package$text.replaceRange_r6gztw$ = replaceRange_1; - package$text.removeRange_qdpigv$ = removeRange; - package$text.removeRange_i511yc$ = removeRange_1; - package$text.removePrefix_b6aurr$ = removePrefix; - package$text.removePrefix_gsj5wt$ = removePrefix_0; - package$text.removeSuffix_b6aurr$ = removeSuffix; - package$text.removeSuffix_gsj5wt$ = removeSuffix_0; - package$text.removeSurrounding_xhcipd$ = removeSurrounding; - package$text.removeSurrounding_90ijwr$ = removeSurrounding_0; - package$text.removeSurrounding_b6aurr$ = removeSurrounding_1; - package$text.removeSurrounding_gsj5wt$ = removeSurrounding_2; - package$text.replaceBefore_gvb6y2$ = replaceBefore; - package$text.replaceBefore_q1ioxb$ = replaceBefore_0; - package$text.replaceAfter_gvb6y2$ = replaceAfter; - package$text.replaceAfter_q1ioxb$ = replaceAfter_0; - package$text.replaceAfterLast_q1ioxb$ = replaceAfterLast; - package$text.replaceAfterLast_gvb6y2$ = replaceAfterLast_0; - package$text.replaceBeforeLast_gvb6y2$ = replaceBeforeLast; - package$text.replaceBeforeLast_q1ioxb$ = replaceBeforeLast_0; - package$text.regionMatchesImpl_4c7s8r$ = regionMatchesImpl; - package$text.startsWith_sgbm27$ = startsWith_1; - package$text.endsWith_sgbm27$ = endsWith_0; - package$text.startsWith_li3zpu$ = startsWith_2; - package$text.startsWith_pebkaa$ = startsWith_3; - package$text.endsWith_li3zpu$ = endsWith_1; - package$text.commonPrefixWith_li3zpu$ = commonPrefixWith; - package$text.commonSuffixWith_li3zpu$ = commonSuffixWith; - package$text.indexOfAny_junqau$ = indexOfAny; - package$text.lastIndexOfAny_junqau$ = lastIndexOfAny; - package$text.findAnyOf_7utkvz$ = findAnyOf_0; - package$text.findLastAnyOf_7utkvz$ = findLastAnyOf; - package$text.indexOfAny_7utkvz$ = indexOfAny_0; - package$text.lastIndexOfAny_7utkvz$ = lastIndexOfAny_0; - package$text.indexOf_8eortd$ = indexOf_16; - package$text.indexOf_l5u8uk$ = indexOf_17; - package$text.lastIndexOf_8eortd$ = lastIndexOf_15; - package$text.lastIndexOf_l5u8uk$ = lastIndexOf_16; - package$text.contains_li3zpu$ = contains_53; - package$text.contains_sgbm27$ = contains_54; - package$text.splitToSequence_ip8yn$ = splitToSequence; - package$text.split_ip8yn$ = split; - package$text.splitToSequence_o64adg$ = splitToSequence_0; - package$text.split_o64adg$ = split_0; - package$text.lineSequence_gw00vp$ = lineSequence; - package$text.lines_gw00vp$ = lines; - Object.defineProperty(package$text, 'Typography', {get: Typography_getInstance}); - package$text.MatchGroupCollection = MatchGroupCollection; - package$text.MatchNamedGroupCollection = MatchNamedGroupCollection; - MatchResult.Destructured = MatchResult$Destructured; - package$text.MatchResult = MatchResult; - Object.defineProperty(KotlinVersion, 'Companion', {get: KotlinVersion$Companion_getInstance}); - package$kotlin.KotlinVersion_init_vux9f0$ = KotlinVersion_init; - package$kotlin.KotlinVersion = KotlinVersion; - package$kotlin.Lazy = Lazy; - package$kotlin.lazyOf_mh5how$ = lazyOf; - Object.defineProperty(LazyThreadSafetyMode, 'SYNCHRONIZED', {get: LazyThreadSafetyMode$SYNCHRONIZED_getInstance}); - Object.defineProperty(LazyThreadSafetyMode, 'PUBLICATION', {get: LazyThreadSafetyMode$PUBLICATION_getInstance}); - Object.defineProperty(LazyThreadSafetyMode, 'NONE', {get: LazyThreadSafetyMode$NONE_getInstance}); - package$kotlin.LazyThreadSafetyMode = LazyThreadSafetyMode; - Object.defineProperty(package$kotlin, 'UNINITIALIZED_VALUE', {get: UNINITIALIZED_VALUE_getInstance}); - package$kotlin.UnsafeLazyImpl = UnsafeLazyImpl; - package$kotlin.InitializedLazyImpl = InitializedLazyImpl; - package$kotlin.createFailure_tcv7n7$ = createFailure; - Object.defineProperty(Result, 'Companion', {get: Result$Companion_getInstance}); - Result.Failure = Result$Failure; - package$kotlin.throwOnFailure_iacion$ = throwOnFailure; - package$kotlin.NotImplementedError = NotImplementedError; - package$kotlin.Pair = Pair; - package$kotlin.to_ujzrz7$ = to; - package$kotlin.toList_tt9upe$ = toList_12; - package$kotlin.Triple = Triple; - package$kotlin.toList_z6mquf$ = toList_13; - Object.defineProperty(UByte, 'Companion', {get: UByte$Companion_getInstance}); - package$kotlin.UByteArray_init_za3lpa$ = UByteArray_init; - package$kotlin.UByteArray = UByteArray; - Object.defineProperty(UInt, 'Companion', {get: UInt$Companion_getInstance}); - package$kotlin.uintCompare_vux9f0$ = uintCompare; - package$kotlin.uintDivide_oqfnby$ = uintDivide; - package$kotlin.uintRemainder_oqfnby$ = uintRemainder; - package$kotlin.uintToDouble_za3lpa$ = uintToDouble; - package$kotlin.doubleToUInt_14dthe$ = doubleToUInt; - package$kotlin.UIntArray_init_za3lpa$ = UIntArray_init; - package$kotlin.UIntArray = UIntArray; - Object.defineProperty(UIntRange, 'Companion', {get: UIntRange$Companion_getInstance}); - package$ranges.UIntRange = UIntRange; - Object.defineProperty(UIntProgression, 'Companion', {get: UIntProgression$Companion_getInstance}); - package$ranges.UIntProgression = UIntProgression; - package$collections.UByteIterator = UByteIterator; - package$collections.UShortIterator = UShortIterator; - package$collections.UIntIterator = UIntIterator; - package$collections.ULongIterator = ULongIterator; - Object.defineProperty(ULong, 'Companion', {get: ULong$Companion_getInstance}); - package$kotlin.ulongCompare_3pjtqy$ = ulongCompare; - package$kotlin.ulongDivide_jpm79w$ = ulongDivide; - package$kotlin.ulongRemainder_jpm79w$ = ulongRemainder; - package$kotlin.ulongToDouble_s8cxhz$ = ulongToDouble; - package$kotlin.doubleToULong_14dthe$ = doubleToULong; - package$kotlin.ULongArray_init_za3lpa$ = ULongArray_init; - package$kotlin.ULongArray = ULongArray; - Object.defineProperty(ULongRange_0, 'Companion', {get: ULongRange$Companion_getInstance}); - package$ranges.ULongRange = ULongRange_0; - Object.defineProperty(ULongProgression, 'Companion', {get: ULongProgression$Companion_getInstance}); - package$ranges.ULongProgression = ULongProgression; - package$internal.getProgressionLastElement_fjk8us$ = getProgressionLastElement_1; - package$internal.getProgressionLastElement_15zasp$ = getProgressionLastElement_2; - Object.defineProperty(UShort, 'Companion', {get: UShort$Companion_getInstance}); - package$kotlin.UShortArray_init_za3lpa$ = UShortArray_init; - package$kotlin.UShortArray = UShortArray; - package$text.toString_aogav3$ = toString_4; - package$text.toString_pqjt0d$ = toString_5; - package$text.toString_k13f4a$ = toString_6; - package$text.toString_hc3rh$ = toString_7; - package$text.toUByte_pdl1vz$ = toUByte_3; - package$text.toUByte_6ic1pp$ = toUByte_4; - package$text.toUShort_pdl1vz$ = toUShort_3; - package$text.toUShort_6ic1pp$ = toUShort_4; - package$text.toUInt_pdl1vz$ = toUInt_5; - package$text.toUInt_6ic1pp$ = toUInt_6; - package$text.toULong_pdl1vz$ = toULong_5; - package$text.toULong_6ic1pp$ = toULong_6; - package$text.toUByteOrNull_pdl1vz$ = toUByteOrNull; - package$text.toUByteOrNull_6ic1pp$ = toUByteOrNull_0; - package$text.toUShortOrNull_pdl1vz$ = toUShortOrNull; - package$text.toUShortOrNull_6ic1pp$ = toUShortOrNull_0; - package$text.toUIntOrNull_pdl1vz$ = toUIntOrNull; - package$text.toUIntOrNull_6ic1pp$ = toUIntOrNull_0; - package$text.toULongOrNull_pdl1vz$ = toULongOrNull; - package$text.toULongOrNull_6ic1pp$ = toULongOrNull_0; - package$kotlin.ulongToString_8e33dg$ = ulongToString; - package$kotlin.ulongToString_plstum$ = ulongToString_0; - package$kotlin.ExperimentalUnsignedTypes = ExperimentalUnsignedTypes; - MutableMap.prototype.getOrDefault_xwzc9p$ = Map.prototype.getOrDefault_xwzc9p$; - AbstractMap.prototype.getOrDefault_xwzc9p$ = Map.prototype.getOrDefault_xwzc9p$; - AbstractMutableMap.prototype.remove_xwzc9p$ = MutableMap.prototype.remove_xwzc9p$; - InternalHashCodeMap.prototype.createJsMap = InternalMap.prototype.createJsMap; - InternalStringMap.prototype.createJsMap = InternalMap.prototype.createJsMap; - Object.defineProperty(findNext$ObjectLiteral.prototype, 'destructured', Object.getOwnPropertyDescriptor(MatchResult.prototype, 'destructured')); - MapWithDefault.prototype.getOrDefault_xwzc9p$ = Map.prototype.getOrDefault_xwzc9p$; - MutableMapWithDefault.prototype.remove_xwzc9p$ = MutableMap.prototype.remove_xwzc9p$; - MutableMapWithDefault.prototype.getOrDefault_xwzc9p$ = MutableMap.prototype.getOrDefault_xwzc9p$; - MapWithDefaultImpl.prototype.getOrDefault_xwzc9p$ = MapWithDefault.prototype.getOrDefault_xwzc9p$; - MutableMapWithDefaultImpl.prototype.remove_xwzc9p$ = MutableMapWithDefault.prototype.remove_xwzc9p$; - MutableMapWithDefaultImpl.prototype.getOrDefault_xwzc9p$ = MutableMapWithDefault.prototype.getOrDefault_xwzc9p$; - EmptyMap.prototype.getOrDefault_xwzc9p$ = Map.prototype.getOrDefault_xwzc9p$; - CoroutineContext$Element.prototype.plus_1fupul$ = CoroutineContext.prototype.plus_1fupul$; - ContinuationInterceptor.prototype.fold_3cc69b$ = CoroutineContext$Element.prototype.fold_3cc69b$; - ContinuationInterceptor.prototype.plus_1fupul$ = CoroutineContext$Element.prototype.plus_1fupul$; - AbstractCoroutineContextElement.prototype.get_j3r2sn$ = CoroutineContext$Element.prototype.get_j3r2sn$; - AbstractCoroutineContextElement.prototype.fold_3cc69b$ = CoroutineContext$Element.prototype.fold_3cc69b$; - AbstractCoroutineContextElement.prototype.minusKey_yeqjby$ = CoroutineContext$Element.prototype.minusKey_yeqjby$; - AbstractCoroutineContextElement.prototype.plus_1fupul$ = CoroutineContext$Element.prototype.plus_1fupul$; - CombinedContext.prototype.plus_1fupul$ = CoroutineContext.prototype.plus_1fupul$; - ComparableRange.prototype.contains_mef7kx$ = ClosedRange.prototype.contains_mef7kx$; - ComparableRange.prototype.isEmpty = ClosedRange.prototype.isEmpty; - PI = 3.141592653589793; - E = 2.718281828459045; - _stableSortingIsSupported = null; - var isNode = typeof process !== 'undefined' && process.versions && !!process.versions.node; - output = isNode ? new NodeJsOutput(process.stdout) : new BufferedOutputToConsoleLog(); - EmptyContinuation = new Continuation$ObjectLiteral(EmptyCoroutineContext_getInstance(), EmptyContinuation$lambda); - INV_2_26 = Math_0.pow(2.0, -26); - INV_2_53 = Math_0.pow(2.0, -53); - functionClasses = Kotlin.newArray(0, null); - STRING_CASE_INSENSITIVE_ORDER = new Comparator$ObjectLiteral_0(STRING_CASE_INSENSITIVE_ORDER$lambda); - MAX_BYTES_PER_CHAR = 3; - REPLACEMENT_BYTE_SEQUENCE = new Int8Array([toByte(239), toByte(191), toByte(189)]); - REPLACEMENT_CHAR = 65533; - INT_MAX_POWER_OF_TWO = 1073741824; - State_NotReady = 0; - State_ManyNotReady = 1; - State_ManyReady = 2; - State_Ready = 3; - State_Done = 4; - State_Failed = 5; - Kotlin.defineModule('kotlin', _); - - }()); - (function() { - 'use strict'; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Any = Object; - var IllegalStateException_init = Kotlin.kotlin.IllegalStateException_init_pdl1vj$; - var throwCCE = Kotlin.throwCCE; - var Throwable = Error; - var defineInlineFunction = Kotlin.defineInlineFunction; - var Kind_OBJECT = Kotlin.Kind.OBJECT; - var Kind_INTERFACE = Kotlin.Kind.INTERFACE; - var equals = Kotlin.equals; - var hashCode = Kotlin.hashCode; - var toString = Kotlin.toString; - var Annotation = Kotlin.kotlin.Annotation; - var Unit = Kotlin.kotlin.Unit; - var wrapFunction = Kotlin.wrapFunction; - var Collection = Kotlin.kotlin.collections.Collection; - var ensureNotNull = Kotlin.ensureNotNull; - var NoSuchElementException_init = Kotlin.kotlin.NoSuchElementException_init; - var Iterator = Kotlin.kotlin.collections.Iterator; - var Sequence = Kotlin.kotlin.sequences.Sequence; - var NotImplementedError = Kotlin.kotlin.NotImplementedError; - SequenceBuilderIterator.prototype = Object.create(SequenceBuilder.prototype); - SequenceBuilderIterator.prototype.constructor = SequenceBuilderIterator; - function CoroutineImpl(resultContinuation) { - this.resultContinuation_0 = resultContinuation; - this.state_0 = 0; - this.exceptionState_0 = 0; - this.result_0 = null; - this.exception_0 = null; - this.finallyPath_0 = null; - this.context_xate5b$_0 = this.resultContinuation_0.context; - var tmp$, tmp$_0; - this.facade = (tmp$_0 = (tmp$ = this.context.get_8oh8b3$(ContinuationInterceptor$Key_getInstance())) != null ? tmp$.interceptContinuation_n4f53e$(this) : null) != null ? tmp$_0 : this; - } - Object.defineProperty(CoroutineImpl.prototype, 'context', {get: function () { - return this.context_xate5b$_0; - }}); - CoroutineImpl.prototype.resume_11rb$ = function (value) { - this.result_0 = value; - this.doResumeWrapper_0(); - }; - CoroutineImpl.prototype.resumeWithException_tcv7n7$ = function (exception) { - this.state_0 = this.exceptionState_0; - this.exception_0 = exception; - this.doResumeWrapper_0(); - }; - CoroutineImpl.prototype.doResumeWrapper_0 = function () { - var completion = this.resultContinuation_0; - var tmp$; - try { - var result = this.doResume(); - if (result !== COROUTINE_SUSPENDED) { - (Kotlin.isType(tmp$ = completion, Continuation) ? tmp$ : throwCCE()).resume_11rb$(result); - } - } - catch (t) { - if (Kotlin.isType(t, Throwable)) { - completion.resumeWithException_tcv7n7$(t); - } - else - throw t; - } - }; - CoroutineImpl.$metadata$ = {kind: Kind_CLASS, simpleName: 'CoroutineImpl', interfaces: [Continuation]}; - var UNDECIDED; - var RESUMED; - function Fail(exception) { - this.exception = exception; - } - Fail.$metadata$ = {kind: Kind_CLASS, simpleName: 'Fail', interfaces: []}; - function SafeContinuation(delegate, initialResult) { - this.delegate_0 = delegate; - this.result_0 = initialResult; - } - Object.defineProperty(SafeContinuation.prototype, 'context', {get: function () { - return this.delegate_0.context; - }}); - SafeContinuation.prototype.resume_11rb$ = function (value) { - if (this.result_0 === UNDECIDED) - this.result_0 = value; - else if (this.result_0 === COROUTINE_SUSPENDED) { - this.result_0 = RESUMED; - this.delegate_0.resume_11rb$(value); - } - else { - throw IllegalStateException_init('Already resumed'); - } - }; - SafeContinuation.prototype.resumeWithException_tcv7n7$ = function (exception) { - if (this.result_0 === UNDECIDED) - this.result_0 = new Fail(exception); - else if (this.result_0 === COROUTINE_SUSPENDED) { - this.result_0 = RESUMED; - this.delegate_0.resumeWithException_tcv7n7$(exception); - } - else { - throw IllegalStateException_init('Already resumed'); - } - }; - SafeContinuation.prototype.getResult = function () { - var tmp$; - if (this.result_0 === UNDECIDED) { - this.result_0 = COROUTINE_SUSPENDED; - } - var result = this.result_0; - if (result === RESUMED) - tmp$ = COROUTINE_SUSPENDED; - else if (Kotlin.isType(result, Fail)) - throw result.exception; - else { - tmp$ = result; - } - return tmp$; - }; - SafeContinuation.$metadata$ = {kind: Kind_CLASS, simpleName: 'SafeContinuation', interfaces: [Continuation]}; - function SafeContinuation_init(delegate, $this) { - $this = $this || Object.create(SafeContinuation.prototype); - SafeContinuation.call($this, delegate, UNDECIDED); - return $this; - } - var startCoroutineUninterceptedOrReturn = defineInlineFunction('kotlin.kotlin.coroutines.experimental.intrinsics.startCoroutineUninterceptedOrReturn_xtwlez$', function ($receiver, completion) { - return $receiver(completion, false); - }); - var startCoroutineUninterceptedOrReturn_0 = defineInlineFunction('kotlin.kotlin.coroutines.experimental.intrinsics.startCoroutineUninterceptedOrReturn_uao1qo$', function ($receiver, receiver, completion) { - return $receiver(receiver, completion, false); - }); - function createCoroutineUnchecked($receiver, receiver, completion) { - return $receiver(receiver, completion, true).facade; - } - function createCoroutineUnchecked_0($receiver, completion) { - return $receiver(completion, true).facade; - } - var COROUTINE_SUSPENDED; - function CoroutineSuspendedMarker() { - CoroutineSuspendedMarker_instance = this; - } - CoroutineSuspendedMarker.$metadata$ = {kind: Kind_OBJECT, simpleName: 'CoroutineSuspendedMarker', interfaces: []}; - var CoroutineSuspendedMarker_instance = null; - function CoroutineSuspendedMarker_getInstance() { - if (CoroutineSuspendedMarker_instance === null) { - new CoroutineSuspendedMarker(); - } - return CoroutineSuspendedMarker_instance; - } - function ContinuationInterceptor() { - ContinuationInterceptor$Key_getInstance(); - } - function ContinuationInterceptor$Key() { - ContinuationInterceptor$Key_instance = this; - } - ContinuationInterceptor$Key.$metadata$ = {kind: Kind_OBJECT, simpleName: 'Key', interfaces: [CoroutineContext$Key]}; - var ContinuationInterceptor$Key_instance = null; - function ContinuationInterceptor$Key_getInstance() { - if (ContinuationInterceptor$Key_instance === null) { - new ContinuationInterceptor$Key(); - } - return ContinuationInterceptor$Key_instance; - } - ContinuationInterceptor.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'ContinuationInterceptor', interfaces: [CoroutineContext$Element]}; - function CoroutineContext() { - } - function CoroutineContext$plus$lambda(acc, element) { - var removed = acc.minusKey_ds72xk$(element.key); - if (removed === EmptyCoroutineContext_getInstance()) - return element; - else { - var interceptor = removed.get_8oh8b3$(ContinuationInterceptor$Key_getInstance()); - if (interceptor == null) - return new CombinedContext(removed, element); - else { - var left = removed.minusKey_ds72xk$(ContinuationInterceptor$Key_getInstance()); - return left === EmptyCoroutineContext_getInstance() ? new CombinedContext(element, interceptor) : new CombinedContext(new CombinedContext(left, element), interceptor); - } - } - } - CoroutineContext.prototype.plus_dvqyjb$ = function (context) { - return context === EmptyCoroutineContext_getInstance() ? this : context.fold_m9u1mr$(this, CoroutineContext$plus$lambda); - }; - function CoroutineContext$Element() { - } - CoroutineContext$Element.prototype.get_8oh8b3$ = function (key) { - var tmp$; - return this.key === key ? Kotlin.isType(tmp$ = this, CoroutineContext$Element) ? tmp$ : throwCCE() : null; - }; - CoroutineContext$Element.prototype.fold_m9u1mr$ = function (initial, operation) { - return operation(initial, this); - }; - CoroutineContext$Element.prototype.minusKey_ds72xk$ = function (key) { - return this.key === key ? EmptyCoroutineContext_getInstance() : this; - }; - CoroutineContext$Element.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Element', interfaces: [CoroutineContext]}; - function CoroutineContext$Key() { - } - CoroutineContext$Key.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Key', interfaces: []}; - CoroutineContext.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'CoroutineContext', interfaces: []}; - function AbstractCoroutineContextElement(key) { - this.key_5qfgrq$_0 = key; - } - Object.defineProperty(AbstractCoroutineContextElement.prototype, 'key', {get: function () { - return this.key_5qfgrq$_0; - }}); - AbstractCoroutineContextElement.$metadata$ = {kind: Kind_CLASS, simpleName: 'AbstractCoroutineContextElement', interfaces: [CoroutineContext$Element]}; - function EmptyCoroutineContext() { - EmptyCoroutineContext_instance = this; - } - EmptyCoroutineContext.prototype.get_8oh8b3$ = function (key) { - return null; - }; - EmptyCoroutineContext.prototype.fold_m9u1mr$ = function (initial, operation) { - return initial; - }; - EmptyCoroutineContext.prototype.plus_dvqyjb$ = function (context) { - return context; - }; - EmptyCoroutineContext.prototype.minusKey_ds72xk$ = function (key) { - return this; - }; - EmptyCoroutineContext.prototype.hashCode = function () { - return 0; - }; - EmptyCoroutineContext.prototype.toString = function () { - return 'EmptyCoroutineContext'; - }; - EmptyCoroutineContext.$metadata$ = {kind: Kind_OBJECT, simpleName: 'EmptyCoroutineContext', interfaces: [CoroutineContext]}; - var EmptyCoroutineContext_instance = null; - function EmptyCoroutineContext_getInstance() { - if (EmptyCoroutineContext_instance === null) { - new EmptyCoroutineContext(); - } - return EmptyCoroutineContext_instance; - } - function CombinedContext(left, element) { - this.left = left; - this.element = element; - } - CombinedContext.prototype.get_8oh8b3$ = function (key) { - var tmp$; - var cur = this; - while (true) { - if ((tmp$ = cur.element.get_8oh8b3$(key)) != null) { - return tmp$; - } - var next = cur.left; - if (Kotlin.isType(next, CombinedContext)) { - cur = next; - } - else { - return next.get_8oh8b3$(key); - } - } - }; - CombinedContext.prototype.fold_m9u1mr$ = function (initial, operation) { - return operation(this.left.fold_m9u1mr$(initial, operation), this.element); - }; - CombinedContext.prototype.minusKey_ds72xk$ = function (key) { - var tmp$; - if (this.element.get_8oh8b3$(key) != null) { - return this.left; - } - var newLeft = this.left.minusKey_ds72xk$(key); - if (newLeft === this.left) - tmp$ = this; - else if (newLeft === EmptyCoroutineContext_getInstance()) - tmp$ = this.element; - else - tmp$ = new CombinedContext(newLeft, this.element); - return tmp$; - }; - CombinedContext.prototype.size_0 = function () { - return Kotlin.isType(this.left, CombinedContext) ? this.left.size_0() + 1 | 0 : 2; - }; - CombinedContext.prototype.contains_0 = function (element) { - return equals(this.get_8oh8b3$(element.key), element); - }; - CombinedContext.prototype.containsAll_0 = function (context) { - var tmp$; - var cur = context; - while (true) { - if (!this.contains_0(cur.element)) - return false; - var next = cur.left; - if (Kotlin.isType(next, CombinedContext)) { - cur = next; - } - else { - return this.contains_0(Kotlin.isType(tmp$ = next, CoroutineContext$Element) ? tmp$ : throwCCE()); - } - } - }; - CombinedContext.prototype.equals = function (other) { - return this === other || (Kotlin.isType(other, CombinedContext) && other.size_0() === this.size_0() && other.containsAll_0(this)); - }; - CombinedContext.prototype.hashCode = function () { - return hashCode(this.left) + hashCode(this.element) | 0; - }; - function CombinedContext$toString$lambda(acc, element) { - return acc.length === 0 ? element.toString() : acc + ', ' + toString(element); - } - CombinedContext.prototype.toString = function () { - return '[' + this.fold_m9u1mr$('', CombinedContext$toString$lambda) + ']'; - }; - CombinedContext.$metadata$ = {kind: Kind_CLASS, simpleName: 'CombinedContext', interfaces: [CoroutineContext]}; - function Continuation() { - } - Continuation.$metadata$ = {kind: Kind_INTERFACE, simpleName: 'Continuation', interfaces: []}; - function RestrictsSuspension() { - } - RestrictsSuspension.$metadata$ = {kind: Kind_CLASS, simpleName: 'RestrictsSuspension', interfaces: [Annotation]}; - function suspendCoroutineOrReturn$lambda(closure$block) { - return function (cont) { - return closure$block(cont.facade); - }; - } - function suspendCoroutine$lambda(closure$block) { - return function (c) { - var safe = SafeContinuation_init(c); - closure$block(safe); - return safe.getResult(); - }; - } - function startCoroutine($receiver, receiver, completion) { - createCoroutineUnchecked($receiver, receiver, completion).resume_11rb$(Unit); - } - function startCoroutine_0($receiver, completion) { - createCoroutineUnchecked_0($receiver, completion).resume_11rb$(Unit); - } - function createCoroutine($receiver, receiver, completion) { - return new SafeContinuation(createCoroutineUnchecked($receiver, receiver, completion), COROUTINE_SUSPENDED); - } - function createCoroutine_0($receiver, completion) { - return new SafeContinuation(createCoroutineUnchecked_0($receiver, completion), COROUTINE_SUSPENDED); - } - function suspendCoroutine(block, continuation) { - return suspendCoroutineOrReturn$lambda(suspendCoroutine$lambda(block))(continuation); - } - defineInlineFunction('kotlin.kotlin.coroutines.experimental.suspendCoroutine_z3e1t3$', wrapFunction(function () { - var SafeContinuation_init = _.kotlin.coroutines.experimental.SafeContinuation_init_n4f53e$; - function suspendCoroutineOrReturn$lambda(closure$block) { - return function (cont) { - return closure$block(cont.facade); - }; - } - function suspendCoroutine$lambda(closure$block) { - return function (c) { - var safe = SafeContinuation_init(c); - closure$block(safe); - return safe.getResult(); - }; - } - return function (block, continuation) { - Kotlin.suspendCall(suspendCoroutineOrReturn$lambda(suspendCoroutine$lambda(block))(Kotlin.coroutineReceiver())); - return Kotlin.coroutineResult(Kotlin.coroutineReceiver()); - }; - })); - var get_coroutineContext = defineInlineFunction('kotlin.kotlin.coroutines.experimental.get_coroutineContext', wrapFunction(function () { - var NotImplementedError_init = Kotlin.kotlin.NotImplementedError; - return function () { - throw new NotImplementedError_init('Implemented as intrinsic'); - }; - })); - var processBareContinuationResume = defineInlineFunction('kotlin.kotlin.coroutines.experimental.processBareContinuationResume_xjdw2a$', wrapFunction(function () { - var COROUTINE_SUSPENDED = _.kotlin.coroutines.experimental.intrinsics.COROUTINE_SUSPENDED; - var Continuation = _.kotlin.coroutines.experimental.Continuation; - var throwCCE = Kotlin.throwCCE; - var Throwable = Error; - return function (completion, block) { - var tmp$; - try { - var result = block(); - if (result !== COROUTINE_SUSPENDED) { - (Kotlin.isType(tmp$ = completion, Continuation) ? tmp$ : throwCCE()).resume_11rb$(result); - } - } - catch (t) { - if (Kotlin.isType(t, Throwable)) { - completion.resumeWithException_tcv7n7$(t); - } - else - throw t; - } - }; - })); - function Sequence$ObjectLiteral(closure$iterator) { - this.closure$iterator = closure$iterator; - } - Sequence$ObjectLiteral.prototype.iterator = function () { - return this.closure$iterator(); - }; - Sequence$ObjectLiteral.$metadata$ = {kind: Kind_CLASS, interfaces: [Sequence]}; - function suspendCoroutineOrReturn$lambda_0(closure$block) { - return function (cont) { - return closure$block(cont.facade); - }; - } - function buildSequence$lambda(closure$builderAction) { - return function () { - return buildIterator(closure$builderAction); - }; - } - function buildSequence(builderAction) { - return new Sequence$ObjectLiteral(buildSequence$lambda(builderAction)); - } - function buildIterator(builderAction) { - var iterator = new SequenceBuilderIterator(); - iterator.nextStep = createCoroutineUnchecked(builderAction, iterator, iterator); - return iterator; - } - function SequenceBuilder() { - } - SequenceBuilder.prototype.yieldAll_p1ys8y$ = function (elements, continuation) { - if (Kotlin.isType(elements, Collection) && elements.isEmpty()) - return; - return this.yieldAll_1phuh2$(elements.iterator(), continuation); - }; - SequenceBuilder.prototype.yieldAll_swo9gw$ = function (sequence, continuation) { - return this.yieldAll_1phuh2$(sequence.iterator(), continuation); - }; - SequenceBuilder.$metadata$ = {kind: Kind_CLASS, simpleName: 'SequenceBuilder', interfaces: []}; - var State_NotReady; - var State_ManyNotReady; - var State_ManyReady; - var State_Ready; - var State_Done; - var State_Failed; - function SequenceBuilderIterator() { - SequenceBuilder.call(this); - this.state_0 = 0; - this.nextValue_0 = null; - this.nextIterator_0 = null; - this.nextStep = null; - } - SequenceBuilderIterator.prototype.hasNext = function () { - while (true) { - switch (this.state_0) { - case 0: - break; - case 1: - if (ensureNotNull(this.nextIterator_0).hasNext()) { - this.state_0 = 2; - return true; - } - else { - this.nextIterator_0 = null; - } - - break; - case 4: - return false; - case 3: - case 2: - return true; - default:throw this.exceptionalState_0(); - } - this.state_0 = 5; - var step = ensureNotNull(this.nextStep); - this.nextStep = null; - step.resume_11rb$(Unit); - } - }; - SequenceBuilderIterator.prototype.next = function () { - var tmp$; - switch (this.state_0) { - case 0: - case 1: - return this.nextNotReady_0(); - case 2: - this.state_0 = 1; - return ensureNotNull(this.nextIterator_0).next(); - case 3: - this.state_0 = 0; - var result = (tmp$ = this.nextValue_0) == null || Kotlin.isType(tmp$, Any) ? tmp$ : throwCCE(); - this.nextValue_0 = null; - return result; - default:throw this.exceptionalState_0(); - } - }; - SequenceBuilderIterator.prototype.nextNotReady_0 = function () { - if (!this.hasNext()) - throw NoSuchElementException_init(); - else - return this.next(); - }; - SequenceBuilderIterator.prototype.exceptionalState_0 = function () { - switch (this.state_0) { - case 4: - return NoSuchElementException_init(); - case 5: - return IllegalStateException_init('Iterator has failed.'); - default:return IllegalStateException_init('Unexpected state of the iterator: ' + this.state_0); - } - }; - function SequenceBuilderIterator$yield$lambda(this$SequenceBuilderIterator) { - return function (c) { - this$SequenceBuilderIterator.nextStep = c; - return COROUTINE_SUSPENDED; - }; - } - SequenceBuilderIterator.prototype.yield_11rb$ = function (value, continuation) { - this.nextValue_0 = value; - this.state_0 = 3; - return suspendCoroutineOrReturn$lambda_0(SequenceBuilderIterator$yield$lambda(this))(continuation); - }; - function SequenceBuilderIterator$yieldAll$lambda(this$SequenceBuilderIterator) { - return function (c) { - this$SequenceBuilderIterator.nextStep = c; - return COROUTINE_SUSPENDED; - }; - } - SequenceBuilderIterator.prototype.yieldAll_1phuh2$ = function (iterator, continuation) { - if (!iterator.hasNext()) - return; - this.nextIterator_0 = iterator; - this.state_0 = 2; - return suspendCoroutineOrReturn$lambda_0(SequenceBuilderIterator$yieldAll$lambda(this))(continuation); - }; - SequenceBuilderIterator.prototype.resume_11rb$ = function (value) { - this.state_0 = 4; - }; - SequenceBuilderIterator.prototype.resumeWithException_tcv7n7$ = function (exception) { - throw exception; - }; - Object.defineProperty(SequenceBuilderIterator.prototype, 'context', {get: function () { - return EmptyCoroutineContext_getInstance(); - }}); - SequenceBuilderIterator.$metadata$ = {kind: Kind_CLASS, simpleName: 'SequenceBuilderIterator', interfaces: [Continuation, Iterator, SequenceBuilder]}; - function suspendCoroutineOrReturn$lambda_1(closure$block) { - return function (cont) { - return closure$block(cont.facade); - }; - } - function suspendCoroutineOrReturn(block, continuation) { - return suspendCoroutineOrReturn$lambda_1(block)(continuation); - } - defineInlineFunction('kotlin.kotlin.coroutines.experimental.intrinsics.suspendCoroutineOrReturn_8ufn2u$', wrapFunction(function () { - function suspendCoroutineOrReturn$lambda(closure$block) { - return function (cont) { - return closure$block(cont.facade); - }; - } - return function (block, continuation) { - Kotlin.suspendCall(suspendCoroutineOrReturn$lambda(block)(Kotlin.coroutineReceiver())); - return Kotlin.coroutineResult(Kotlin.coroutineReceiver()); - }; - })); - function suspendCoroutineUninterceptedOrReturn(block, continuation) { - throw new NotImplementedError('Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic'); - } - defineInlineFunction('kotlin.kotlin.coroutines.experimental.intrinsics.suspendCoroutineUninterceptedOrReturn_8ufn2u$', wrapFunction(function () { - var NotImplementedError_init = Kotlin.kotlin.NotImplementedError; - return function (block, continuation) { - throw new NotImplementedError_init('Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic'); - }; - })); - var intercepted = defineInlineFunction('kotlin.kotlin.coroutines.experimental.intrinsics.intercepted_5cx0c9$', wrapFunction(function () { - var NotImplementedError_init = Kotlin.kotlin.NotImplementedError; - return function ($receiver) { - throw new NotImplementedError_init('Implementation of intercepted is intrinsic'); - }; - })); - var package$kotlin = _.kotlin || (_.kotlin = {}); - var package$coroutines = package$kotlin.coroutines || (package$kotlin.coroutines = {}); - var package$experimental = package$coroutines.experimental || (package$coroutines.experimental = {}); - package$experimental.CoroutineImpl = CoroutineImpl; - package$experimental.SafeContinuation_init_n4f53e$ = SafeContinuation_init; - package$experimental.SafeContinuation = SafeContinuation; - var package$intrinsics = package$experimental.intrinsics || (package$experimental.intrinsics = {}); - package$intrinsics.createCoroutineUnchecked_uao1qo$ = createCoroutineUnchecked; - package$intrinsics.createCoroutineUnchecked_xtwlez$ = createCoroutineUnchecked_0; - Object.defineProperty(package$intrinsics, 'COROUTINE_SUSPENDED', {get: function () { - return COROUTINE_SUSPENDED; - }}); - Object.defineProperty(ContinuationInterceptor, 'Key', {get: ContinuationInterceptor$Key_getInstance}); - package$experimental.ContinuationInterceptor = ContinuationInterceptor; - CoroutineContext.Element = CoroutineContext$Element; - CoroutineContext.Key = CoroutineContext$Key; - package$experimental.CoroutineContext = CoroutineContext; - package$experimental.AbstractCoroutineContextElement = AbstractCoroutineContextElement; - Object.defineProperty(package$experimental, 'EmptyCoroutineContext', {get: EmptyCoroutineContext_getInstance}); - package$experimental.CombinedContext = CombinedContext; - package$experimental.Continuation = Continuation; - package$experimental.RestrictsSuspension = RestrictsSuspension; - package$experimental.startCoroutine_uao1qo$ = startCoroutine; - package$experimental.startCoroutine_xtwlez$ = startCoroutine_0; - package$experimental.createCoroutine_uao1qo$ = createCoroutine; - package$experimental.createCoroutine_xtwlez$ = createCoroutine_0; - Object.defineProperty(package$experimental, 'coroutineContext', {get: get_coroutineContext}); - package$experimental.buildSequence_of7nec$ = buildSequence; - package$experimental.buildIterator_of7nec$ = buildIterator; - package$experimental.SequenceBuilder = SequenceBuilder; - CoroutineContext$Element.prototype.plus_dvqyjb$ = CoroutineContext.prototype.plus_dvqyjb$; - ContinuationInterceptor.prototype.get_8oh8b3$ = CoroutineContext$Element.prototype.get_8oh8b3$; - ContinuationInterceptor.prototype.fold_m9u1mr$ = CoroutineContext$Element.prototype.fold_m9u1mr$; - ContinuationInterceptor.prototype.minusKey_ds72xk$ = CoroutineContext$Element.prototype.minusKey_ds72xk$; - ContinuationInterceptor.prototype.plus_dvqyjb$ = CoroutineContext$Element.prototype.plus_dvqyjb$; - AbstractCoroutineContextElement.prototype.get_8oh8b3$ = CoroutineContext$Element.prototype.get_8oh8b3$; - AbstractCoroutineContextElement.prototype.fold_m9u1mr$ = CoroutineContext$Element.prototype.fold_m9u1mr$; - AbstractCoroutineContextElement.prototype.minusKey_ds72xk$ = CoroutineContext$Element.prototype.minusKey_ds72xk$; - AbstractCoroutineContextElement.prototype.plus_dvqyjb$ = CoroutineContext$Element.prototype.plus_dvqyjb$; - CombinedContext.prototype.plus_dvqyjb$ = CoroutineContext.prototype.plus_dvqyjb$; - UNDECIDED = new Any(); - RESUMED = new Any(); - COROUTINE_SUSPENDED = CoroutineSuspendedMarker_getInstance(); - State_NotReady = 0; - State_ManyNotReady = 1; - State_ManyReady = 2; - State_Ready = 3; - State_Done = 4; - State_Failed = 5; - Kotlin.defineModule('kotlin', _); - - }()); -})); - -//# sourceMappingURL=kotlin.js.map diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js.map b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js.map deleted file mode 100644 index 919b6fb..0000000 --- a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"kotlin.js","sources":["wrapper.js","arrayUtils.js","callableReferenceUtils.js","conversions.js","core.js","long.js","markerFunctions.js","misc.js","polyfills.js","rtti.js","arrayUtils.kt","runtime/Enum.kt","primitiveCompanionObjects.kt","generated/_Arrays.kt","generated/_Ranges.kt","kotlin/UByte.kt","kotlin/UInt.kt","kotlin/UShort.kt","Ranges.kt","collections/Collections.kt","collections/Maps.kt","collections/Sets.kt","text/StringNumberConversions.kt","kotlin/UnsignedUtils.kt","collections/Iterables.kt","collections/Sequences.kt","util/Preconditions.kt","generated/_ArraysJs.kt","comparisons/Comparisons.kt","kotlin/Comparator.kt","util/Standard.kt","generated/_ComparisonsJs.kt","generated/_Collections.kt","kotlin/collections.kt","collections/Iterators.kt","generated/_Comparisons.kt","generated/_Maps.kt","kotlin/ranges.kt","generated/_Sequences.kt","dummy.kt","generated/_Sets.kt","generated/_Strings.kt","text/Strings.kt","kotlin/text/string.kt","kotlin/UByteArray.kt","kotlin/UIntArray.kt","kotlin/ULongArray.kt","kotlin/ULong.kt","kotlin/UShortArray.kt","generated/_UArrays.kt","generated/_UCollections.kt","generated/_UComparisons.kt","generated/_URanges.kt","generated/_USequences.kt","Collections.kt","Iterators.kt","ProgressionIterators.kt","Progressions.kt","Range.kt","Unit.kt","annotation/Annotations.kt","internal/InternalAnnotations.kt","internal/progressionUtil.kt","reflect/KParameter.kt","reflect/KType.kt","reflect/KVariance.kt","reflect/KVisibility.kt","kotlin/builtins.kt","kotlin/jsTypeOf.kt","kotlin/kotlin.kt","kotlin/coroutines/CoroutineImpl.kt","util/Result.kt","coroutines/Continuation.kt","kotlin/coroutines/intrinsics/IntrinsicsJs.kt","kotlin/jsOperators.kt","generated/_CollectionsJs.kt","generated/_StringsJs.kt","generated/_UArraysJs.kt","jquery/ui.kt","kotlin/annotations.kt","kotlin/annotationsJVM.kt","kotlin/collections/AbstractMutableCollection.kt","kotlin/collections/AbstractMutableList.kt","kotlin/collections/AbstractMutableMap.kt","kotlin/collections/AbstractMutableSet.kt","kotlin/collections/ArrayList.kt","kotlin/collections/ArraySorting.kt","kotlin/collections/ArraysJs.kt","kotlin/collections/EqualityComparator.kt","kotlin/collections/HashMap.kt","kotlin/collections/HashSet.kt","kotlin/collections/InternalHashCodeMap.kt","kotlin/collections/InternalMap.kt","kotlin/collections/InternalStringMap.kt","kotlin/collections/LinkedHashMap.kt","kotlin/collections/LinkedHashSet.kt","kotlin/concurrent.kt","kotlin/console.kt","kotlin/coroutines/SafeContinuationJs.kt","kotlin/coroutines/js/internal/EmptyContinuation.kt","kotlin/date.kt","kotlin/dom/Builders.kt","kotlin/dom/Classes.kt","text/regex/RegexExtensions.kt","text/StringBuilder.kt","kotlin/dom/Dom.kt","kotlin/dom/EventListener.kt","kotlin/dom/ItemArrayLike.kt","kotlin/dom/Mutations.kt","kotlin/dynamic.kt","kotlin/exceptionUtils.kt","kotlin/exceptions.kt","collections/Grouping.kt","kotlin/grouping.kt","kotlin/js.math.kt","kotlin/json.kt","kotlin/math.kt","kotlin/numbers.kt","kotlin/promise.kt","kotlin/random/PlatformRandom.kt","kotlin/reflect/JsClass.kt","kotlin/reflect/KClassImpl.kt","kotlin/reflect/primitives.kt","kotlin/reflect/reflection.kt","kotlin/regexp.kt","kotlin/sequence.kt","kotlin/text/char.kt","kotlin/text/numberConversions.kt","kotlin/text/regex.kt","kotlin/text/stringsCode.kt","kotlin/text/text.kt","kotlin/text/utf8Encoding.kt","org.w3c/org.khronos.webgl.kt","org.w3c/org.w3c.dom.clipboard.kt","org.w3c/org.w3c.dom.css.kt","org.w3c/org.w3c.dom.events.kt","org.w3c/org.w3c.dom.kt","org.w3c/org.w3c.fetch.kt","org.w3c/org.w3c.dom.mediacapture.kt","org.w3c/org.w3c.dom.pointerevents.kt","org.w3c/org.w3c.dom.svg.kt","org.w3c/org.w3c.files.kt","org.w3c/org.w3c.notifications.kt","org.w3c/org.w3c.workers.kt","org.w3c/org.w3c.xhr.kt","annotations/Experimental.kt","annotations/ExperimentalStdlibApi.kt","annotations/Inference.kt","annotations/Multiplatform.kt","collections/AbstractCollection.kt","collections/AbstractIterator.kt","collections/AbstractList.kt","collections/AbstractMap.kt","collections/AbstractSet.kt","collections/Arrays.kt","collections/IndexedValue.kt","collections/MapAccessors.kt","collections/MapWithDefault.kt","collections/MutableCollections.kt","collections/ReversedViews.kt","collections/SequenceBuilder.kt","collections/SlidingWindow.kt","collections/UArraySorting.kt","contracts/ContractBuilder.kt","coroutines/ContinuationInterceptor.kt","coroutines/CoroutineContext.kt","coroutines/CoroutineContextImpl.kt","coroutines/intrinsics/Intrinsics.kt","experimental/bitwiseOperations.kt","experimental/inferenceMarker.kt","internal/Annotations.kt","properties/Delegates.kt","properties/ObservableProperty.kt","random/Random.kt","random/URandom.kt","random/XorWowRandom.kt","ranges/Ranges.kt","reflect/typeOf.kt","text/Char.kt","text/Indent.kt","text/Typography.kt","text/regex/MatchResult.kt","util/HashCode.kt","util/KotlinVersion.kt","util/Lateinit.kt","util/Lazy.kt","util/Suspend.kt","util/Tuples.kt","kotlin/UIntRange.kt","kotlin/UIterators.kt","kotlin/ULongRange.kt","kotlin/UMath.kt","kotlin/UProgressionUtil.kt","kotlin/UStrings.kt","kotlin/annotations/Unsigned.kt","kotlin/MathH.kt","coroutines.kt","CoroutinesLibrary.kt","coroutinesIntrinsics.kt","ContinuationInterceptor.kt","CoroutineContext.kt","CoroutineContextImpl.kt","Coroutines.kt","Intrinsics.kt","SequenceBuilder.kt"],"sourcesContent":["(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define('kotlin', ['exports'], factory);\n }\n else if (typeof exports === 'object') {\n factory(module.exports);\n }\n else {\n root.kotlin = {};\n factory(root.kotlin);\n }\n}(this, function (Kotlin) {\n var _ = Kotlin;\n\n insertContent();\n}));\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nKotlin.isBooleanArray = function (a) {\n return (Array.isArray(a) || a instanceof Int8Array) && a.$type$ === \"BooleanArray\"\n};\n\nKotlin.isByteArray = function (a) {\n return a instanceof Int8Array && a.$type$ !== \"BooleanArray\"\n};\n\nKotlin.isShortArray = function (a) {\n return a instanceof Int16Array\n};\n\nKotlin.isCharArray = function (a) {\n return a instanceof Uint16Array && a.$type$ === \"CharArray\"\n};\n\nKotlin.isIntArray = function (a) {\n return a instanceof Int32Array\n};\n\nKotlin.isFloatArray = function (a) {\n return a instanceof Float32Array\n};\n\nKotlin.isDoubleArray = function (a) {\n return a instanceof Float64Array\n};\n\nKotlin.isLongArray = function (a) {\n return Array.isArray(a) && a.$type$ === \"LongArray\"\n};\n\nKotlin.isArray = function (a) {\n return Array.isArray(a) && !a.$type$;\n};\n\nKotlin.isArrayish = function (a) {\n return Array.isArray(a) || ArrayBuffer.isView(a)\n};\n\nKotlin.arrayToString = function (a) {\n var toString = Kotlin.isCharArray(a) ? String.fromCharCode : Kotlin.toString;\n return \"[\" + Array.prototype.map.call(a, function(e) { return toString(e); }).join(\", \") + \"]\";\n};\n\nKotlin.arrayDeepToString = function (arr) {\n return Kotlin.kotlin.collections.contentDeepToStringImpl(arr);\n};\n\nKotlin.arrayEquals = function (a, b) {\n if (a === b) {\n return true;\n }\n if (!Kotlin.isArrayish(b) || a.length !== b.length) {\n return false;\n }\n\n for (var i = 0, n = a.length; i < n; i++) {\n if (!Kotlin.equals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n};\n\nKotlin.arrayDeepEquals = function (a, b) {\n return Kotlin.kotlin.collections.contentDeepEqualsImpl(a, b);\n};\n\nKotlin.arrayHashCode = function (arr) {\n var result = 1;\n for (var i = 0, n = arr.length; i < n; i++) {\n result = ((31 * result | 0) + Kotlin.hashCode(arr[i])) | 0;\n }\n return result;\n};\n\nKotlin.arrayDeepHashCode = function (arr) {\n return Kotlin.kotlin.collections.contentDeepHashCodeImpl(arr);\n};\n\nKotlin.primitiveArraySort = function (array) {\n array.sort(Kotlin.doubleCompareTo)\n};\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nKotlin.getCallableRef = function(name, f) {\n f.callableName = name;\n return f;\n};\n\nKotlin.getPropertyCallableRef = function(name, paramCount, getter, setter) {\n getter.get = getter;\n getter.set = setter;\n getter.callableName = name;\n return getPropertyRefClass(getter, setter, propertyRefClassMetadataCache[paramCount]);\n};\n\nfunction getPropertyRefClass(obj, setter, cache) {\n obj.$metadata$ = getPropertyRefMetadata(typeof setter === \"function\" ? cache.mutable : cache.immutable);\n obj.constructor = obj;\n return obj;\n}\n\nvar propertyRefClassMetadataCache = [\n {\n mutable: { value: null, implementedInterface: function () {\n return Kotlin.kotlin.reflect.KMutableProperty0 }\n },\n immutable: { value: null, implementedInterface: function () {\n return Kotlin.kotlin.reflect.KProperty0 }\n }\n },\n {\n mutable: { value: null, implementedInterface: function () {\n return Kotlin.kotlin.reflect.KMutableProperty1 }\n },\n immutable: { value: null, implementedInterface: function () {\n return Kotlin.kotlin.reflect.KProperty1 }\n }\n }\n];\n\nfunction getPropertyRefMetadata(cache) {\n if (cache.value === null) {\n cache.value = {\n interfaces: [cache.implementedInterface()],\n baseClass: null,\n functions: {},\n properties: {},\n types: {},\n staticMembers: {}\n };\n }\n return cache.value;\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nKotlin.toShort = function (a) {\n return (a & 0xFFFF) << 16 >> 16;\n};\n\nKotlin.toByte = function (a) {\n return (a & 0xFF) << 24 >> 24;\n};\n\nKotlin.toChar = function (a) {\n return a & 0xFFFF;\n};\n\nKotlin.numberToLong = function (a) {\n return a instanceof Kotlin.Long ? a : Kotlin.Long.fromNumber(a);\n};\n\nKotlin.numberToInt = function (a) {\n return a instanceof Kotlin.Long ? a.toInt() : Kotlin.doubleToInt(a);\n};\n\nKotlin.numberToShort = function (a) {\n return Kotlin.toShort(Kotlin.numberToInt(a));\n};\n\nKotlin.numberToByte = function (a) {\n return Kotlin.toByte(Kotlin.numberToInt(a));\n};\n\nKotlin.numberToDouble = function (a) {\n return +a;\n};\n\nKotlin.numberToChar = function (a) {\n return Kotlin.toChar(Kotlin.numberToInt(a));\n};\n\nKotlin.doubleToInt = function(a) {\n if (a > 2147483647) return 2147483647;\n if (a < -2147483648) return -2147483648;\n return a | 0;\n};\n\nKotlin.toBoxedChar = function (a) {\n if (a == null) return a;\n if (a instanceof Kotlin.BoxedChar) return a;\n return new Kotlin.BoxedChar(a);\n};\n\nKotlin.unboxChar = function(a) {\n if (a == null) return a;\n return Kotlin.toChar(a);\n};\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nKotlin.equals = function (obj1, obj2) {\n if (obj1 == null) {\n return obj2 == null;\n }\n\n if (obj2 == null) {\n return false;\n }\n\n if (obj1 !== obj1) {\n return obj2 !== obj2;\n }\n\n if (typeof obj1 === \"object\" && typeof obj1.equals === \"function\") {\n return obj1.equals(obj2);\n }\n\n if (typeof obj1 === \"number\" && typeof obj2 === \"number\") {\n return obj1 === obj2 && (obj1 !== 0 || 1 / obj1 === 1 / obj2)\n }\n\n return obj1 === obj2;\n};\n\nKotlin.hashCode = function (obj) {\n if (obj == null) {\n return 0;\n }\n var objType = typeof obj;\n if (\"object\" === objType) {\n return \"function\" === typeof obj.hashCode ? obj.hashCode() : getObjectHashCode(obj);\n }\n if (\"function\" === objType) {\n return getObjectHashCode(obj);\n }\n if (\"number\" === objType) {\n return Kotlin.numberHashCode(obj);\n }\n if (\"boolean\" === objType) {\n return Number(obj)\n }\n\n var str = String(obj);\n return getStringHashCode(str);\n};\n\n\nKotlin.toString = function (o) {\n if (o == null) {\n return \"null\";\n }\n else if (Kotlin.isArrayish(o)) {\n return \"[...]\";\n }\n else {\n return o.toString();\n }\n};\n\n/** @const */\nvar POW_2_32 = 4294967296;\n// TODO: consider switching to Symbol type once we are on ES6.\n/** @const */\nvar OBJECT_HASH_CODE_PROPERTY_NAME = \"kotlinHashCodeValue$\";\n\nfunction getObjectHashCode(obj) {\n if (!(OBJECT_HASH_CODE_PROPERTY_NAME in obj)) {\n var hash = (Math.random() * POW_2_32) | 0; // Make 32-bit singed integer.\n Object.defineProperty(obj, OBJECT_HASH_CODE_PROPERTY_NAME, { value: hash, enumerable: false });\n }\n return obj[OBJECT_HASH_CODE_PROPERTY_NAME];\n}\n\nfunction getStringHashCode(str) {\n var hash = 0;\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n hash = (hash * 31 + code) | 0; // Keep it 32-bit.\n }\n return hash;\n}\n\nKotlin.identityHashCode = getObjectHashCode;\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Copyright 2009 The Closure Library Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\n/**\n * Constructs a 64-bit two's-complement integer, given its low and high 32-bit\n * values as *signed* integers. See the from* functions below for more\n * convenient ways of constructing Longs.\n *\n * The internal representation of a long is the two given signed, 32-bit values.\n * We use 32-bit pieces because these are the size of integers on which\n * Javascript performs bit-operations. For operations like addition and\n * multiplication, we split each number into 16-bit pieces, which can easily be\n * multiplied within Javascript's floating-point representation without overflow\n * or change in sign.\n *\n * In the algorithms below, we frequently reduce the negative case to the\n * positive case by negating the input(s) and then post-processing the result.\n * Note that we must ALWAYS check specially whether those values are MIN_VALUE\n * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n * a positive number, it overflows back into a negative). Not handling this\n * case would often result in infinite recursion.\n *\n * @param {number} low The low (signed) 32 bits of the long.\n * @param {number} high The high (signed) 32 bits of the long.\n * @constructor\n * @final\n */\nKotlin.Long = function(low, high) {\n /**\n * @type {number}\n * @private\n */\n this.low_ = low | 0; // force into 32 signed bits.\n\n /**\n * @type {number}\n * @private\n */\n this.high_ = high | 0; // force into 32 signed bits.\n};\n\nKotlin.Long.$metadata$ = {\n kind: \"class\",\n simpleName: \"Long\",\n interfaces:[]\n};\n\n\n// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the\n// from* methods on which they depend.\n\n\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @private\n */\nKotlin.Long.IntCache_ = {};\n\n\n/**\n * Returns a Long representing the given (32-bit) integer value.\n * @param {number} value The 32-bit integer in question.\n * @return {!Kotlin.Long} The corresponding Long value.\n */\nKotlin.Long.fromInt = function(value) {\n if (-128 <= value && value < 128) {\n var cachedObj = Kotlin.Long.IntCache_[value];\n if (cachedObj) {\n return cachedObj;\n }\n }\n\n var obj = new Kotlin.Long(value | 0, value < 0 ? -1 : 0);\n if (-128 <= value && value < 128) {\n Kotlin.Long.IntCache_[value] = obj;\n }\n return obj;\n};\n\n\n/**\n * Returns a Long representing the given value, provided that it is a finite\n * number. Otherwise, zero is returned.\n * @param {number} value The number in question.\n * @return {!Kotlin.Long} The corresponding Long value.\n */\nKotlin.Long.fromNumber = function(value) {\n if (isNaN(value) || !isFinite(value)) {\n return Kotlin.Long.ZERO;\n } else if (value <= -Kotlin.Long.TWO_PWR_63_DBL_) {\n return Kotlin.Long.MIN_VALUE;\n } else if (value + 1 >= Kotlin.Long.TWO_PWR_63_DBL_) {\n return Kotlin.Long.MAX_VALUE;\n } else if (value < 0) {\n return Kotlin.Long.fromNumber(-value).negate();\n } else {\n return new Kotlin.Long(\n (value % Kotlin.Long.TWO_PWR_32_DBL_) | 0,\n (value / Kotlin.Long.TWO_PWR_32_DBL_) | 0);\n }\n};\n\n\n/**\n * Returns a Long representing the 64-bit integer that comes by concatenating\n * the given high and low bits. Each is assumed to use 32 bits.\n * @param {number} lowBits The low 32-bits.\n * @param {number} highBits The high 32-bits.\n * @return {!Kotlin.Long} The corresponding Long value.\n */\nKotlin.Long.fromBits = function(lowBits, highBits) {\n return new Kotlin.Long(lowBits, highBits);\n};\n\n\n/**\n * Returns a Long representation of the given string, written using the given\n * radix.\n * @param {string} str The textual representation of the Long.\n * @param {number=} opt_radix The radix in which the text is written.\n * @return {!Kotlin.Long} The corresponding Long value.\n */\nKotlin.Long.fromString = function(str, opt_radix) {\n if (str.length == 0) {\n throw Error('number format error: empty string');\n }\n\n var radix = opt_radix || 10;\n if (radix < 2 || 36 < radix) {\n throw Error('radix out of range: ' + radix);\n }\n\n if (str.charAt(0) == '-') {\n return Kotlin.Long.fromString(str.substring(1), radix).negate();\n } else if (str.indexOf('-') >= 0) {\n throw Error('number format error: interior \"-\" character: ' + str);\n }\n\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = Kotlin.Long.fromNumber(Math.pow(radix, 8));\n\n var result = Kotlin.Long.ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i);\n var value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = Kotlin.Long.fromNumber(Math.pow(radix, size));\n result = result.multiply(power).add(Kotlin.Long.fromNumber(value));\n } else {\n result = result.multiply(radixToPower);\n result = result.add(Kotlin.Long.fromNumber(value));\n }\n }\n return result;\n};\n\n\n// NOTE: the compiler should inline these constant values below and then remove\n// these variables, so there should be no runtime penalty for these.\n\n\n/**\n * Number used repeated below in calculations. This must appear before the\n * first call to any from* function below.\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_16_DBL_ = 1 << 16;\n\n\n/**\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_24_DBL_ = 1 << 24;\n\n\n/**\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_32_DBL_ =\n Kotlin.Long.TWO_PWR_16_DBL_ * Kotlin.Long.TWO_PWR_16_DBL_;\n\n\n/**\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_31_DBL_ =\n Kotlin.Long.TWO_PWR_32_DBL_ / 2;\n\n\n/**\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_48_DBL_ =\n Kotlin.Long.TWO_PWR_32_DBL_ * Kotlin.Long.TWO_PWR_16_DBL_;\n\n\n/**\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_64_DBL_ =\n Kotlin.Long.TWO_PWR_32_DBL_ * Kotlin.Long.TWO_PWR_32_DBL_;\n\n\n/**\n * @type {number}\n * @private\n */\nKotlin.Long.TWO_PWR_63_DBL_ =\n Kotlin.Long.TWO_PWR_64_DBL_ / 2;\n\n\n/** @type {!Kotlin.Long} */\nKotlin.Long.ZERO = Kotlin.Long.fromInt(0);\n\n\n/** @type {!Kotlin.Long} */\nKotlin.Long.ONE = Kotlin.Long.fromInt(1);\n\n\n/** @type {!Kotlin.Long} */\nKotlin.Long.NEG_ONE = Kotlin.Long.fromInt(-1);\n\n\n/** @type {!Kotlin.Long} */\nKotlin.Long.MAX_VALUE =\n Kotlin.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);\n\n\n/** @type {!Kotlin.Long} */\nKotlin.Long.MIN_VALUE = Kotlin.Long.fromBits(0, 0x80000000 | 0);\n\n\n/**\n * @type {!Kotlin.Long}\n * @private\n */\nKotlin.Long.TWO_PWR_24_ = Kotlin.Long.fromInt(1 << 24);\n\n\n/** @return {number} The value, assuming it is a 32-bit integer. */\nKotlin.Long.prototype.toInt = function() {\n return this.low_;\n};\n\n\n/** @return {number} The closest floating-point representation to this value. */\nKotlin.Long.prototype.toNumber = function() {\n return this.high_ * Kotlin.Long.TWO_PWR_32_DBL_ +\n this.getLowBitsUnsigned();\n};\n\n/** @return {number} The 32-bit hashCode of this value. */\nKotlin.Long.prototype.hashCode = function() {\n return this.high_ ^ this.low_;\n};\n\n/**\n * @param {number=} opt_radix The radix in which the text should be written.\n * @return {string} The textual representation of this value.\n * @override\n */\nKotlin.Long.prototype.toString = function(opt_radix) {\n var radix = opt_radix || 10;\n if (radix < 2 || 36 < radix) {\n throw Error('radix out of range: ' + radix);\n }\n\n if (this.isZero()) {\n return '0';\n }\n\n if (this.isNegative()) {\n if (this.equalsLong(Kotlin.Long.MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = Kotlin.Long.fromNumber(radix);\n var div = this.div(radixLong);\n var rem = div.multiply(radixLong).subtract(this);\n return div.toString(radix) + rem.toInt().toString(radix);\n } else {\n return '-' + this.negate().toString(radix);\n }\n }\n\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = Kotlin.Long.fromNumber(Math.pow(radix, 6));\n\n var rem = this;\n var result = '';\n while (true) {\n var remDiv = rem.div(radixToPower);\n var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();\n var digits = intval.toString(radix);\n\n rem = remDiv;\n if (rem.isZero()) {\n return digits + result;\n } else {\n while (digits.length < 6) {\n digits = '0' + digits;\n }\n result = '' + digits + result;\n }\n }\n};\n\n\n/** @return {number} The high 32-bits as a signed value. */\nKotlin.Long.prototype.getHighBits = function() {\n return this.high_;\n};\n\n\n/** @return {number} The low 32-bits as a signed value. */\nKotlin.Long.prototype.getLowBits = function() {\n return this.low_;\n};\n\n\n/** @return {number} The low 32-bits as an unsigned value. */\nKotlin.Long.prototype.getLowBitsUnsigned = function() {\n return (this.low_ >= 0) ?\n this.low_ : Kotlin.Long.TWO_PWR_32_DBL_ + this.low_;\n};\n\n\n/**\n * @return {number} Returns the number of bits needed to represent the absolute\n * value of this Long.\n */\nKotlin.Long.prototype.getNumBitsAbs = function() {\n if (this.isNegative()) {\n if (this.equalsLong(Kotlin.Long.MIN_VALUE)) {\n return 64;\n } else {\n return this.negate().getNumBitsAbs();\n }\n } else {\n var val = this.high_ != 0 ? this.high_ : this.low_;\n for (var bit = 31; bit > 0; bit--) {\n if ((val & (1 << bit)) != 0) {\n break;\n }\n }\n return this.high_ != 0 ? bit + 33 : bit + 1;\n }\n};\n\n\n/** @return {boolean} Whether this value is zero. */\nKotlin.Long.prototype.isZero = function() {\n return this.high_ == 0 && this.low_ == 0;\n};\n\n\n/** @return {boolean} Whether this value is negative. */\nKotlin.Long.prototype.isNegative = function() {\n return this.high_ < 0;\n};\n\n\n/** @return {boolean} Whether this value is odd. */\nKotlin.Long.prototype.isOdd = function() {\n return (this.low_ & 1) == 1;\n};\n\n\n/**\n * @param {Kotlin.Long} other Long to compare against.\n * @return {boolean} Whether this Long equals the other.\n */\nKotlin.Long.prototype.equalsLong = function(other) {\n return (this.high_ == other.high_) && (this.low_ == other.low_);\n};\n\n\n/**\n * @param {Kotlin.Long} other Long to compare against.\n * @return {boolean} Whether this Long does not equal the other.\n */\nKotlin.Long.prototype.notEqualsLong = function(other) {\n return (this.high_ != other.high_) || (this.low_ != other.low_);\n};\n\n\n/**\n * @param {Kotlin.Long} other Long to compare against.\n * @return {boolean} Whether this Long is less than the other.\n */\nKotlin.Long.prototype.lessThan = function(other) {\n return this.compare(other) < 0;\n};\n\n\n/**\n * @param {Kotlin.Long} other Long to compare against.\n * @return {boolean} Whether this Long is less than or equal to the other.\n */\nKotlin.Long.prototype.lessThanOrEqual = function(other) {\n return this.compare(other) <= 0;\n};\n\n\n/**\n * @param {Kotlin.Long} other Long to compare against.\n * @return {boolean} Whether this Long is greater than the other.\n */\nKotlin.Long.prototype.greaterThan = function(other) {\n return this.compare(other) > 0;\n};\n\n\n/**\n * @param {Kotlin.Long} other Long to compare against.\n * @return {boolean} Whether this Long is greater than or equal to the other.\n */\nKotlin.Long.prototype.greaterThanOrEqual = function(other) {\n return this.compare(other) >= 0;\n};\n\n\n/**\n * Compares this Long with the given one.\n * @param {Kotlin.Long} other Long to compare against.\n * @return {number} 0 if they are the same, 1 if the this is greater, and -1\n * if the given one is greater.\n */\nKotlin.Long.prototype.compare = function(other) {\n if (this.equalsLong(other)) {\n return 0;\n }\n\n var thisNeg = this.isNegative();\n var otherNeg = other.isNegative();\n if (thisNeg && !otherNeg) {\n return -1;\n }\n if (!thisNeg && otherNeg) {\n return 1;\n }\n\n // at this point, the signs are the same, so subtraction will not overflow\n if (this.subtract(other).isNegative()) {\n return -1;\n } else {\n return 1;\n }\n};\n\n\n/** @return {!Kotlin.Long} The negation of this value. */\nKotlin.Long.prototype.negate = function() {\n if (this.equalsLong(Kotlin.Long.MIN_VALUE)) {\n return Kotlin.Long.MIN_VALUE;\n } else {\n return this.not().add(Kotlin.Long.ONE);\n }\n};\n\n\n/**\n * Returns the sum of this and the given Long.\n * @param {Kotlin.Long} other Long to add to this one.\n * @return {!Kotlin.Long} The sum of this and the given Long.\n */\nKotlin.Long.prototype.add = function(other) {\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n\n var a48 = this.high_ >>> 16;\n var a32 = this.high_ & 0xFFFF;\n var a16 = this.low_ >>> 16;\n var a00 = this.low_ & 0xFFFF;\n\n var b48 = other.high_ >>> 16;\n var b32 = other.high_ & 0xFFFF;\n var b16 = other.low_ >>> 16;\n var b00 = other.low_ & 0xFFFF;\n\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 + b48;\n c48 &= 0xFFFF;\n return Kotlin.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);\n};\n\n\n/**\n * Returns the difference of this and the given Long.\n * @param {Kotlin.Long} other Long to subtract from this.\n * @return {!Kotlin.Long} The difference of this and the given Long.\n */\nKotlin.Long.prototype.subtract = function(other) {\n return this.add(other.negate());\n};\n\n\n/**\n * Returns the product of this and the given long.\n * @param {Kotlin.Long} other Long to multiply with this.\n * @return {!Kotlin.Long} The product of this and the other.\n */\nKotlin.Long.prototype.multiply = function(other) {\n if (this.isZero()) {\n return Kotlin.Long.ZERO;\n } else if (other.isZero()) {\n return Kotlin.Long.ZERO;\n }\n\n if (this.equalsLong(Kotlin.Long.MIN_VALUE)) {\n return other.isOdd() ? Kotlin.Long.MIN_VALUE : Kotlin.Long.ZERO;\n } else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) {\n return this.isOdd() ? Kotlin.Long.MIN_VALUE : Kotlin.Long.ZERO;\n }\n\n if (this.isNegative()) {\n if (other.isNegative()) {\n return this.negate().multiply(other.negate());\n } else {\n return this.negate().multiply(other).negate();\n }\n } else if (other.isNegative()) {\n return this.multiply(other.negate()).negate();\n }\n\n // If both longs are small, use float multiplication\n if (this.lessThan(Kotlin.Long.TWO_PWR_24_) &&\n other.lessThan(Kotlin.Long.TWO_PWR_24_)) {\n return Kotlin.Long.fromNumber(this.toNumber() * other.toNumber());\n }\n\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n\n var a48 = this.high_ >>> 16;\n var a32 = this.high_ & 0xFFFF;\n var a16 = this.low_ >>> 16;\n var a00 = this.low_ & 0xFFFF;\n\n var b48 = other.high_ >>> 16;\n var b32 = other.high_ & 0xFFFF;\n var b16 = other.low_ >>> 16;\n var b00 = other.low_ & 0xFFFF;\n\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xFFFF;\n return Kotlin.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);\n};\n\n\n/**\n * Returns this Long divided by the given one.\n * @param {Kotlin.Long} other Long by which to divide.\n * @return {!Kotlin.Long} This Long divided by the given one.\n */\nKotlin.Long.prototype.div = function(other) {\n if (other.isZero()) {\n throw Error('division by zero');\n } else if (this.isZero()) {\n return Kotlin.Long.ZERO;\n }\n\n if (this.equalsLong(Kotlin.Long.MIN_VALUE)) {\n if (other.equalsLong(Kotlin.Long.ONE) ||\n other.equalsLong(Kotlin.Long.NEG_ONE)) {\n return Kotlin.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n } else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) {\n return Kotlin.Long.ONE;\n } else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = this.shiftRight(1);\n var approx = halfThis.div(other).shiftLeft(1);\n if (approx.equalsLong(Kotlin.Long.ZERO)) {\n return other.isNegative() ? Kotlin.Long.ONE : Kotlin.Long.NEG_ONE;\n } else {\n var rem = this.subtract(other.multiply(approx));\n var result = approx.add(rem.div(other));\n return result;\n }\n }\n } else if (other.equalsLong(Kotlin.Long.MIN_VALUE)) {\n return Kotlin.Long.ZERO;\n }\n\n if (this.isNegative()) {\n if (other.isNegative()) {\n return this.negate().div(other.negate());\n } else {\n return this.negate().div(other).negate();\n }\n } else if (other.isNegative()) {\n return this.div(other.negate()).negate();\n }\n\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n var res = Kotlin.Long.ZERO;\n var rem = this;\n while (rem.greaterThanOrEqual(other)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));\n\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2);\n var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);\n\n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n var approxRes = Kotlin.Long.fromNumber(approx);\n var approxRem = approxRes.multiply(other);\n while (approxRem.isNegative() || approxRem.greaterThan(rem)) {\n approx -= delta;\n approxRes = Kotlin.Long.fromNumber(approx);\n approxRem = approxRes.multiply(other);\n }\n\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (approxRes.isZero()) {\n approxRes = Kotlin.Long.ONE;\n }\n\n res = res.add(approxRes);\n rem = rem.subtract(approxRem);\n }\n return res;\n};\n\n\n/**\n * Returns this Long modulo the given one.\n * @param {Kotlin.Long} other Long by which to mod.\n * @return {!Kotlin.Long} This Long modulo the given one.\n */\nKotlin.Long.prototype.modulo = function(other) {\n return this.subtract(this.div(other).multiply(other));\n};\n\n\n/** @return {!Kotlin.Long} The bitwise-NOT of this value. */\nKotlin.Long.prototype.not = function() {\n return Kotlin.Long.fromBits(~this.low_, ~this.high_);\n};\n\n\n/**\n * Returns the bitwise-AND of this Long and the given one.\n * @param {Kotlin.Long} other The Long with which to AND.\n * @return {!Kotlin.Long} The bitwise-AND of this and the other.\n */\nKotlin.Long.prototype.and = function(other) {\n return Kotlin.Long.fromBits(this.low_ & other.low_,\n this.high_ & other.high_);\n};\n\n\n/**\n * Returns the bitwise-OR of this Long and the given one.\n * @param {Kotlin.Long} other The Long with which to OR.\n * @return {!Kotlin.Long} The bitwise-OR of this and the other.\n */\nKotlin.Long.prototype.or = function(other) {\n return Kotlin.Long.fromBits(this.low_ | other.low_,\n this.high_ | other.high_);\n};\n\n\n/**\n * Returns the bitwise-XOR of this Long and the given one.\n * @param {Kotlin.Long} other The Long with which to XOR.\n * @return {!Kotlin.Long} The bitwise-XOR of this and the other.\n */\nKotlin.Long.prototype.xor = function(other) {\n return Kotlin.Long.fromBits(this.low_ ^ other.low_,\n this.high_ ^ other.high_);\n};\n\n\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @param {number} numBits The number of bits by which to shift.\n * @return {!Kotlin.Long} This shifted to the left by the given amount.\n */\nKotlin.Long.prototype.shiftLeft = function(numBits) {\n numBits &= 63;\n if (numBits == 0) {\n return this;\n } else {\n var low = this.low_;\n if (numBits < 32) {\n var high = this.high_;\n return Kotlin.Long.fromBits(\n low << numBits,\n (high << numBits) | (low >>> (32 - numBits)));\n } else {\n return Kotlin.Long.fromBits(0, low << (numBits - 32));\n }\n }\n};\n\n\n/**\n * Returns this Long with bits shifted to the right by the given amount.\n * @param {number} numBits The number of bits by which to shift.\n * @return {!Kotlin.Long} This shifted to the right by the given amount.\n */\nKotlin.Long.prototype.shiftRight = function(numBits) {\n numBits &= 63;\n if (numBits == 0) {\n return this;\n } else {\n var high = this.high_;\n if (numBits < 32) {\n var low = this.low_;\n return Kotlin.Long.fromBits(\n (low >>> numBits) | (high << (32 - numBits)),\n high >> numBits);\n } else {\n return Kotlin.Long.fromBits(\n high >> (numBits - 32),\n high >= 0 ? 0 : -1);\n }\n }\n};\n\n\n/**\n * Returns this Long with bits shifted to the right by the given amount, with\n * zeros placed into the new leading bits.\n * @param {number} numBits The number of bits by which to shift.\n * @return {!Kotlin.Long} This shifted to the right by the given amount, with\n * zeros placed into the new leading bits.\n */\nKotlin.Long.prototype.shiftRightUnsigned = function(numBits) {\n numBits &= 63;\n if (numBits == 0) {\n return this;\n } else {\n var high = this.high_;\n if (numBits < 32) {\n var low = this.low_;\n return Kotlin.Long.fromBits(\n (low >>> numBits) | (high << (32 - numBits)),\n high >>> numBits);\n } else if (numBits == 32) {\n return Kotlin.Long.fromBits(high, 0);\n } else {\n return Kotlin.Long.fromBits(high >>> (numBits - 32), 0);\n }\n }\n};\n\n// Support for Kotlin\nKotlin.Long.prototype.equals = function (other) {\n return other instanceof Kotlin.Long && this.equalsLong(other);\n};\n\nKotlin.Long.prototype.compareTo_11rb$ = Kotlin.Long.prototype.compare;\n\nKotlin.Long.prototype.inc = function() {\n return this.add(Kotlin.Long.ONE);\n};\n\nKotlin.Long.prototype.dec = function() {\n return this.add(Kotlin.Long.NEG_ONE);\n};\n\nKotlin.Long.prototype.valueOf = function() {\n return this.toNumber();\n};\n\nKotlin.Long.prototype.unaryPlus = function() {\n return this;\n};\n\nKotlin.Long.prototype.unaryMinus = Kotlin.Long.prototype.negate;\nKotlin.Long.prototype.inv = Kotlin.Long.prototype.not;\n\nKotlin.Long.prototype.rangeTo = function (other) {\n return new Kotlin.kotlin.ranges.LongRange(this, other);\n};","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n/**\n * @param {string} id\n * @param {Object} declaration\n */\nKotlin.defineModule = function (id, declaration) {\n};\n\nKotlin.defineInlineFunction = function(tag, fun) {\n return fun;\n};\n\nKotlin.wrapFunction = function(fun) {\n var f = function() {\n f = fun();\n return f.apply(this, arguments);\n };\n return function() {\n return f.apply(this, arguments);\n };\n};\n\nKotlin.isTypeOf = function(type) {\n return function (object) {\n return typeof object === type;\n }\n};\n\nKotlin.isInstanceOf = function (klass) {\n return function (object) {\n return Kotlin.isType(object, klass);\n }\n};\n\nKotlin.orNull = function (fn) {\n return function (object) {\n return object == null || fn(object);\n }\n};\n\nKotlin.andPredicate = function (a, b) {\n return function (object) {\n return a(object) && b(object);\n }\n};\n\nKotlin.kotlinModuleMetadata = function (abiVersion, moduleName, data) {\n};\n\nKotlin.suspendCall = function(value) {\n return value;\n};\n\nKotlin.coroutineResult = function(qualifier) {\n throwMarkerError();\n};\n\nKotlin.coroutineController = function(qualifier) {\n throwMarkerError();\n};\n\nKotlin.coroutineReceiver = function(qualifier) {\n throwMarkerError();\n};\n\nKotlin.setCoroutineResult = function(value, qualifier) {\n throwMarkerError();\n};\n\nfunction throwMarkerError() {\n throw new Error(\n \"This marker function should never been called. \" +\n \"Looks like compiler did not eliminate it properly. \" +\n \"Please, report an issue if you caught this exception.\");\n}\n\nKotlin.getFunctionById = function(id, defaultValue) {\n return function() {\n return defaultValue;\n }\n};","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nKotlin.compareTo = function (a, b) {\n var typeA = typeof a;\n if (typeA === \"number\") {\n if (typeof b === \"number\") {\n return Kotlin.doubleCompareTo(a, b);\n }\n return Kotlin.primitiveCompareTo(a, b);\n }\n if (typeA === \"string\" || typeA === \"boolean\") {\n return Kotlin.primitiveCompareTo(a, b);\n }\n return a.compareTo_11rb$(b);\n};\n\nKotlin.primitiveCompareTo = function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n};\n\nKotlin.doubleCompareTo = function (a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n\n if (a === b) {\n if (a !== 0) return 0;\n\n var ia = 1 / a;\n return ia === 1 / b ? 0 : (ia < 0 ? -1 : 1);\n }\n\n return a !== a ? (b !== b ? 0 : 1) : -1\n};\n\nKotlin.charInc = function (value) {\n return Kotlin.toChar(value+1);\n};\n\nKotlin.charDec = function (value) {\n return Kotlin.toChar(value-1);\n};\n\nKotlin.imul = Math.imul || imul;\n\nKotlin.imulEmulated = imul;\n\nfunction imul(a, b) {\n return ((a & 0xffff0000) * (b & 0xffff) + (a & 0xffff) * (b | 0)) | 0;\n}\n\n(function() {\n var buf = new ArrayBuffer(8);\n var bufFloat64 = new Float64Array(buf);\n var bufFloat32 = new Float32Array(buf);\n var bufInt32 = new Int32Array(buf);\n var lowIndex = 0;\n var highIndex = 1;\n\n bufFloat64[0] = -1; // bff00000_00000000\n if (bufInt32[lowIndex] !== 0) {\n lowIndex = 1;\n highIndex = 0;\n }\n\n Kotlin.doubleToBits = function(value) {\n return Kotlin.doubleToRawBits(isNaN(value) ? NaN : value);\n };\n\n Kotlin.doubleToRawBits = function(value) {\n bufFloat64[0] = value;\n return Kotlin.Long.fromBits(bufInt32[lowIndex], bufInt32[highIndex]);\n };\n\n Kotlin.doubleFromBits = function(value) {\n bufInt32[lowIndex] = value.low_;\n bufInt32[highIndex] = value.high_;\n return bufFloat64[0];\n };\n\n Kotlin.floatToBits = function(value) {\n return Kotlin.floatToRawBits(isNaN(value) ? NaN : value);\n };\n\n Kotlin.floatToRawBits = function(value) {\n bufFloat32[0] = value;\n return bufInt32[0];\n };\n\n Kotlin.floatFromBits = function(value) {\n bufInt32[0] = value;\n return bufFloat32[0];\n };\n\n // returns zero value for number with positive sign bit and non-zero value for number with negative sign bit.\n Kotlin.doubleSignBit = function(value) {\n bufFloat64[0] = value;\n return bufInt32[highIndex] & 0x80000000;\n };\n\n Kotlin.numberHashCode = function(obj) {\n if ((obj | 0) === obj) {\n return obj | 0;\n }\n else {\n bufFloat64[0] = obj;\n return (bufInt32[highIndex] * 31 | 0) + bufInt32[lowIndex] | 0;\n }\n }\n})();\n\nKotlin.ensureNotNull = function(x) {\n return x != null ? x : Kotlin.throwNPE();\n};\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nif (typeof String.prototype.startsWith === \"undefined\") {\n String.prototype.startsWith = function(searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n };\n}\nif (typeof String.prototype.endsWith === \"undefined\") {\n String.prototype.endsWith = function(searchString, position) {\n var subjectString = this.toString();\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n// ES6 Math polyfills\nif (typeof Math.sign === \"undefined\") {\n Math.sign = function(x) {\n x = +x; // convert to a number\n if (x === 0 || isNaN(x)) {\n return Number(x);\n }\n return x > 0 ? 1 : -1;\n };\n}\nif (typeof Math.trunc === \"undefined\") {\n Math.trunc = function(x) {\n if (isNaN(x)) {\n return NaN;\n }\n if (x > 0) {\n return Math.floor(x);\n }\n return Math.ceil(x);\n };\n}\n\n(function() {\n var epsilon = 2.220446049250313E-16;\n var taylor_2_bound = Math.sqrt(epsilon);\n var taylor_n_bound = Math.sqrt(taylor_2_bound);\n var upper_taylor_2_bound = 1/taylor_2_bound;\n var upper_taylor_n_bound = 1/taylor_n_bound;\n\n if (typeof Math.sinh === \"undefined\") {\n Math.sinh = function(x) {\n if (Math.abs(x) < taylor_n_bound) {\n var result = x;\n if (Math.abs(x) > taylor_2_bound) {\n result += (x * x * x) / 6;\n }\n return result;\n } else {\n var y = Math.exp(x);\n var y1 = 1 / y;\n if (!isFinite(y)) return Math.exp(x - Math.LN2);\n if (!isFinite(y1)) return -Math.exp(-x - Math.LN2);\n return (y - y1) / 2;\n }\n };\n }\n if (typeof Math.cosh === \"undefined\") {\n Math.cosh = function(x) {\n var y = Math.exp(x);\n var y1 = 1 / y;\n if (!isFinite(y) || !isFinite(y1)) return Math.exp(Math.abs(x) - Math.LN2);\n return (y + y1) / 2;\n };\n }\n\n if (typeof Math.tanh === \"undefined\") {\n Math.tanh = function(x){\n if (Math.abs(x) < taylor_n_bound) {\n var result = x;\n if (Math.abs(x) > taylor_2_bound) {\n result -= (x * x * x) / 3;\n }\n return result;\n }\n else {\n var a = Math.exp(+x), b = Math.exp(-x);\n return a === Infinity ? 1 : b === Infinity ? -1 : (a - b) / (a + b);\n }\n };\n }\n\n // Inverse hyperbolic function implementations derived from boost special math functions,\n // Copyright Eric Ford & Hubert Holin 2001.\n\n if (typeof Math.asinh === \"undefined\") {\n var asinh = function(x) {\n if (x >= +taylor_n_bound)\n {\n if (x > upper_taylor_n_bound)\n {\n if (x > upper_taylor_2_bound)\n {\n // approximation by laurent series in 1/x at 0+ order from -1 to 0\n return Math.log(x) + Math.LN2;\n }\n else\n {\n // approximation by laurent series in 1/x at 0+ order from -1 to 1\n return Math.log(x * 2 + (1 / (x * 2)));\n }\n }\n else\n {\n return Math.log(x + Math.sqrt(x * x + 1));\n }\n }\n else if (x <= -taylor_n_bound)\n {\n return -asinh(-x);\n }\n else\n {\n // approximation by taylor series in x at 0 up to order 2\n var result = x;\n if (Math.abs(x) >= taylor_2_bound)\n {\n var x3 = x * x * x;\n // approximation by taylor series in x at 0 up to order 4\n result -= x3 / 6;\n }\n return result;\n }\n };\n Math.asinh = asinh;\n }\n if (typeof Math.acosh === \"undefined\") {\n Math.acosh = function(x) {\n if (x < 1)\n {\n return NaN;\n }\n else if (x - 1 >= taylor_n_bound)\n {\n if (x > upper_taylor_2_bound)\n {\n // approximation by laurent series in 1/x at 0+ order from -1 to 0\n return Math.log(x) + Math.LN2;\n }\n else\n {\n return Math.log(x + Math.sqrt(x * x - 1));\n }\n }\n else\n {\n var y = Math.sqrt(x - 1);\n // approximation by taylor series in y at 0 up to order 2\n var result = y;\n if (y >= taylor_2_bound)\n {\n var y3 = y * y * y;\n // approximation by taylor series in y at 0 up to order 4\n result -= y3 / 12;\n }\n\n return Math.sqrt(2) * result;\n }\n };\n }\n if (typeof Math.atanh === \"undefined\") {\n Math.atanh = function(x) {\n if (Math.abs(x) < taylor_n_bound) {\n var result = x;\n if (Math.abs(x) > taylor_2_bound) {\n result += (x * x * x) / 3;\n }\n return result;\n }\n return Math.log((1 + x) / (1 - x)) / 2;\n };\n }\n if (typeof Math.log1p === \"undefined\") {\n Math.log1p = function(x) {\n if (Math.abs(x) < taylor_n_bound) {\n var x2 = x * x;\n var x3 = x2 * x;\n var x4 = x3 * x;\n // approximation by taylor series in x at 0 up to order 4\n return (-x4 / 4 + x3 / 3 - x2 / 2 + x);\n }\n return Math.log(x + 1);\n };\n }\n if (typeof Math.expm1 === \"undefined\") {\n Math.expm1 = function(x) {\n if (Math.abs(x) < taylor_n_bound) {\n var x2 = x * x;\n var x3 = x2 * x;\n var x4 = x3 * x;\n // approximation by taylor series in x at 0 up to order 4\n return (x4 / 24 + x3 / 6 + x2 / 2 + x);\n }\n return Math.exp(x) - 1;\n };\n }\n})();\nif (typeof Math.hypot === \"undefined\") {\n Math.hypot = function() {\n var y = 0;\n var length = arguments.length;\n\n for (var i = 0; i < length; i++) {\n if (arguments[i] === Infinity || arguments[i] === -Infinity) {\n return Infinity;\n }\n y += arguments[i] * arguments[i];\n }\n return Math.sqrt(y);\n };\n}\nif (typeof Math.log10 === \"undefined\") {\n Math.log10 = function(x) {\n return Math.log(x) * Math.LOG10E;\n };\n}\nif (typeof Math.log2 === \"undefined\") {\n Math.log2 = function(x) {\n return Math.log(x) * Math.LOG2E;\n };\n}\n\n// For HtmlUnit and PhantomJs\nif (typeof ArrayBuffer.isView === \"undefined\") {\n ArrayBuffer.isView = function(a) {\n return a != null && a.__proto__ != null && a.__proto__.__proto__ === Int8Array.prototype.__proto__;\n };\n}\n\n(function() {\n function normalizeOffset(offset, length) {\n if (offset < 0) return Math.max(0, offset + length);\n return Math.min(offset, length);\n }\n function typedArraySlice(begin, end) {\n if (typeof end === \"undefined\") {\n end = this.length;\n }\n begin = normalizeOffset(begin || 0, this.length);\n end = Math.max(begin, normalizeOffset(end, this.length));\n return new this.constructor(this.subarray(begin, end));\n }\n\n var arrays = [Int8Array, Int16Array, Uint16Array, Int32Array, Float32Array, Float64Array];\n for (var i = 0; i < arrays.length; ++i) {\n var TypedArray = arrays[i];\n if (typeof TypedArray.prototype.slice === \"undefined\") {\n Object.defineProperty(TypedArray.prototype, 'slice', {\n value: typedArraySlice\n });\n }\n }\n\n // Patch apply to work with TypedArrays if needed.\n try {\n (function() {}).apply(null, new Int32Array(0))\n } catch (e) {\n var apply = Function.prototype.apply;\n Object.defineProperty(Function.prototype, 'apply', {\n value: function(self, array) {\n return apply.call(this, self, [].slice.call(array));\n }\n });\n }\n\n\n // Patch map to work with TypedArrays if needed.\n for (var i = 0; i < arrays.length; ++i) {\n var TypedArray = arrays[i];\n if (typeof TypedArray.prototype.map === \"undefined\") {\n Object.defineProperty(TypedArray.prototype, 'map', {\n value: function(callback, self) {\n return [].slice.call(this).map(callback, self);\n }\n });\n }\n }\n\n // Patch sort to work with TypedArrays if needed.\n // TODO: consider to remove following function and replace it with `Kotlin.doubleCompareTo` (see misc.js)\n var totalOrderComparator = function (a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n\n if (a === b) {\n if (a !== 0) return 0;\n\n var ia = 1 / a;\n return ia === 1 / b ? 0 : (ia < 0 ? -1 : 1);\n }\n\n return a !== a ? (b !== b ? 0 : 1) : -1\n };\n\n for (var i = 0; i < arrays.length; ++i) {\n var TypedArray = arrays[i];\n if (typeof TypedArray.prototype.sort === \"undefined\") {\n Object.defineProperty(TypedArray.prototype, 'sort', {\n value: function(compareFunction) {\n return Array.prototype.sort.call(this, compareFunction || totalOrderComparator);\n }\n });\n }\n }\n})();\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. \n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\nKotlin.Kind = {\n CLASS: \"class\",\n INTERFACE: \"interface\",\n OBJECT: \"object\"\n};\n\nKotlin.callGetter = function (thisObject, klass, propertyName) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(klass, propertyName);\n if (propertyDescriptor != null && propertyDescriptor.get != null) {\n return propertyDescriptor.get.call(thisObject);\n }\n\n propertyDescriptor = Object.getOwnPropertyDescriptor(thisObject, propertyName);\n if (propertyDescriptor != null && \"value\" in propertyDescriptor) {\n return thisObject[propertyName];\n }\n\n return Kotlin.callGetter(thisObject, Object.getPrototypeOf(klass), propertyName);\n};\n\nKotlin.callSetter = function (thisObject, klass, propertyName, value) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(klass, propertyName);\n if (propertyDescriptor != null && propertyDescriptor.set != null) {\n propertyDescriptor.set.call(thisObject, value);\n return;\n }\n\n propertyDescriptor = Object.getOwnPropertyDescriptor(thisObject, propertyName);\n if (propertyDescriptor != null && \"value\" in propertyDescriptor) {\n thisObject[propertyName] = value;\n return\n }\n\n Kotlin.callSetter(thisObject, Object.getPrototypeOf(klass), propertyName, value);\n};\n\nfunction isInheritanceFromInterface(ctor, iface) {\n if (ctor === iface) return true;\n\n var metadata = ctor.$metadata$;\n if (metadata != null) {\n var interfaces = metadata.interfaces;\n for (var i = 0; i < interfaces.length; i++) {\n if (isInheritanceFromInterface(interfaces[i], iface)) {\n return true;\n }\n }\n }\n\n var superPrototype = ctor.prototype != null ? Object.getPrototypeOf(ctor.prototype) : null;\n var superConstructor = superPrototype != null ? superPrototype.constructor : null;\n return superConstructor != null && isInheritanceFromInterface(superConstructor, iface);\n}\n\n/**\n *\n * @param {*} object\n * @param {Function|Object} klass\n * @returns {Boolean}\n */\nKotlin.isType = function (object, klass) {\n if (klass === Object) {\n switch (typeof object) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n case \"function\":\n return true;\n default:\n return object instanceof Object;\n }\n }\n\n if (object == null || klass == null || (typeof object !== 'object' && typeof object !== 'function')) {\n return false;\n }\n\n if (typeof klass === \"function\" && object instanceof klass) {\n return true;\n }\n\n var proto = Object.getPrototypeOf(klass);\n var constructor = proto != null ? proto.constructor : null;\n if (constructor != null && \"$metadata$\" in constructor) {\n var metadata = constructor.$metadata$;\n if (metadata.kind === Kotlin.Kind.OBJECT) {\n return object === klass;\n }\n }\n\n var klassMetadata = klass.$metadata$;\n\n // In WebKit (JavaScriptCore) for some interfaces from DOM typeof returns \"object\", nevertheless they can be used in RHS of instanceof\n if (klassMetadata == null) {\n return object instanceof klass;\n }\n\n if (klassMetadata.kind === Kotlin.Kind.INTERFACE && object.constructor != null) {\n return isInheritanceFromInterface(object.constructor, klass);\n }\n\n return false;\n};\n\nKotlin.isNumber = function (a) {\n return typeof a == \"number\" || a instanceof Kotlin.Long;\n};\n\nKotlin.isChar = function (value) {\n return value instanceof Kotlin.BoxedChar\n};\n\nKotlin.isComparable = function (value) {\n var type = typeof value;\n\n return type === \"string\" ||\n type === \"boolean\" ||\n Kotlin.isNumber(value) ||\n Kotlin.isType(value, Kotlin.kotlin.Comparable);\n};\n\nKotlin.isCharSequence = function (value) {\n return typeof value === \"string\" || Kotlin.isType(value, Kotlin.kotlin.CharSequence);\n};",null,"/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\npublic class Enum> : Comparable> {\n @JsName(\"name$\") private var _name: String = \"\"\n @JsName(\"ordinal$\") private var _ordinal: Int = 0\n\n val name: String\n get() = _name\n\n val ordinal: Int\n get() = _ordinal\n\n override fun compareTo(other: Enum) = ordinal.compareTo(other.ordinal)\n\n override fun equals(other: Any?) = this === other\n\n override fun hashCode(): Int = js(\"Kotlin.identityHashCode\")(this)\n\n override fun toString() = name\n\n companion object\n}",null,"/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"ArraysKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component1(): Byte {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component1(): Short {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component1(): Int {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component1(): Long {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component1(): Float {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component1(): Double {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component1(): Boolean {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component1(): Char {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component2(): Byte {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component2(): Short {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component2(): Int {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component2(): Long {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component2(): Float {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component2(): Double {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component2(): Boolean {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component2(): Char {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component3(): Byte {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component3(): Short {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component3(): Int {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component3(): Long {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component3(): Float {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component3(): Double {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component3(): Boolean {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component3(): Char {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component4(): Byte {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component4(): Short {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component4(): Int {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component4(): Long {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component4(): Float {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component4(): Double {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component4(): Boolean {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component4(): Char {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component5(): T {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component5(): Byte {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component5(): Short {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component5(): Int {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component5(): Long {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component5(): Float {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component5(): Double {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component5(): Boolean {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component5(): Char {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Array.contains(element: T): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun ByteArray.contains(element: Byte): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun ShortArray.contains(element: Short): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun IntArray.contains(element: Int): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun LongArray.contains(element: Long): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun FloatArray.contains(element: Float): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun DoubleArray.contains(element: Double): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun BooleanArray.contains(element: Boolean): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun CharArray.contains(element: Char): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun Array.elementAt(index: Int): T\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun ByteArray.elementAt(index: Int): Byte\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun ShortArray.elementAt(index: Int): Short\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun IntArray.elementAt(index: Int): Int\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun LongArray.elementAt(index: Int): Long\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun FloatArray.elementAt(index: Int): Float\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun DoubleArray.elementAt(index: Int): Double\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun BooleanArray.elementAt(index: Int): Boolean\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun CharArray.elementAt(index: Int): Char\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Byte): Byte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Short): Short {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Int): Int {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Long): Long {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Float): Float {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Double): Double {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.elementAtOrNull(index: Int): Byte? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.elementAtOrNull(index: Int): Short? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.elementAtOrNull(index: Int): Int? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.elementAtOrNull(index: Int): Long? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.elementAtOrNull(index: Int): Float? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.elementAtOrNull(index: Int): Double? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.elementAtOrNull(index: Int): Boolean? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.elementAtOrNull(index: Int): Char? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.find(predicate: (Byte) -> Boolean): Byte? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.find(predicate: (Short) -> Boolean): Short? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.find(predicate: (Int) -> Boolean): Int? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.find(predicate: (Long) -> Boolean): Long? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.find(predicate: (Float) -> Boolean): Float? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.find(predicate: (Double) -> Boolean): Double? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.find(predicate: (Boolean) -> Boolean): Boolean? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.find(predicate: (Char) -> Boolean): Char? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.findLast(predicate: (Byte) -> Boolean): Byte? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.findLast(predicate: (Short) -> Boolean): Short? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.findLast(predicate: (Int) -> Boolean): Int? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.findLast(predicate: (Long) -> Boolean): Long? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.findLast(predicate: (Float) -> Boolean): Float? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.findLast(predicate: (Double) -> Boolean): Double? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.findLast(predicate: (Boolean) -> Boolean): Boolean? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun Array.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ByteArray.first(): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ShortArray.first(): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun IntArray.first(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun LongArray.first(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun FloatArray.first(): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun DoubleArray.first(): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun BooleanArray.first(): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun CharArray.first(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Array.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ByteArray.first(predicate: (Byte) -> Boolean): Byte {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ShortArray.first(predicate: (Short) -> Boolean): Short {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun IntArray.first(predicate: (Int) -> Boolean): Int {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun LongArray.first(predicate: (Long) -> Boolean): Long {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun FloatArray.first(predicate: (Float) -> Boolean): Float {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun DoubleArray.first(predicate: (Double) -> Boolean): Double {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun BooleanArray.first(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun CharArray.first(predicate: (Char) -> Boolean): Char {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun Array.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun ByteArray.firstOrNull(): Byte? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun ShortArray.firstOrNull(): Short? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun IntArray.firstOrNull(): Int? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun LongArray.firstOrNull(): Long? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun FloatArray.firstOrNull(): Float? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun DoubleArray.firstOrNull(): Double? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun BooleanArray.firstOrNull(): Boolean? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun CharArray.firstOrNull(): Char? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Array.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun ByteArray.firstOrNull(predicate: (Byte) -> Boolean): Byte? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun ShortArray.firstOrNull(predicate: (Short) -> Boolean): Short? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun IntArray.firstOrNull(predicate: (Int) -> Boolean): Int? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun LongArray.firstOrNull(predicate: (Long) -> Boolean): Long? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun FloatArray.firstOrNull(predicate: (Float) -> Boolean): Float? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun DoubleArray.firstOrNull(predicate: (Double) -> Boolean): Double? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun BooleanArray.firstOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun CharArray.firstOrNull(predicate: (Char) -> Boolean): Char? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.getOrElse(index: Int, defaultValue: (Int) -> Byte): Byte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.getOrElse(index: Int, defaultValue: (Int) -> Short): Short {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.getOrElse(index: Int, defaultValue: (Int) -> Int): Int {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.getOrElse(index: Int, defaultValue: (Int) -> Long): Long {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.getOrElse(index: Int, defaultValue: (Int) -> Float): Float {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.getOrElse(index: Int, defaultValue: (Int) -> Double): Double {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.getOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.getOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun Array.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun ByteArray.getOrNull(index: Int): Byte? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun ShortArray.getOrNull(index: Int): Short? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun IntArray.getOrNull(index: Int): Int? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun LongArray.getOrNull(index: Int): Long? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun FloatArray.getOrNull(index: Int): Float? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun DoubleArray.getOrNull(index: Int): Double? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun BooleanArray.getOrNull(index: Int): Boolean? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun CharArray.getOrNull(index: Int): Char? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Array.indexOf(element: T): Int {\n if (element == null) {\n for (index in indices) {\n if (this[index] == null) {\n return index\n }\n }\n } else {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun ByteArray.indexOf(element: Byte): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun ShortArray.indexOf(element: Short): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun IntArray.indexOf(element: Int): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun LongArray.indexOf(element: Long): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun FloatArray.indexOf(element: Float): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun DoubleArray.indexOf(element: Double): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun BooleanArray.indexOf(element: Boolean): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun CharArray.indexOf(element: Char): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun Array.indexOfFirst(predicate: (T) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ByteArray.indexOfFirst(predicate: (Byte) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ShortArray.indexOfFirst(predicate: (Short) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun IntArray.indexOfFirst(predicate: (Int) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun LongArray.indexOfFirst(predicate: (Long) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun FloatArray.indexOfFirst(predicate: (Float) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun DoubleArray.indexOfFirst(predicate: (Double) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun BooleanArray.indexOfFirst(predicate: (Boolean) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun CharArray.indexOfFirst(predicate: (Char) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun Array.indexOfLast(predicate: (T) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ByteArray.indexOfLast(predicate: (Byte) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ShortArray.indexOfLast(predicate: (Short) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun IntArray.indexOfLast(predicate: (Int) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun LongArray.indexOfLast(predicate: (Long) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun FloatArray.indexOfLast(predicate: (Float) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun DoubleArray.indexOfLast(predicate: (Double) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun BooleanArray.indexOfLast(predicate: (Boolean) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun CharArray.indexOfLast(predicate: (Char) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun Array.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ByteArray.last(): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ShortArray.last(): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun IntArray.last(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun LongArray.last(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun FloatArray.last(): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun DoubleArray.last(): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun BooleanArray.last(): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun CharArray.last(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Array.last(predicate: (T) -> Boolean): T {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ByteArray.last(predicate: (Byte) -> Boolean): Byte {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ShortArray.last(predicate: (Short) -> Boolean): Short {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun IntArray.last(predicate: (Int) -> Boolean): Int {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun LongArray.last(predicate: (Long) -> Boolean): Long {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun FloatArray.last(predicate: (Float) -> Boolean): Float {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun DoubleArray.last(predicate: (Double) -> Boolean): Double {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun BooleanArray.last(predicate: (Boolean) -> Boolean): Boolean {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun CharArray.last(predicate: (Char) -> Boolean): Char {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Array.lastIndexOf(element: T): Int {\n if (element == null) {\n for (index in indices.reversed()) {\n if (this[index] == null) {\n return index\n }\n }\n } else {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun ByteArray.lastIndexOf(element: Byte): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun ShortArray.lastIndexOf(element: Short): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun IntArray.lastIndexOf(element: Int): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun LongArray.lastIndexOf(element: Long): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun FloatArray.lastIndexOf(element: Float): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun DoubleArray.lastIndexOf(element: Double): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun BooleanArray.lastIndexOf(element: Boolean): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun CharArray.lastIndexOf(element: Char): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun Array.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun ByteArray.lastOrNull(): Byte? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun ShortArray.lastOrNull(): Short? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun IntArray.lastOrNull(): Int? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun LongArray.lastOrNull(): Long? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun FloatArray.lastOrNull(): Float? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun DoubleArray.lastOrNull(): Double? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun BooleanArray.lastOrNull(): Boolean? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun CharArray.lastOrNull(): Char? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun Array.lastOrNull(predicate: (T) -> Boolean): T? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun ByteArray.lastOrNull(predicate: (Byte) -> Boolean): Byte? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun ShortArray.lastOrNull(predicate: (Short) -> Boolean): Short? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun IntArray.lastOrNull(predicate: (Int) -> Boolean): Int? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun LongArray.lastOrNull(predicate: (Long) -> Boolean): Long? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun FloatArray.lastOrNull(predicate: (Float) -> Boolean): Float? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun DoubleArray.lastOrNull(predicate: (Double) -> Boolean): Double? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun BooleanArray.lastOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun CharArray.lastOrNull(predicate: (Char) -> Boolean): Char? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.random(): Byte {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.random(): Short {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.random(): Int {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.random(): Long {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.random(): Float {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.random(): Double {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.random(): Boolean {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.random(): Char {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Array.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun ByteArray.random(random: Random): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun ShortArray.random(random: Random): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun IntArray.random(random: Random): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun LongArray.random(random: Random): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun FloatArray.random(random: Random): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun DoubleArray.random(random: Random): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun BooleanArray.random(random: Random): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun CharArray.random(random: Random): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun Array.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun ByteArray.single(): Byte {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun ShortArray.single(): Short {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun IntArray.single(): Int {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun LongArray.single(): Long {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun FloatArray.single(): Float {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun DoubleArray.single(): Double {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun BooleanArray.single(): Boolean {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun CharArray.single(): Char {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Array.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun ByteArray.single(predicate: (Byte) -> Boolean): Byte {\n var single: Byte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Byte\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun ShortArray.single(predicate: (Short) -> Boolean): Short {\n var single: Short? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Short\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun IntArray.single(predicate: (Int) -> Boolean): Int {\n var single: Int? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Int\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun LongArray.single(predicate: (Long) -> Boolean): Long {\n var single: Long? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Long\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun FloatArray.single(predicate: (Float) -> Boolean): Float {\n var single: Float? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Float\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun DoubleArray.single(predicate: (Double) -> Boolean): Double {\n var single: Double? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Double\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun BooleanArray.single(predicate: (Boolean) -> Boolean): Boolean {\n var single: Boolean? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Boolean\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun CharArray.single(predicate: (Char) -> Boolean): Char {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Char\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun Array.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun ByteArray.singleOrNull(): Byte? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun ShortArray.singleOrNull(): Short? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun IntArray.singleOrNull(): Int? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun LongArray.singleOrNull(): Long? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun FloatArray.singleOrNull(): Float? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun DoubleArray.singleOrNull(): Double? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun BooleanArray.singleOrNull(): Boolean? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun CharArray.singleOrNull(): Char? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Array.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun ByteArray.singleOrNull(predicate: (Byte) -> Boolean): Byte? {\n var single: Byte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun ShortArray.singleOrNull(predicate: (Short) -> Boolean): Short? {\n var single: Short? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun IntArray.singleOrNull(predicate: (Int) -> Boolean): Int? {\n var single: Int? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun LongArray.singleOrNull(predicate: (Long) -> Boolean): Long? {\n var single: Long? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun FloatArray.singleOrNull(predicate: (Float) -> Boolean): Float? {\n var single: Float? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun DoubleArray.singleOrNull(predicate: (Double) -> Boolean): Double? {\n var single: Double? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun BooleanArray.singleOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n var single: Boolean? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun CharArray.singleOrNull(predicate: (Char) -> Boolean): Char? {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Array.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ByteArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ShortArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun IntArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun LongArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun FloatArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun DoubleArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun BooleanArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun CharArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Array.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ByteArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ShortArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun IntArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun LongArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun FloatArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun DoubleArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun BooleanArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun CharArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Array.dropLastWhile(predicate: (T) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ByteArray.dropLastWhile(predicate: (Byte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ShortArray.dropLastWhile(predicate: (Short) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun IntArray.dropLastWhile(predicate: (Int) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun LongArray.dropLastWhile(predicate: (Long) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun FloatArray.dropLastWhile(predicate: (Float) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun DoubleArray.dropLastWhile(predicate: (Double) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun BooleanArray.dropLastWhile(predicate: (Boolean) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun CharArray.dropLastWhile(predicate: (Char) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Array.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ByteArray.dropWhile(predicate: (Byte) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ShortArray.dropWhile(predicate: (Short) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun IntArray.dropWhile(predicate: (Int) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun LongArray.dropWhile(predicate: (Long) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun FloatArray.dropWhile(predicate: (Float) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun DoubleArray.dropWhile(predicate: (Double) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun BooleanArray.dropWhile(predicate: (Boolean) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun CharArray.dropWhile(predicate: (Char) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun Array.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun ByteArray.filter(predicate: (Byte) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun ShortArray.filter(predicate: (Short) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun IntArray.filter(predicate: (Int) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun LongArray.filter(predicate: (Long) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun FloatArray.filter(predicate: (Float) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun DoubleArray.filter(predicate: (Double) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun BooleanArray.filter(predicate: (Boolean) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun CharArray.filter(predicate: (Char) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun Array.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun ByteArray.filterIndexed(predicate: (index: Int, Byte) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun ShortArray.filterIndexed(predicate: (index: Int, Short) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun IntArray.filterIndexed(predicate: (index: Int, Int) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun LongArray.filterIndexed(predicate: (index: Int, Long) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun FloatArray.filterIndexed(predicate: (index: Int, Float) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun DoubleArray.filterIndexed(predicate: (index: Int, Double) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun BooleanArray.filterIndexed(predicate: (index: Int, Boolean) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun CharArray.filterIndexed(predicate: (index: Int, Char) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > Array.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > ByteArray.filterIndexedTo(destination: C, predicate: (index: Int, Byte) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > ShortArray.filterIndexedTo(destination: C, predicate: (index: Int, Short) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > IntArray.filterIndexedTo(destination: C, predicate: (index: Int, Int) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > LongArray.filterIndexedTo(destination: C, predicate: (index: Int, Long) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > FloatArray.filterIndexedTo(destination: C, predicate: (index: Int, Float) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > DoubleArray.filterIndexedTo(destination: C, predicate: (index: Int, Double) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > BooleanArray.filterIndexedTo(destination: C, predicate: (index: Int, Boolean) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > CharArray.filterIndexedTo(destination: C, predicate: (index: Int, Char) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n */\npublic inline fun Array<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n */\npublic inline fun > Array<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun Array.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun ByteArray.filterNot(predicate: (Byte) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun ShortArray.filterNot(predicate: (Short) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun IntArray.filterNot(predicate: (Int) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun LongArray.filterNot(predicate: (Long) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun FloatArray.filterNot(predicate: (Float) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun DoubleArray.filterNot(predicate: (Double) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun BooleanArray.filterNot(predicate: (Boolean) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun CharArray.filterNot(predicate: (Char) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n */\npublic fun Array.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n */\npublic fun , T : Any> Array.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > Array.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > ByteArray.filterNotTo(destination: C, predicate: (Byte) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > ShortArray.filterNotTo(destination: C, predicate: (Short) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > IntArray.filterNotTo(destination: C, predicate: (Int) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > LongArray.filterNotTo(destination: C, predicate: (Long) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > FloatArray.filterNotTo(destination: C, predicate: (Float) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > DoubleArray.filterNotTo(destination: C, predicate: (Double) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > BooleanArray.filterNotTo(destination: C, predicate: (Boolean) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > CharArray.filterNotTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > Array.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > ByteArray.filterTo(destination: C, predicate: (Byte) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > ShortArray.filterTo(destination: C, predicate: (Short) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > IntArray.filterTo(destination: C, predicate: (Int) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > LongArray.filterTo(destination: C, predicate: (Long) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > FloatArray.filterTo(destination: C, predicate: (Float) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > DoubleArray.filterTo(destination: C, predicate: (Double) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > BooleanArray.filterTo(destination: C, predicate: (Boolean) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > CharArray.filterTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun Array.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun ByteArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun ShortArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun IntArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun LongArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun FloatArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun DoubleArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun BooleanArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun CharArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun Array.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun ByteArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun ShortArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun IntArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun LongArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun FloatArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun DoubleArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun BooleanArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun CharArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun Array.sliceArray(indices: Collection): Array {\n val result = arrayOfNulls(this, indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun ByteArray.sliceArray(indices: Collection): ByteArray {\n val result = ByteArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun ShortArray.sliceArray(indices: Collection): ShortArray {\n val result = ShortArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun IntArray.sliceArray(indices: Collection): IntArray {\n val result = IntArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun LongArray.sliceArray(indices: Collection): LongArray {\n val result = LongArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun FloatArray.sliceArray(indices: Collection): FloatArray {\n val result = FloatArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun DoubleArray.sliceArray(indices: Collection): DoubleArray {\n val result = DoubleArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun BooleanArray.sliceArray(indices: Collection): BooleanArray {\n val result = BooleanArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun CharArray.sliceArray(indices: Collection): CharArray {\n val result = CharArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun Array.sliceArray(indices: IntRange): Array {\n if (indices.isEmpty()) return copyOfRange(0, 0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun ByteArray.sliceArray(indices: IntRange): ByteArray {\n if (indices.isEmpty()) return ByteArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun ShortArray.sliceArray(indices: IntRange): ShortArray {\n if (indices.isEmpty()) return ShortArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun IntArray.sliceArray(indices: IntRange): IntArray {\n if (indices.isEmpty()) return IntArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun LongArray.sliceArray(indices: IntRange): LongArray {\n if (indices.isEmpty()) return LongArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun FloatArray.sliceArray(indices: IntRange): FloatArray {\n if (indices.isEmpty()) return FloatArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun DoubleArray.sliceArray(indices: IntRange): DoubleArray {\n if (indices.isEmpty()) return DoubleArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun BooleanArray.sliceArray(indices: IntRange): BooleanArray {\n if (indices.isEmpty()) return BooleanArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun CharArray.sliceArray(indices: IntRange): CharArray {\n if (indices.isEmpty()) return CharArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Array.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ByteArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ShortArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun IntArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun LongArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun FloatArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun DoubleArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun BooleanArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun CharArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Array.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ByteArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ShortArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun IntArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun LongArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun FloatArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun DoubleArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun BooleanArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun CharArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Array.takeLastWhile(predicate: (T) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ByteArray.takeLastWhile(predicate: (Byte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ShortArray.takeLastWhile(predicate: (Short) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun IntArray.takeLastWhile(predicate: (Int) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun LongArray.takeLastWhile(predicate: (Long) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun FloatArray.takeLastWhile(predicate: (Float) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun DoubleArray.takeLastWhile(predicate: (Double) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun BooleanArray.takeLastWhile(predicate: (Boolean) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun CharArray.takeLastWhile(predicate: (Char) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Array.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ByteArray.takeWhile(predicate: (Byte) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ShortArray.takeWhile(predicate: (Short) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun IntArray.takeWhile(predicate: (Int) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun LongArray.takeWhile(predicate: (Long) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun FloatArray.takeWhile(predicate: (Float) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun DoubleArray.takeWhile(predicate: (Double) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun BooleanArray.takeWhile(predicate: (Boolean) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun CharArray.takeWhile(predicate: (Char) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun Array.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun ByteArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun ShortArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun IntArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun LongArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun FloatArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun DoubleArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun BooleanArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun CharArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Array.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun ByteArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun ShortArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun IntArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun LongArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun FloatArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun DoubleArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun BooleanArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun CharArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun Array.reversedArray(): Array {\n if (isEmpty()) return this\n val result = arrayOfNulls(this, size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun ByteArray.reversedArray(): ByteArray {\n if (isEmpty()) return this\n val result = ByteArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun ShortArray.reversedArray(): ShortArray {\n if (isEmpty()) return this\n val result = ShortArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun IntArray.reversedArray(): IntArray {\n if (isEmpty()) return this\n val result = IntArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun LongArray.reversedArray(): LongArray {\n if (isEmpty()) return this\n val result = LongArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun FloatArray.reversedArray(): FloatArray {\n if (isEmpty()) return this\n val result = FloatArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun DoubleArray.reversedArray(): DoubleArray {\n if (isEmpty()) return this\n val result = DoubleArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun BooleanArray.reversedArray(): BooleanArray {\n if (isEmpty()) return this\n val result = BooleanArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun CharArray.reversedArray(): CharArray {\n if (isEmpty()) return this\n val result = CharArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Sorts elements in the array in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the array in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun ByteArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun ShortArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun IntArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun LongArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun FloatArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun DoubleArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun CharArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sorted(): List {\n return sortedArray().asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun ByteArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun ShortArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun IntArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun LongArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun FloatArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun DoubleArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun CharArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedArray(): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun ByteArray.sortedArray(): ByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun ShortArray.sortedArray(): ShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun IntArray.sortedArray(): IntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun LongArray.sortedArray(): LongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun FloatArray.sortedArray(): FloatArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun DoubleArray.sortedArray(): DoubleArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun CharArray.sortedArray(): CharArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedArrayDescending(): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sortWith(reverseOrder()) }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun ByteArray.sortedArrayDescending(): ByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun ShortArray.sortedArrayDescending(): ShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun IntArray.sortedArrayDescending(): IntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun LongArray.sortedArrayDescending(): LongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun FloatArray.sortedArrayDescending(): FloatArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun DoubleArray.sortedArrayDescending(): DoubleArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun CharArray.sortedArrayDescending(): CharArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sortedArrayWith(comparator: Comparator): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sortWith(comparator) }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ByteArray.sortedBy(crossinline selector: (Byte) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ShortArray.sortedBy(crossinline selector: (Short) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > IntArray.sortedBy(crossinline selector: (Int) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > LongArray.sortedBy(crossinline selector: (Long) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > FloatArray.sortedBy(crossinline selector: (Float) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > DoubleArray.sortedBy(crossinline selector: (Double) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > BooleanArray.sortedBy(crossinline selector: (Boolean) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > CharArray.sortedBy(crossinline selector: (Char) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ByteArray.sortedByDescending(crossinline selector: (Byte) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ShortArray.sortedByDescending(crossinline selector: (Short) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > IntArray.sortedByDescending(crossinline selector: (Int) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > LongArray.sortedByDescending(crossinline selector: (Long) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > FloatArray.sortedByDescending(crossinline selector: (Float) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > DoubleArray.sortedByDescending(crossinline selector: (Double) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > BooleanArray.sortedByDescending(crossinline selector: (Boolean) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > CharArray.sortedByDescending(crossinline selector: (Char) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun ByteArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun ShortArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun IntArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun LongArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun FloatArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun DoubleArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun CharArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sortedWith(comparator: Comparator): List {\n return sortedArrayWith(comparator).asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun ByteArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun ShortArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun IntArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun LongArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun FloatArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun DoubleArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun BooleanArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun CharArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun Array.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun ByteArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun ShortArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun IntArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun LongArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun FloatArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun DoubleArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun BooleanArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun CharArray.asList(): List\n\n/**\n * Returns `true` if the two specified arrays are *deeply* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * If two corresponding elements are nested arrays, they are also compared deeply.\n * If any of arrays contains itself on any nesting level the behavior is undefined.\n * \n * The elements of other types are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun Array.contentDeepEquals(other: Array): Boolean\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level the behavior is undefined.\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentDeepHashCode(): Int\n\n/**\n * Returns a string representation of the contents of this array as if it is a [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level that reference\n * is rendered as `\"[...]\"` to prevent recursion.\n * \n * @sample samples.collections.Arrays.ContentOperations.contentDeepToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentDeepToString(): String\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun Array.contentEquals(other: Array): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun ByteArray.contentEquals(other: ByteArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun ShortArray.contentEquals(other: ShortArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun IntArray.contentEquals(other: IntArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun LongArray.contentEquals(other: LongArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun FloatArray.contentEquals(other: FloatArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun DoubleArray.contentEquals(other: DoubleArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun BooleanArray.contentEquals(other: BooleanArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun CharArray.contentEquals(other: CharArray): Boolean\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ByteArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ShortArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun IntArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun LongArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun FloatArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun DoubleArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun BooleanArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun CharArray.contentHashCode(): Int\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ByteArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ShortArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun IntArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun LongArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun FloatArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun DoubleArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun BooleanArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun CharArray.contentToString(): String\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun Array.copyInto(destination: Array, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): Array\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ByteArray.copyInto(destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ByteArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ShortArray.copyInto(destination: ShortArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ShortArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun IntArray.copyInto(destination: IntArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): IntArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun LongArray.copyInto(destination: LongArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): LongArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun FloatArray.copyInto(destination: FloatArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): FloatArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun DoubleArray.copyInto(destination: DoubleArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): DoubleArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun BooleanArray.copyInto(destination: BooleanArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): BooleanArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun CharArray.copyInto(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): CharArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOf(): Array\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun ByteArray.copyOf(): ByteArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun ShortArray.copyOf(): ShortArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun IntArray.copyOf(): IntArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun LongArray.copyOf(): LongArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun FloatArray.copyOf(): FloatArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun DoubleArray.copyOf(): DoubleArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun BooleanArray.copyOf(): BooleanArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun CharArray.copyOf(): CharArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun ByteArray.copyOf(newSize: Int): ByteArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun ShortArray.copyOf(newSize: Int): ShortArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun IntArray.copyOf(newSize: Int): IntArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun LongArray.copyOf(newSize: Int): LongArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun FloatArray.copyOf(newSize: Int): FloatArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun DoubleArray.copyOf(newSize: Int): DoubleArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `false` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `false` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun BooleanArray.copyOf(newSize: Int): BooleanArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with null char (`\\u0000`) values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with null char (`\\u0000`) values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun CharArray.copyOf(newSize: Int): CharArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `null` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `null` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizingCopyOf\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOf(newSize: Int): Array\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val Array.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val ByteArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val ShortArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val IntArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val LongArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val FloatArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val DoubleArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val BooleanArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val CharArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns the last valid index for the array.\n */\npublic val Array.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val ByteArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val ShortArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val IntArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val LongArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val FloatArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val DoubleArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val BooleanArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val CharArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(element: T): Array\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun ByteArray.plus(element: Byte): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun ShortArray.plus(element: Short): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun IntArray.plus(element: Int): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun LongArray.plus(element: Long): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun FloatArray.plus(element: Float): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun DoubleArray.plus(element: Double): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun BooleanArray.plus(element: Boolean): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun CharArray.plus(element: Char): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(elements: Collection): Array\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun ByteArray.plus(elements: Collection): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun ShortArray.plus(elements: Collection): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun IntArray.plus(elements: Collection): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun LongArray.plus(elements: Collection): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun FloatArray.plus(elements: Collection): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun DoubleArray.plus(elements: Collection): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun BooleanArray.plus(elements: Collection): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun CharArray.plus(elements: Collection): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(elements: Array): Array\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun ByteArray.plus(elements: ByteArray): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun ShortArray.plus(elements: ShortArray): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun IntArray.plus(elements: IntArray): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun LongArray.plus(elements: LongArray): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun FloatArray.plus(elements: FloatArray): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun DoubleArray.plus(elements: DoubleArray): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun CharArray.plus(elements: CharArray): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.plusElement(element: T): Array\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun IntArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun LongArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun ByteArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun ShortArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun DoubleArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun FloatArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n */\npublic expect fun CharArray.sort(): Unit\n\n/**\n * Sorts the array in-place according to the natural order of its elements.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic expect fun > Array.sort(): Unit\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic expect fun Array.sortWith(comparator: Comparator): Unit\n\n/**\n * Returns an array of Boolean containing all of the elements of this generic array.\n */\npublic fun Array.toBooleanArray(): BooleanArray {\n return BooleanArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this generic array.\n */\npublic fun Array.toByteArray(): ByteArray {\n return ByteArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Char containing all of the elements of this generic array.\n */\npublic fun Array.toCharArray(): CharArray {\n return CharArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Double containing all of the elements of this generic array.\n */\npublic fun Array.toDoubleArray(): DoubleArray {\n return DoubleArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Float containing all of the elements of this generic array.\n */\npublic fun Array.toFloatArray(): FloatArray {\n return FloatArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Int containing all of the elements of this generic array.\n */\npublic fun Array.toIntArray(): IntArray {\n return IntArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Long containing all of the elements of this generic array.\n */\npublic fun Array.toLongArray(): LongArray {\n return LongArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Short containing all of the elements of this generic array.\n */\npublic fun Array.toShortArray(): ShortArray {\n return ShortArray(size) { index -> this[index] }\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun ByteArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun ShortArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun IntArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun LongArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun FloatArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun DoubleArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun BooleanArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun CharArray.toTypedArray(): Array\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun Array.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ByteArray.associate(transform: (Byte) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ShortArray.associate(transform: (Short) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun IntArray.associate(transform: (Int) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun LongArray.associate(transform: (Long) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun FloatArray.associate(transform: (Float) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun DoubleArray.associate(transform: (Double) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun BooleanArray.associate(transform: (Boolean) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun CharArray.associate(transform: (Char) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun Array.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ByteArray.associateBy(keySelector: (Byte) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ShortArray.associateBy(keySelector: (Short) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun IntArray.associateBy(keySelector: (Int) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun LongArray.associateBy(keySelector: (Long) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun FloatArray.associateBy(keySelector: (Float) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun DoubleArray.associateBy(keySelector: (Double) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun BooleanArray.associateBy(keySelector: (Boolean) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun CharArray.associateBy(keySelector: (Char) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun Array.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ByteArray.associateBy(keySelector: (Byte) -> K, valueTransform: (Byte) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ShortArray.associateBy(keySelector: (Short) -> K, valueTransform: (Short) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun IntArray.associateBy(keySelector: (Int) -> K, valueTransform: (Int) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun LongArray.associateBy(keySelector: (Long) -> K, valueTransform: (Long) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun FloatArray.associateBy(keySelector: (Float) -> K, valueTransform: (Float) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun DoubleArray.associateBy(keySelector: (Double) -> K, valueTransform: (Double) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun BooleanArray.associateBy(keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun CharArray.associateBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Array.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ByteArray.associateByTo(destination: M, keySelector: (Byte) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ShortArray.associateByTo(destination: M, keySelector: (Short) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > IntArray.associateByTo(destination: M, keySelector: (Int) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > LongArray.associateByTo(destination: M, keySelector: (Long) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > FloatArray.associateByTo(destination: M, keySelector: (Float) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > DoubleArray.associateByTo(destination: M, keySelector: (Double) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > BooleanArray.associateByTo(destination: M, keySelector: (Boolean) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > CharArray.associateByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Array.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ByteArray.associateByTo(destination: M, keySelector: (Byte) -> K, valueTransform: (Byte) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ShortArray.associateByTo(destination: M, keySelector: (Short) -> K, valueTransform: (Short) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > IntArray.associateByTo(destination: M, keySelector: (Int) -> K, valueTransform: (Int) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > LongArray.associateByTo(destination: M, keySelector: (Long) -> K, valueTransform: (Long) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > FloatArray.associateByTo(destination: M, keySelector: (Float) -> K, valueTransform: (Float) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > DoubleArray.associateByTo(destination: M, keySelector: (Double) -> K, valueTransform: (Double) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > BooleanArray.associateByTo(destination: M, keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > CharArray.associateByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > Array.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > ByteArray.associateTo(destination: M, transform: (Byte) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > ShortArray.associateTo(destination: M, transform: (Short) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > IntArray.associateTo(destination: M, transform: (Int) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > LongArray.associateTo(destination: M, transform: (Long) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > FloatArray.associateTo(destination: M, transform: (Float) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > DoubleArray.associateTo(destination: M, transform: (Double) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > BooleanArray.associateTo(destination: M, transform: (Boolean) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > CharArray.associateTo(destination: M, transform: (Char) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Array.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > ByteArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > ShortArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > IntArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > LongArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > FloatArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > DoubleArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > BooleanArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > CharArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun Array.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun ByteArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun ShortArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun IntArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun LongArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun FloatArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun DoubleArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun BooleanArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun CharArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Array.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun ByteArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun ShortArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun IntArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun LongArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun FloatArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun DoubleArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun BooleanArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun CharArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun Array.toMutableList(): MutableList {\n return ArrayList(this.asCollection())\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun ByteArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun ShortArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun IntArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun LongArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun FloatArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun DoubleArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun BooleanArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun CharArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun Array.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ByteArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ShortArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun IntArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun LongArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun FloatArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun DoubleArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun BooleanArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun CharArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun Array.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun ByteArray.flatMap(transform: (Byte) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun ShortArray.flatMap(transform: (Short) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun IntArray.flatMap(transform: (Int) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun LongArray.flatMap(transform: (Long) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun FloatArray.flatMap(transform: (Float) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun DoubleArray.flatMap(transform: (Double) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun BooleanArray.flatMap(transform: (Boolean) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun CharArray.flatMap(transform: (Char) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > Array.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > ByteArray.flatMapTo(destination: C, transform: (Byte) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > ShortArray.flatMapTo(destination: C, transform: (Short) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > IntArray.flatMapTo(destination: C, transform: (Int) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > LongArray.flatMapTo(destination: C, transform: (Long) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > FloatArray.flatMapTo(destination: C, transform: (Float) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > DoubleArray.flatMapTo(destination: C, transform: (Double) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > BooleanArray.flatMapTo(destination: C, transform: (Boolean) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > CharArray.flatMapTo(destination: C, transform: (Char) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Array.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun ByteArray.groupBy(keySelector: (Byte) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun ShortArray.groupBy(keySelector: (Short) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun IntArray.groupBy(keySelector: (Int) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun LongArray.groupBy(keySelector: (Long) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun FloatArray.groupBy(keySelector: (Float) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun DoubleArray.groupBy(keySelector: (Double) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun BooleanArray.groupBy(keySelector: (Boolean) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun CharArray.groupBy(keySelector: (Char) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Array.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun ByteArray.groupBy(keySelector: (Byte) -> K, valueTransform: (Byte) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun ShortArray.groupBy(keySelector: (Short) -> K, valueTransform: (Short) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun IntArray.groupBy(keySelector: (Int) -> K, valueTransform: (Int) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun LongArray.groupBy(keySelector: (Long) -> K, valueTransform: (Long) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun FloatArray.groupBy(keySelector: (Float) -> K, valueTransform: (Float) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun DoubleArray.groupBy(keySelector: (Double) -> K, valueTransform: (Double) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun BooleanArray.groupBy(keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun CharArray.groupBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Array.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> ByteArray.groupByTo(destination: M, keySelector: (Byte) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> ShortArray.groupByTo(destination: M, keySelector: (Short) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> IntArray.groupByTo(destination: M, keySelector: (Int) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> LongArray.groupByTo(destination: M, keySelector: (Long) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> FloatArray.groupByTo(destination: M, keySelector: (Float) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> DoubleArray.groupByTo(destination: M, keySelector: (Double) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> BooleanArray.groupByTo(destination: M, keySelector: (Boolean) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> CharArray.groupByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Array.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> ByteArray.groupByTo(destination: M, keySelector: (Byte) -> K, valueTransform: (Byte) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> ShortArray.groupByTo(destination: M, keySelector: (Short) -> K, valueTransform: (Short) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> IntArray.groupByTo(destination: M, keySelector: (Int) -> K, valueTransform: (Int) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> LongArray.groupByTo(destination: M, keySelector: (Long) -> K, valueTransform: (Long) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> FloatArray.groupByTo(destination: M, keySelector: (Float) -> K, valueTransform: (Float) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> DoubleArray.groupByTo(destination: M, keySelector: (Double) -> K, valueTransform: (Double) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> BooleanArray.groupByTo(destination: M, keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> CharArray.groupByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from an array to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Array.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Array.map(transform: (T) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun ByteArray.map(transform: (Byte) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun ShortArray.map(transform: (Short) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun IntArray.map(transform: (Int) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun LongArray.map(transform: (Long) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun FloatArray.map(transform: (Float) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun DoubleArray.map(transform: (Double) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun BooleanArray.map(transform: (Boolean) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun CharArray.map(transform: (Char) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Array.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun ByteArray.mapIndexed(transform: (index: Int, Byte) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun ShortArray.mapIndexed(transform: (index: Int, Short) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun IntArray.mapIndexed(transform: (index: Int, Int) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun LongArray.mapIndexed(transform: (index: Int, Long) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun FloatArray.mapIndexed(transform: (index: Int, Float) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun DoubleArray.mapIndexed(transform: (index: Int, Double) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun BooleanArray.mapIndexed(transform: (index: Int, Boolean) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun CharArray.mapIndexed(transform: (index: Int, Char) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Array.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Array.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Array.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > ByteArray.mapIndexedTo(destination: C, transform: (index: Int, Byte) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > ShortArray.mapIndexedTo(destination: C, transform: (index: Int, Short) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > IntArray.mapIndexedTo(destination: C, transform: (index: Int, Int) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > LongArray.mapIndexedTo(destination: C, transform: (index: Int, Long) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > FloatArray.mapIndexedTo(destination: C, transform: (index: Int, Float) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > DoubleArray.mapIndexedTo(destination: C, transform: (index: Int, Double) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > BooleanArray.mapIndexedTo(destination: C, transform: (index: Int, Boolean) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > CharArray.mapIndexedTo(destination: C, transform: (index: Int, Char) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original array.\n */\npublic inline fun Array.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original array\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Array.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > Array.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > ByteArray.mapTo(destination: C, transform: (Byte) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > ShortArray.mapTo(destination: C, transform: (Short) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > IntArray.mapTo(destination: C, transform: (Int) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > LongArray.mapTo(destination: C, transform: (Long) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > FloatArray.mapTo(destination: C, transform: (Float) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > DoubleArray.mapTo(destination: C, transform: (Double) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > BooleanArray.mapTo(destination: C, transform: (Boolean) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > CharArray.mapTo(destination: C, transform: (Char) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun Array.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun ByteArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun ShortArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun IntArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun LongArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun FloatArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun DoubleArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun BooleanArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\npublic fun CharArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun Array.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun ByteArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun ShortArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun IntArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun LongArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun FloatArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun DoubleArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun BooleanArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun CharArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun Array.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun ByteArray.distinctBy(selector: (Byte) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun ShortArray.distinctBy(selector: (Short) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun IntArray.distinctBy(selector: (Int) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun LongArray.distinctBy(selector: (Long) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun FloatArray.distinctBy(selector: (Float) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun DoubleArray.distinctBy(selector: (Double) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun BooleanArray.distinctBy(selector: (Boolean) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun CharArray.distinctBy(selector: (Char) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun Array.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ByteArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ShortArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun IntArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun LongArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun FloatArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun DoubleArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun BooleanArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun CharArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun Array.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ByteArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ShortArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun IntArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun LongArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun FloatArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun DoubleArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun BooleanArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun CharArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun Array.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ByteArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ShortArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun IntArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun LongArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun FloatArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun DoubleArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun BooleanArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun CharArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun Array.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun ByteArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun ShortArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun IntArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun LongArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun FloatArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun DoubleArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun BooleanArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun CharArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Array.all(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun BooleanArray.all(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun CharArray.all(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Array.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ByteArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ShortArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun IntArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun LongArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun FloatArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun DoubleArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun BooleanArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun CharArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Array.any(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ByteArray.any(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ShortArray.any(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun IntArray.any(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun LongArray.any(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun FloatArray.any(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun BooleanArray.any(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun CharArray.any(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Array.count(predicate: (T) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ByteArray.count(predicate: (Byte) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ShortArray.count(predicate: (Short) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun IntArray.count(predicate: (Int) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun LongArray.count(predicate: (Long) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun FloatArray.count(predicate: (Float) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun DoubleArray.count(predicate: (Double) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun BooleanArray.count(predicate: (Boolean) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun CharArray.count(predicate: (Char) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Array.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ByteArray.fold(initial: R, operation: (acc: R, Byte) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ShortArray.fold(initial: R, operation: (acc: R, Short) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun IntArray.fold(initial: R, operation: (acc: R, Int) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun LongArray.fold(initial: R, operation: (acc: R, Long) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun FloatArray.fold(initial: R, operation: (acc: R, Float) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun DoubleArray.fold(initial: R, operation: (acc: R, Double) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun BooleanArray.fold(initial: R, operation: (acc: R, Boolean) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun CharArray.fold(initial: R, operation: (acc: R, Char) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Array.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun Array.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ByteArray.foldRight(initial: R, operation: (Byte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ShortArray.foldRight(initial: R, operation: (Short, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun IntArray.foldRight(initial: R, operation: (Int, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun LongArray.foldRight(initial: R, operation: (Long, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun FloatArray.foldRight(initial: R, operation: (Float, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun DoubleArray.foldRight(initial: R, operation: (Double, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun BooleanArray.foldRight(initial: R, operation: (Boolean, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun CharArray.foldRight(initial: R, operation: (Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun Array.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldRightIndexed(initial: R, operation: (index: Int, Byte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldRightIndexed(initial: R, operation: (index: Int, Short, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldRightIndexed(initial: R, operation: (index: Int, Int, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldRightIndexed(initial: R, operation: (index: Int, Long, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldRightIndexed(initial: R, operation: (index: Int, Float, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldRightIndexed(initial: R, operation: (index: Int, Double, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldRightIndexed(initial: R, operation: (index: Int, Boolean, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldRightIndexed(initial: R, operation: (index: Int, Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun Array.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun ByteArray.forEach(action: (Byte) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun ShortArray.forEach(action: (Short) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun IntArray.forEach(action: (Int) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun LongArray.forEach(action: (Long) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun FloatArray.forEach(action: (Float) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun DoubleArray.forEach(action: (Double) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun BooleanArray.forEach(action: (Boolean) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun CharArray.forEach(action: (Char) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun Array.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun ByteArray.forEachIndexed(action: (index: Int, Byte) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun ShortArray.forEachIndexed(action: (index: Int, Short) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun IntArray.forEachIndexed(action: (index: Int, Int) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun LongArray.forEachIndexed(action: (index: Int, Long) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun FloatArray.forEachIndexed(action: (index: Int, Float) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun DoubleArray.forEachIndexed(action: (index: Int, Double) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun BooleanArray.forEachIndexed(action: (index: Int, Boolean) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun CharArray.forEachIndexed(action: (index: Int, Char) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.max(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.max(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun > Array.max(): T? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun ByteArray.max(): Byte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun ShortArray.max(): Short? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun IntArray.max(): Int? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun LongArray.max(): Long? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun FloatArray.max(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun DoubleArray.max(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun CharArray.max(): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > Array.maxBy(selector: (T) -> R): T? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > ByteArray.maxBy(selector: (Byte) -> R): Byte? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > ShortArray.maxBy(selector: (Short) -> R): Short? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > IntArray.maxBy(selector: (Int) -> R): Int? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > LongArray.maxBy(selector: (Long) -> R): Long? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > FloatArray.maxBy(selector: (Float) -> R): Float? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > DoubleArray.maxBy(selector: (Double) -> R): Double? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > BooleanArray.maxBy(selector: (Boolean) -> R): Boolean? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > CharArray.maxBy(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Array.maxWith(comparator: Comparator): T? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ByteArray.maxWith(comparator: Comparator): Byte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ShortArray.maxWith(comparator: Comparator): Short? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun IntArray.maxWith(comparator: Comparator): Int? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun LongArray.maxWith(comparator: Comparator): Long? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun FloatArray.maxWith(comparator: Comparator): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun DoubleArray.maxWith(comparator: Comparator): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun BooleanArray.maxWith(comparator: Comparator): Boolean? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun CharArray.maxWith(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.min(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.min(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun > Array.min(): T? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun ByteArray.min(): Byte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun ShortArray.min(): Short? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun IntArray.min(): Int? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun LongArray.min(): Long? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun FloatArray.min(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun DoubleArray.min(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun CharArray.min(): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > Array.minBy(selector: (T) -> R): T? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > ByteArray.minBy(selector: (Byte) -> R): Byte? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > ShortArray.minBy(selector: (Short) -> R): Short? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > IntArray.minBy(selector: (Int) -> R): Int? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > LongArray.minBy(selector: (Long) -> R): Long? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > FloatArray.minBy(selector: (Float) -> R): Float? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > DoubleArray.minBy(selector: (Double) -> R): Double? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > BooleanArray.minBy(selector: (Boolean) -> R): Boolean? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > CharArray.minBy(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Array.minWith(comparator: Comparator): T? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ByteArray.minWith(comparator: Comparator): Byte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ShortArray.minWith(comparator: Comparator): Short? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun IntArray.minWith(comparator: Comparator): Int? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun LongArray.minWith(comparator: Comparator): Long? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun FloatArray.minWith(comparator: Comparator): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun DoubleArray.minWith(comparator: Comparator): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun BooleanArray.minWith(comparator: Comparator): Boolean? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun CharArray.minWith(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Array.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun ByteArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun ShortArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun IntArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun LongArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun FloatArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun DoubleArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun BooleanArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun CharArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Array.none(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun ByteArray.none(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun ShortArray.none(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun IntArray.none(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun LongArray.none(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun FloatArray.none(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun DoubleArray.none(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun BooleanArray.none(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun CharArray.none(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Array.reduce(operation: (acc: S, T) -> S): S {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ByteArray.reduce(operation: (acc: Byte, Byte) -> Byte): Byte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ShortArray.reduce(operation: (acc: Short, Short) -> Short): Short {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun IntArray.reduce(operation: (acc: Int, Int) -> Int): Int {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun LongArray.reduce(operation: (acc: Long, Long) -> Long): Long {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun FloatArray.reduce(operation: (acc: Float, Float) -> Float): Float {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun DoubleArray.reduce(operation: (acc: Double, Double) -> Double): Double {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun BooleanArray.reduce(operation: (acc: Boolean, Boolean) -> Boolean): Boolean {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun CharArray.reduce(operation: (acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun Array.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun ByteArray.reduceIndexed(operation: (index: Int, acc: Byte, Byte) -> Byte): Byte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun ShortArray.reduceIndexed(operation: (index: Int, acc: Short, Short) -> Short): Short {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun IntArray.reduceIndexed(operation: (index: Int, acc: Int, Int) -> Int): Int {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun LongArray.reduceIndexed(operation: (index: Int, acc: Long, Long) -> Long): Long {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun FloatArray.reduceIndexed(operation: (index: Int, acc: Float, Float) -> Float): Float {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.reduceIndexed(operation: (index: Int, acc: Double, Double) -> Double): Double {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.reduceIndexed(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): Boolean {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun CharArray.reduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun Array.reduceRight(operation: (T, acc: S) -> S): S {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ByteArray.reduceRight(operation: (Byte, acc: Byte) -> Byte): Byte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ShortArray.reduceRight(operation: (Short, acc: Short) -> Short): Short {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun IntArray.reduceRight(operation: (Int, acc: Int) -> Int): Int {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun LongArray.reduceRight(operation: (Long, acc: Long) -> Long): Long {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun FloatArray.reduceRight(operation: (Float, acc: Float) -> Float): Float {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun DoubleArray.reduceRight(operation: (Double, acc: Double) -> Double): Double {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun BooleanArray.reduceRight(operation: (Boolean, acc: Boolean) -> Boolean): Boolean {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun CharArray.reduceRight(operation: (Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun Array.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.reduceRightIndexed(operation: (index: Int, Byte, acc: Byte) -> Byte): Byte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.reduceRightIndexed(operation: (index: Int, Short, acc: Short) -> Short): Short {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun IntArray.reduceRightIndexed(operation: (index: Int, Int, acc: Int) -> Int): Int {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun LongArray.reduceRightIndexed(operation: (index: Int, Long, acc: Long) -> Long): Long {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.reduceRightIndexed(operation: (index: Int, Float, acc: Float) -> Float): Float {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.reduceRightIndexed(operation: (index: Int, Double, acc: Double) -> Double): Double {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.reduceRightIndexed(operation: (index: Int, Boolean, acc: Boolean) -> Boolean): Boolean {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharArray.reduceRightIndexed(operation: (index: Int, Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun Array.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ByteArray.sumBy(selector: (Byte) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ShortArray.sumBy(selector: (Short) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun IntArray.sumBy(selector: (Int) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun LongArray.sumBy(selector: (Long) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun FloatArray.sumBy(selector: (Float) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun DoubleArray.sumBy(selector: (Double) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun BooleanArray.sumBy(selector: (Boolean) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun CharArray.sumBy(selector: (Char) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun Array.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ByteArray.sumByDouble(selector: (Byte) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ShortArray.sumByDouble(selector: (Short) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun IntArray.sumByDouble(selector: (Int) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun LongArray.sumByDouble(selector: (Long) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun FloatArray.sumByDouble(selector: (Float) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun DoubleArray.sumByDouble(selector: (Double) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun BooleanArray.sumByDouble(selector: (Boolean) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun CharArray.sumByDouble(selector: (Char) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Array.requireNoNulls(): Array {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Array\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun Array.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun ByteArray.partition(predicate: (Byte) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun ShortArray.partition(predicate: (Short) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun IntArray.partition(predicate: (Int) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun LongArray.partition(predicate: (Long) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun FloatArray.partition(predicate: (Float) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun DoubleArray.partition(predicate: (Double) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun BooleanArray.partition(predicate: (Boolean) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun CharArray.partition(predicate: (Char) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Array.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Array.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: Array, transform: (a: Byte, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: Array, transform: (a: Short, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: Array, transform: (a: Int, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: Array, transform: (a: Long, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: Array, transform: (a: Float, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: Array, transform: (a: Double, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: Array, transform: (a: Boolean, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: Array, transform: (a: Char, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Array.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Array.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: Iterable, transform: (a: Byte, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: Iterable, transform: (a: Short, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: Iterable, transform: (a: Int, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: Iterable, transform: (a: Long, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: Iterable, transform: (a: Float, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: Iterable, transform: (a: Double, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: Iterable, transform: (a: Boolean, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: Iterable, transform: (a: Char, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: ByteArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: ShortArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: IntArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: LongArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: FloatArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: DoubleArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: BooleanArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: CharArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: ByteArray, transform: (a: Byte, b: Byte) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: ShortArray, transform: (a: Short, b: Short) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: IntArray, transform: (a: Int, b: Int) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: LongArray, transform: (a: Long, b: Long) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: FloatArray, transform: (a: Float, b: Float) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: DoubleArray, transform: (a: Double, b: Double) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: BooleanArray, transform: (a: Boolean, b: Boolean) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: CharArray, transform: (a: Char, b: Char) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Array.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun ByteArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Byte) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun ShortArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Short) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun IntArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Int) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun LongArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Long) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun FloatArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Float) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun DoubleArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Double) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun BooleanArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Boolean) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun CharArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Char) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Array.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun ByteArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Byte) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun ShortArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Short) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun IntArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Int) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun LongArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Long) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun FloatArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Float) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun DoubleArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Double) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun BooleanArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Boolean) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun CharArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Char) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun Array.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun ByteArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun ShortArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun IntArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun LongArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun FloatArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun DoubleArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun BooleanArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun CharArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun Array.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun ByteArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun ShortArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun IntArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun LongArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun FloatArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun DoubleArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun BooleanArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun CharArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun ByteArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun ShortArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun IntArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun LongArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun FloatArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun DoubleArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Array.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Array.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Array.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun ByteArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun ShortArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun IntArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun LongArray.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun FloatArray.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun DoubleArray.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"RangesKt\")\n\npackage kotlin.ranges\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns a random element from this range.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun IntRange.random(): Int {\n return random(Random)\n}\n\n/**\n * Returns a random element from this range.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun LongRange.random(): Long {\n return random(Random)\n}\n\n/**\n * Returns a random element from this range.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun CharRange.random(): Char {\n return random(Random)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun IntRange.random(random: Random): Int {\n try {\n return random.nextInt(this)\n } catch(e: IllegalArgumentException) {\n throw NoSuchElementException(e.message)\n }\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun LongRange.random(random: Random): Long {\n try {\n return random.nextLong(this)\n } catch(e: IllegalArgumentException) {\n throw NoSuchElementException(e.message)\n }\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun CharRange.random(random: Random): Char {\n try {\n return random.nextInt(first.toInt(), last.toInt() + 1).toChar()\n } catch(e: IllegalArgumentException) {\n throw NoSuchElementException(e.message)\n }\n}\n\n/**\n * Returns `true` if this range contains the specified [element].\n * \n * Always returns `false` if the [element] is `null`.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline operator fun IntRange.contains(element: Int?): Boolean {\n return element != null && contains(element)\n}\n\n/**\n * Returns `true` if this range contains the specified [element].\n * \n * Always returns `false` if the [element] is `null`.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline operator fun LongRange.contains(element: Long?): Boolean {\n return element != null && contains(element)\n}\n\n/**\n * Returns `true` if this range contains the specified [element].\n * \n * Always returns `false` if the [element] is `null`.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline operator fun CharRange.contains(element: Char?): Boolean {\n return element != null && contains(element)\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"intRangeContains\")\npublic operator fun ClosedRange.contains(value: Byte): Boolean {\n return contains(value.toInt())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"longRangeContains\")\npublic operator fun ClosedRange.contains(value: Byte): Boolean {\n return contains(value.toLong())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"shortRangeContains\")\npublic operator fun ClosedRange.contains(value: Byte): Boolean {\n return contains(value.toShort())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"doubleRangeContains\")\npublic operator fun ClosedRange.contains(value: Byte): Boolean {\n return contains(value.toDouble())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"floatRangeContains\")\npublic operator fun ClosedRange.contains(value: Byte): Boolean {\n return contains(value.toFloat())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"intRangeContains\")\npublic operator fun ClosedRange.contains(value: Double): Boolean {\n return value.toIntExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"longRangeContains\")\npublic operator fun ClosedRange.contains(value: Double): Boolean {\n return value.toLongExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"byteRangeContains\")\npublic operator fun ClosedRange.contains(value: Double): Boolean {\n return value.toByteExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"shortRangeContains\")\npublic operator fun ClosedRange.contains(value: Double): Boolean {\n return value.toShortExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"floatRangeContains\")\npublic operator fun ClosedRange.contains(value: Double): Boolean {\n return contains(value.toFloat())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"intRangeContains\")\npublic operator fun ClosedRange.contains(value: Float): Boolean {\n return value.toIntExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"longRangeContains\")\npublic operator fun ClosedRange.contains(value: Float): Boolean {\n return value.toLongExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"byteRangeContains\")\npublic operator fun ClosedRange.contains(value: Float): Boolean {\n return value.toByteExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"shortRangeContains\")\npublic operator fun ClosedRange.contains(value: Float): Boolean {\n return value.toShortExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"doubleRangeContains\")\npublic operator fun ClosedRange.contains(value: Float): Boolean {\n return contains(value.toDouble())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"longRangeContains\")\npublic operator fun ClosedRange.contains(value: Int): Boolean {\n return contains(value.toLong())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"byteRangeContains\")\npublic operator fun ClosedRange.contains(value: Int): Boolean {\n return value.toByteExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"shortRangeContains\")\npublic operator fun ClosedRange.contains(value: Int): Boolean {\n return value.toShortExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"doubleRangeContains\")\npublic operator fun ClosedRange.contains(value: Int): Boolean {\n return contains(value.toDouble())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"floatRangeContains\")\npublic operator fun ClosedRange.contains(value: Int): Boolean {\n return contains(value.toFloat())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"intRangeContains\")\npublic operator fun ClosedRange.contains(value: Long): Boolean {\n return value.toIntExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"byteRangeContains\")\npublic operator fun ClosedRange.contains(value: Long): Boolean {\n return value.toByteExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"shortRangeContains\")\npublic operator fun ClosedRange.contains(value: Long): Boolean {\n return value.toShortExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"doubleRangeContains\")\npublic operator fun ClosedRange.contains(value: Long): Boolean {\n return contains(value.toDouble())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"floatRangeContains\")\npublic operator fun ClosedRange.contains(value: Long): Boolean {\n return contains(value.toFloat())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"intRangeContains\")\npublic operator fun ClosedRange.contains(value: Short): Boolean {\n return contains(value.toInt())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"longRangeContains\")\npublic operator fun ClosedRange.contains(value: Short): Boolean {\n return contains(value.toLong())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@kotlin.jvm.JvmName(\"byteRangeContains\")\npublic operator fun ClosedRange.contains(value: Short): Boolean {\n return value.toByteExactOrNull().let { if (it != null) contains(it) else false }\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"doubleRangeContains\")\npublic operator fun ClosedRange.contains(value: Short): Boolean {\n return contains(value.toDouble())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@Deprecated(\"This `contains` operation mixing integer and floating point arguments has ambiguous semantics and is going to be removed.\")\n@kotlin.jvm.JvmName(\"floatRangeContains\")\npublic operator fun ClosedRange.contains(value: Short): Boolean {\n return contains(value.toFloat())\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Int.downTo(to: Byte): IntProgression {\n return IntProgression.fromClosedRange(this, to.toInt(), -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Long.downTo(to: Byte): LongProgression {\n return LongProgression.fromClosedRange(this, to.toLong(), -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Byte.downTo(to: Byte): IntProgression {\n return IntProgression.fromClosedRange(this.toInt(), to.toInt(), -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Short.downTo(to: Byte): IntProgression {\n return IntProgression.fromClosedRange(this.toInt(), to.toInt(), -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Char.downTo(to: Char): CharProgression {\n return CharProgression.fromClosedRange(this, to, -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Int.downTo(to: Int): IntProgression {\n return IntProgression.fromClosedRange(this, to, -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Long.downTo(to: Int): LongProgression {\n return LongProgression.fromClosedRange(this, to.toLong(), -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Byte.downTo(to: Int): IntProgression {\n return IntProgression.fromClosedRange(this.toInt(), to, -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Short.downTo(to: Int): IntProgression {\n return IntProgression.fromClosedRange(this.toInt(), to, -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Int.downTo(to: Long): LongProgression {\n return LongProgression.fromClosedRange(this.toLong(), to, -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Long.downTo(to: Long): LongProgression {\n return LongProgression.fromClosedRange(this, to, -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Byte.downTo(to: Long): LongProgression {\n return LongProgression.fromClosedRange(this.toLong(), to, -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Short.downTo(to: Long): LongProgression {\n return LongProgression.fromClosedRange(this.toLong(), to, -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Int.downTo(to: Short): IntProgression {\n return IntProgression.fromClosedRange(this, to.toInt(), -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Long.downTo(to: Short): LongProgression {\n return LongProgression.fromClosedRange(this, to.toLong(), -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Byte.downTo(to: Short): IntProgression {\n return IntProgression.fromClosedRange(this.toInt(), to.toInt(), -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\npublic infix fun Short.downTo(to: Short): IntProgression {\n return IntProgression.fromClosedRange(this.toInt(), to.toInt(), -1)\n}\n\n/**\n * Returns a progression that goes over the same range in the opposite direction with the same step.\n */\npublic fun IntProgression.reversed(): IntProgression {\n return IntProgression.fromClosedRange(last, first, -step)\n}\n\n/**\n * Returns a progression that goes over the same range in the opposite direction with the same step.\n */\npublic fun LongProgression.reversed(): LongProgression {\n return LongProgression.fromClosedRange(last, first, -step)\n}\n\n/**\n * Returns a progression that goes over the same range in the opposite direction with the same step.\n */\npublic fun CharProgression.reversed(): CharProgression {\n return CharProgression.fromClosedRange(last, first, -step)\n}\n\n/**\n * Returns a progression that goes over the same range with the given step.\n */\npublic infix fun IntProgression.step(step: Int): IntProgression {\n checkStepIsPositive(step > 0, step)\n return IntProgression.fromClosedRange(first, last, if (this.step > 0) step else -step)\n}\n\n/**\n * Returns a progression that goes over the same range with the given step.\n */\npublic infix fun LongProgression.step(step: Long): LongProgression {\n checkStepIsPositive(step > 0, step)\n return LongProgression.fromClosedRange(first, last, if (this.step > 0) step else -step)\n}\n\n/**\n * Returns a progression that goes over the same range with the given step.\n */\npublic infix fun CharProgression.step(step: Int): CharProgression {\n checkStepIsPositive(step > 0, step)\n return CharProgression.fromClosedRange(first, last, if (this.step > 0) step else -step)\n}\n\ninternal fun Int.toByteExactOrNull(): Byte? {\n return if (this in Byte.MIN_VALUE.toInt()..Byte.MAX_VALUE.toInt()) this.toByte() else null\n}\n\ninternal fun Long.toByteExactOrNull(): Byte? {\n return if (this in Byte.MIN_VALUE.toLong()..Byte.MAX_VALUE.toLong()) this.toByte() else null\n}\n\ninternal fun Short.toByteExactOrNull(): Byte? {\n return if (this in Byte.MIN_VALUE.toShort()..Byte.MAX_VALUE.toShort()) this.toByte() else null\n}\n\ninternal fun Double.toByteExactOrNull(): Byte? {\n return if (this in Byte.MIN_VALUE.toDouble()..Byte.MAX_VALUE.toDouble()) this.toByte() else null\n}\n\ninternal fun Float.toByteExactOrNull(): Byte? {\n return if (this in Byte.MIN_VALUE.toFloat()..Byte.MAX_VALUE.toFloat()) this.toByte() else null\n}\n\ninternal fun Long.toIntExactOrNull(): Int? {\n return if (this in Int.MIN_VALUE.toLong()..Int.MAX_VALUE.toLong()) this.toInt() else null\n}\n\ninternal fun Double.toIntExactOrNull(): Int? {\n return if (this in Int.MIN_VALUE.toDouble()..Int.MAX_VALUE.toDouble()) this.toInt() else null\n}\n\ninternal fun Float.toIntExactOrNull(): Int? {\n return if (this in Int.MIN_VALUE.toFloat()..Int.MAX_VALUE.toFloat()) this.toInt() else null\n}\n\ninternal fun Double.toLongExactOrNull(): Long? {\n return if (this in Long.MIN_VALUE.toDouble()..Long.MAX_VALUE.toDouble()) this.toLong() else null\n}\n\ninternal fun Float.toLongExactOrNull(): Long? {\n return if (this in Long.MIN_VALUE.toFloat()..Long.MAX_VALUE.toFloat()) this.toLong() else null\n}\n\ninternal fun Int.toShortExactOrNull(): Short? {\n return if (this in Short.MIN_VALUE.toInt()..Short.MAX_VALUE.toInt()) this.toShort() else null\n}\n\ninternal fun Long.toShortExactOrNull(): Short? {\n return if (this in Short.MIN_VALUE.toLong()..Short.MAX_VALUE.toLong()) this.toShort() else null\n}\n\ninternal fun Double.toShortExactOrNull(): Short? {\n return if (this in Short.MIN_VALUE.toDouble()..Short.MAX_VALUE.toDouble()) this.toShort() else null\n}\n\ninternal fun Float.toShortExactOrNull(): Short? {\n return if (this in Short.MIN_VALUE.toFloat()..Short.MAX_VALUE.toFloat()) this.toShort() else null\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Int.until(to: Byte): IntRange {\n return this .. (to.toInt() - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Long.until(to: Byte): LongRange {\n return this .. (to.toLong() - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Byte.until(to: Byte): IntRange {\n return this.toInt() .. (to.toInt() - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Short.until(to: Byte): IntRange {\n return this.toInt() .. (to.toInt() - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Char.until(to: Char): CharRange {\n if (to <= '\\u0000') return CharRange.EMPTY\n return this .. (to - 1).toChar()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Int.until(to: Int): IntRange {\n if (to <= Int.MIN_VALUE) return IntRange.EMPTY\n return this .. (to - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Long.until(to: Int): LongRange {\n return this .. (to.toLong() - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Byte.until(to: Int): IntRange {\n if (to <= Int.MIN_VALUE) return IntRange.EMPTY\n return this.toInt() .. (to - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Short.until(to: Int): IntRange {\n if (to <= Int.MIN_VALUE) return IntRange.EMPTY\n return this.toInt() .. (to - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Int.until(to: Long): LongRange {\n if (to <= Long.MIN_VALUE) return LongRange.EMPTY\n return this.toLong() .. (to - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Long.until(to: Long): LongRange {\n if (to <= Long.MIN_VALUE) return LongRange.EMPTY\n return this .. (to - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Byte.until(to: Long): LongRange {\n if (to <= Long.MIN_VALUE) return LongRange.EMPTY\n return this.toLong() .. (to - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Short.until(to: Long): LongRange {\n if (to <= Long.MIN_VALUE) return LongRange.EMPTY\n return this.toLong() .. (to - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Int.until(to: Short): IntRange {\n return this .. (to.toInt() - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Long.until(to: Short): LongRange {\n return this .. (to.toLong() - 1).toLong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Byte.until(to: Short): IntRange {\n return this.toInt() .. (to.toInt() - 1).toInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\npublic infix fun Short.until(to: Short): IntRange {\n return this.toInt() .. (to.toInt() - 1).toInt()\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeastComparable\n */\npublic fun > T.coerceAtLeast(minimumValue: T): T {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeast\n */\npublic fun Byte.coerceAtLeast(minimumValue: Byte): Byte {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeast\n */\npublic fun Short.coerceAtLeast(minimumValue: Short): Short {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeast\n */\npublic fun Int.coerceAtLeast(minimumValue: Int): Int {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeast\n */\npublic fun Long.coerceAtLeast(minimumValue: Long): Long {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeast\n */\npublic fun Float.coerceAtLeast(minimumValue: Float): Float {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeast\n */\npublic fun Double.coerceAtLeast(minimumValue: Double): Double {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMostComparable\n */\npublic fun > T.coerceAtMost(maximumValue: T): T {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMost\n */\npublic fun Byte.coerceAtMost(maximumValue: Byte): Byte {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMost\n */\npublic fun Short.coerceAtMost(maximumValue: Short): Short {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMost\n */\npublic fun Int.coerceAtMost(maximumValue: Int): Int {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMost\n */\npublic fun Long.coerceAtMost(maximumValue: Long): Long {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMost\n */\npublic fun Float.coerceAtMost(maximumValue: Float): Float {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMost\n */\npublic fun Double.coerceAtMost(maximumValue: Double): Double {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceInComparable\n */\npublic fun > T.coerceIn(minimumValue: T?, maximumValue: T?): T {\n if (minimumValue !== null && maximumValue !== null) {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n }\n else {\n if (minimumValue !== null && this < minimumValue) return minimumValue\n if (maximumValue !== null && this > maximumValue) return maximumValue\n }\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Byte.coerceIn(minimumValue: Byte, maximumValue: Byte): Byte {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Short.coerceIn(minimumValue: Short, maximumValue: Short): Short {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Int.coerceIn(minimumValue: Int, maximumValue: Int): Int {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Long.coerceIn(minimumValue: Long, maximumValue: Long): Long {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Float.coerceIn(minimumValue: Float, maximumValue: Float): Float {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Double.coerceIn(minimumValue: Double, maximumValue: Double): Double {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified [range].\n * \n * @return this value if it's in the [range], or `range.start` if this value is less than `range.start`, or `range.endInclusive` if this value is greater than `range.endInclusive`.\n * \n * @sample samples.comparisons.ComparableOps.coerceInFloatingPointRange\n */\n@SinceKotlin(\"1.1\")\npublic fun > T.coerceIn(range: ClosedFloatingPointRange): T {\n if (range.isEmpty()) throw IllegalArgumentException(\"Cannot coerce value to an empty range: $range.\")\n return when {\n // this < start equiv to this <= start && !(this >= start)\n range.lessThanOrEquals(this, range.start) && !range.lessThanOrEquals(range.start, this) -> range.start\n // this > end equiv to this >= end && !(this <= end)\n range.lessThanOrEquals(range.endInclusive, this) && !range.lessThanOrEquals(this, range.endInclusive) -> range.endInclusive\n else -> this\n }\n}\n\n/**\n * Ensures that this value lies in the specified [range].\n * \n * @return this value if it's in the [range], or `range.start` if this value is less than `range.start`, or `range.endInclusive` if this value is greater than `range.endInclusive`.\n * \n * @sample samples.comparisons.ComparableOps.coerceInComparable\n */\npublic fun > T.coerceIn(range: ClosedRange): T {\n if (range is ClosedFloatingPointRange) {\n return this.coerceIn(range)\n }\n if (range.isEmpty()) throw IllegalArgumentException(\"Cannot coerce value to an empty range: $range.\")\n return when {\n this < range.start -> range.start\n this > range.endInclusive -> range.endInclusive\n else -> this\n }\n}\n\n/**\n * Ensures that this value lies in the specified [range].\n * \n * @return this value if it's in the [range], or `range.start` if this value is less than `range.start`, or `range.endInclusive` if this value is greater than `range.endInclusive`.\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Int.coerceIn(range: ClosedRange): Int {\n if (range is ClosedFloatingPointRange) {\n return this.coerceIn(range)\n }\n if (range.isEmpty()) throw IllegalArgumentException(\"Cannot coerce value to an empty range: $range.\")\n return when {\n this < range.start -> range.start\n this > range.endInclusive -> range.endInclusive\n else -> this\n }\n}\n\n/**\n * Ensures that this value lies in the specified [range].\n * \n * @return this value if it's in the [range], or `range.start` if this value is less than `range.start`, or `range.endInclusive` if this value is greater than `range.endInclusive`.\n * \n * @sample samples.comparisons.ComparableOps.coerceIn\n */\npublic fun Long.coerceIn(range: ClosedRange): Long {\n if (range is ClosedFloatingPointRange) {\n return this.coerceIn(range)\n }\n if (range.isEmpty()) throw IllegalArgumentException(\"Cannot coerce value to an empty range: $range.\")\n return when {\n this < range.start -> range.start\n this > range.endInclusive -> range.endInclusive\n else -> this\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UByte @PublishedApi internal constructor(@PublishedApi internal val data: Byte) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of UByte can have.\n */\n public const val MIN_VALUE: UByte = UByte(0)\n\n /**\n * A constant holding the maximum value an instance of UByte can have.\n */\n public const val MAX_VALUE: UByte = UByte(-1)\n\n /**\n * The number of bytes used to represent an instance of UByte in a binary form.\n */\n public const val SIZE_BYTES: Int = 1\n\n /**\n * The number of bits used to represent an instance of UByte in a binary form.\n */\n public const val SIZE_BITS: Int = 8\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: UByte): Int = this.toInt().compareTo(other.toInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UShort): Int = this.toInt().compareTo(other.toInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UInt): Int = this.toUInt().compareTo(other)\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: ULong): Int = this.toULong().compareTo(other)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): UInt = this.toUInt().plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): UInt = this.toUInt().plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): UInt = this.toUInt().plus(other)\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = this.toULong().plus(other)\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): UInt = this.toUInt().minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): UInt = this.toUInt().minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): UInt = this.toUInt().minus(other)\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = this.toULong().minus(other)\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): UInt = this.toUInt().times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): UInt = this.toUInt().times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): UInt = this.toUInt().times(other)\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = this.toULong().times(other)\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): UInt = this.toUInt().div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): UInt = this.toUInt().div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): UInt = this.toUInt().div(other)\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.toUInt().rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.toUInt().rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = this.toUInt().rem(other)\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UByte = UByte(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): UByte = UByte(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: UByte): UIntRange = UIntRange(this.toUInt(), other.toUInt())\n\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: UByte): UByte = UByte(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: UByte): UByte = UByte(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: UByte): UByte = UByte(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): UByte = UByte(data.inv())\n\n /**\n * Converts this [UByte] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `UByte`. Otherwise the result is negative.\n *\n * The resulting `Byte` value has the same binary representation as this `UByte` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data\n /**\n * Converts this [UByte] value to [Short].\n *\n * The resulting `Short` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `Short` value are the same as the bits of this `UByte` value,\n * whereas the most significant 8 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data.toShort() and 0xFF\n /**\n * Converts this [UByte] value to [Int].\n *\n * The resulting `Int` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `Int` value are the same as the bits of this `UByte` value,\n * whereas the most significant 24 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data.toInt() and 0xFF\n /**\n * Converts this [UByte] value to [Long].\n *\n * The resulting `Long` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `Long` value are the same as the bits of this `UByte` value,\n * whereas the most significant 56 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data.toLong() and 0xFF\n\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = this\n /**\n * Converts this [UByte] value to [UShort].\n *\n * The resulting `UShort` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `UShort` value are the same as the bits of this `UByte` value,\n * whereas the most significant 8 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = UShort(data.toShort() and 0xFF)\n /**\n * Converts this [UByte] value to [UInt].\n *\n * The resulting `UInt` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `UInt` value are the same as the bits of this `UByte` value,\n * whereas the most significant 24 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = UInt(data.toInt() and 0xFF)\n /**\n * Converts this [UByte] value to [ULong].\n *\n * The resulting `ULong` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `ULong` value are the same as the bits of this `UByte` value,\n * whereas the most significant 56 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = ULong(data.toLong() and 0xFF)\n\n /**\n * Converts this [UByte] value to [Float].\n *\n * The resulting `Float` value represents the same numerical value as this `UByte`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toInt().toFloat()\n /**\n * Converts this [UByte] value to [Double].\n *\n * The resulting `Double` value represents the same numerical value as this `UByte`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = this.toInt().toDouble()\n\n public override fun toString(): String = toInt().toString()\n\n}\n\n/**\n * Converts this [Byte] value to [UByte].\n *\n * If this value is positive, the resulting `UByte` value represents the same numerical value as this `Byte`.\n *\n * The resulting `UByte` value has the same binary representation as this `Byte` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toUByte(): UByte = UByte(this)\n/**\n * Converts this [Short] value to [UByte].\n *\n * If this value is positive and less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `Short`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `Short` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toUByte(): UByte = UByte(this.toByte())\n/**\n * Converts this [Int] value to [UByte].\n *\n * If this value is positive and less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `Int`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `Int` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toUByte(): UByte = UByte(this.toByte())\n/**\n * Converts this [Long] value to [UByte].\n *\n * If this value is positive and less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `Long`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUByte(): UByte = UByte(this.toByte())\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UInt @PublishedApi internal constructor(@PublishedApi internal val data: Int) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of UInt can have.\n */\n public const val MIN_VALUE: UInt = UInt(0)\n\n /**\n * A constant holding the maximum value an instance of UInt can have.\n */\n public const val MAX_VALUE: UInt = UInt(-1)\n\n /**\n * The number of bytes used to represent an instance of UInt in a binary form.\n */\n public const val SIZE_BYTES: Int = 4\n\n /**\n * The number of bits used to represent an instance of UInt in a binary form.\n */\n public const val SIZE_BITS: Int = 32\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UByte): Int = this.compareTo(other.toUInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UShort): Int = this.compareTo(other.toUInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: UInt): Int = uintCompare(this.data, other.data)\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: ULong): Int = this.toULong().compareTo(other)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): UInt = this.plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): UInt = this.plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): UInt = UInt(this.data.plus(other.data))\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = this.toULong().plus(other)\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): UInt = this.minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): UInt = this.minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): UInt = UInt(this.data.minus(other.data))\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = this.toULong().minus(other)\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): UInt = this.times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): UInt = this.times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): UInt = UInt(this.data.times(other.data))\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = this.toULong().times(other)\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): UInt = this.div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): UInt = this.div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): UInt = uintDivide(this, other)\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = uintRemainder(this, other)\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UInt = UInt(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): UInt = UInt(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: UInt): UIntRange = UIntRange(this, other)\n\n /** Shifts this value left by the [bitCount] number of bits. */\n @kotlin.internal.InlineOnly\n public inline infix fun shl(bitCount: Int): UInt = UInt(data shl bitCount)\n /** Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros. */\n @kotlin.internal.InlineOnly\n public inline infix fun shr(bitCount: Int): UInt = UInt(data ushr bitCount)\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: UInt): UInt = UInt(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: UInt): UInt = UInt(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: UInt): UInt = UInt(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): UInt = UInt(data.inv())\n\n /**\n * Converts this [UInt] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `Byte` value is represented by the least significant 8 bits of this `UInt` value.\n * Note that the resulting `Byte` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data.toByte()\n /**\n * Converts this [UInt] value to [Short].\n *\n * If this value is less than or equals to [Short.MAX_VALUE], the resulting `Short` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `Short` value is represented by the least significant 16 bits of this `UInt` value.\n * Note that the resulting `Short` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data.toShort()\n /**\n * Converts this [UInt] value to [Int].\n *\n * If this value is less than or equals to [Int.MAX_VALUE], the resulting `Int` value represents\n * the same numerical value as this `UInt`. Otherwise the result is negative.\n *\n * The resulting `Int` value has the same binary representation as this `UInt` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data\n /**\n * Converts this [UInt] value to [Long].\n *\n * The resulting `Long` value represents the same numerical value as this `UInt`.\n *\n * The least significant 32 bits of the resulting `Long` value are the same as the bits of this `UInt` value,\n * whereas the most significant 32 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data.toLong() and 0xFFFF_FFFF\n\n /**\n * Converts this [UInt] value to [UByte].\n *\n * If this value is less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `UInt` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = data.toUByte()\n /**\n * Converts this [UInt] value to [UShort].\n *\n * If this value is less than or equals to [UShort.MAX_VALUE], the resulting `UShort` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `UShort` value is represented by the least significant 16 bits of this `UInt` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = data.toUShort()\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = this\n /**\n * Converts this [UInt] value to [ULong].\n *\n * The resulting `ULong` value represents the same numerical value as this `UInt`.\n *\n * The least significant 32 bits of the resulting `ULong` value are the same as the bits of this `UInt` value,\n * whereas the most significant 32 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = ULong(data.toLong() and 0xFFFF_FFFF)\n\n /**\n * Converts this [UInt] value to [Float].\n *\n * The resulting value is the closest `Float` to this `UInt` value.\n * In case when this `UInt` value is exactly between two `Float`s,\n * the one with zero at least significant bit of mantissa is selected.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toDouble().toFloat()\n /**\n * Converts this [UInt] value to [Double].\n *\n * The resulting `Double` value represents the same numerical value as this `UInt`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = uintToDouble(data)\n\n public override fun toString(): String = toLong().toString()\n\n}\n\n/**\n * Converts this [Byte] value to [UInt].\n *\n * If this value is positive, the resulting `UInt` value represents the same numerical value as this `Byte`.\n *\n * The least significant 8 bits of the resulting `UInt` value are the same as the bits of this `Byte` value,\n * whereas the most significant 24 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toUInt(): UInt = UInt(this.toInt())\n/**\n * Converts this [Short] value to [UInt].\n *\n * If this value is positive, the resulting `UInt` value represents the same numerical value as this `Short`.\n *\n * The least significant 16 bits of the resulting `UInt` value are the same as the bits of this `Short` value,\n * whereas the most significant 16 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toUInt(): UInt = UInt(this.toInt())\n/**\n * Converts this [Int] value to [UInt].\n *\n * If this value is positive, the resulting `UInt` value represents the same numerical value as this `Int`.\n *\n * The resulting `UInt` value has the same binary representation as this `Int` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toUInt(): UInt = UInt(this)\n/**\n * Converts this [Long] value to [UInt].\n *\n * If this value is positive and less than or equals to [UInt.MAX_VALUE], the resulting `UInt` value represents\n * the same numerical value as this `Long`.\n *\n * The resulting `UInt` value is represented by the least significant 32 bits of this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUInt(): UInt = UInt(this.toInt())\n\n/**\n * Converts this [Float] value to [UInt].\n *\n * The fractional part, if any, is rounded down.\n * Returns zero if this `Float` value is negative or `NaN`, [UInt.MAX_VALUE] if it's bigger than `UInt.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Float.toUInt(): UInt = doubleToUInt(this.toDouble())\n/**\n * Converts this [Double] value to [UInt].\n *\n * The fractional part, if any, is rounded down.\n * Returns zero if this `Double` value is negative or `NaN`, [UInt.MAX_VALUE] if it's bigger than `UInt.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Double.toUInt(): UInt = doubleToUInt(this)\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UShort @PublishedApi internal constructor(@PublishedApi internal val data: Short) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of UShort can have.\n */\n public const val MIN_VALUE: UShort = UShort(0)\n\n /**\n * A constant holding the maximum value an instance of UShort can have.\n */\n public const val MAX_VALUE: UShort = UShort(-1)\n\n /**\n * The number of bytes used to represent an instance of UShort in a binary form.\n */\n public const val SIZE_BYTES: Int = 2\n\n /**\n * The number of bits used to represent an instance of UShort in a binary form.\n */\n public const val SIZE_BITS: Int = 16\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UByte): Int = this.toInt().compareTo(other.toInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: UShort): Int = this.toInt().compareTo(other.toInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UInt): Int = this.toUInt().compareTo(other)\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: ULong): Int = this.toULong().compareTo(other)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): UInt = this.toUInt().plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): UInt = this.toUInt().plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): UInt = this.toUInt().plus(other)\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = this.toULong().plus(other)\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): UInt = this.toUInt().minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): UInt = this.toUInt().minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): UInt = this.toUInt().minus(other)\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = this.toULong().minus(other)\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): UInt = this.toUInt().times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): UInt = this.toUInt().times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): UInt = this.toUInt().times(other)\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = this.toULong().times(other)\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): UInt = this.toUInt().div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): UInt = this.toUInt().div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): UInt = this.toUInt().div(other)\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.toUInt().rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.toUInt().rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = this.toUInt().rem(other)\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UShort = UShort(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): UShort = UShort(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: UShort): UIntRange = UIntRange(this.toUInt(), other.toUInt())\n\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: UShort): UShort = UShort(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: UShort): UShort = UShort(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: UShort): UShort = UShort(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): UShort = UShort(data.inv())\n\n /**\n * Converts this [UShort] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `UShort`.\n *\n * The resulting `Byte` value is represented by the least significant 8 bits of this `UShort` value.\n * Note that the resulting `Byte` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data.toByte()\n /**\n * Converts this [UShort] value to [Short].\n *\n * If this value is less than or equals to [Short.MAX_VALUE], the resulting `Short` value represents\n * the same numerical value as this `UShort`. Otherwise the result is negative.\n *\n * The resulting `Short` value has the same binary representation as this `UShort` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data\n /**\n * Converts this [UShort] value to [Int].\n *\n * The resulting `Int` value represents the same numerical value as this `UShort`.\n *\n * The least significant 16 bits of the resulting `Int` value are the same as the bits of this `UShort` value,\n * whereas the most significant 16 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data.toInt() and 0xFFFF\n /**\n * Converts this [UShort] value to [Long].\n *\n * The resulting `Long` value represents the same numerical value as this `UShort`.\n *\n * The least significant 16 bits of the resulting `Long` value are the same as the bits of this `UShort` value,\n * whereas the most significant 48 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data.toLong() and 0xFFFF\n\n /**\n * Converts this [UShort] value to [UByte].\n *\n * If this value is less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `UShort`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `UShort` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = data.toUByte()\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = this\n /**\n * Converts this [UShort] value to [UInt].\n *\n * The resulting `UInt` value represents the same numerical value as this `UShort`.\n *\n * The least significant 16 bits of the resulting `UInt` value are the same as the bits of this `UShort` value,\n * whereas the most significant 16 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = UInt(data.toInt() and 0xFFFF)\n /**\n * Converts this [UShort] value to [ULong].\n *\n * The resulting `ULong` value represents the same numerical value as this `UShort`.\n *\n * The least significant 16 bits of the resulting `ULong` value are the same as the bits of this `UShort` value,\n * whereas the most significant 48 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = ULong(data.toLong() and 0xFFFF)\n\n /**\n * Converts this [UShort] value to [Float].\n *\n * The resulting `Float` value represents the same numerical value as this `UShort`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toInt().toFloat()\n /**\n * Converts this [UShort] value to [Double].\n *\n * The resulting `Double` value represents the same numerical value as this `UShort`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = this.toInt().toDouble()\n\n public override fun toString(): String = toInt().toString()\n\n}\n\n/**\n * Converts this [Byte] value to [UShort].\n *\n * If this value is positive, the resulting `UShort` value represents the same numerical value as this `Byte`.\n *\n * The least significant 8 bits of the resulting `UShort` value are the same as the bits of this `Byte` value,\n * whereas the most significant 8 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toUShort(): UShort = UShort(this.toShort())\n/**\n * Converts this [Short] value to [UShort].\n *\n * If this value is positive, the resulting `UShort` value represents the same numerical value as this `Short`.\n *\n * The resulting `UShort` value has the same binary representation as this `Short` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toUShort(): UShort = UShort(this)\n/**\n * Converts this [Int] value to [UShort].\n *\n * If this value is positive and less than or equals to [UShort.MAX_VALUE], the resulting `UShort` value represents\n * the same numerical value as this `Int`.\n *\n * The resulting `UShort` value is represented by the least significant 16 bits of this `Int` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toUShort(): UShort = UShort(this.toShort())\n/**\n * Converts this [Long] value to [UShort].\n *\n * If this value is positive and less than or equals to [UShort.MAX_VALUE], the resulting `UShort` value represents\n * the same numerical value as this `Long`.\n *\n * The resulting `UShort` value is represented by the least significant 16 bits of this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUShort(): UShort = UShort(this.toShort())\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.ranges\n\n/**\n * A range of values of type `Char`.\n */\npublic class CharRange(start: Char, endInclusive: Char) : CharProgression(start, endInclusive, 1), ClosedRange {\n override val start: Char get() = first\n override val endInclusive: Char get() = last\n\n override fun contains(value: Char): Boolean = first <= value && value <= last\n\n override fun isEmpty(): Boolean = first > last\n\n override fun equals(other: Any?): Boolean =\n other is CharRange && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * first.toInt() + last.toInt())\n\n override fun toString(): String = \"$first..$last\"\n\n companion object {\n /** An empty range of values of type Char. */\n public val EMPTY: CharRange = CharRange(1.toChar(), 0.toChar())\n }\n}\n\n/**\n * A range of values of type `Int`.\n */\npublic class IntRange(start: Int, endInclusive: Int) : IntProgression(start, endInclusive, 1), ClosedRange {\n override val start: Int get() = first\n override val endInclusive: Int get() = last\n\n override fun contains(value: Int): Boolean = first <= value && value <= last\n\n override fun isEmpty(): Boolean = first > last\n\n override fun equals(other: Any?): Boolean =\n other is IntRange && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * first + last)\n\n override fun toString(): String = \"$first..$last\"\n\n companion object {\n /** An empty range of values of type Int. */\n public val EMPTY: IntRange = IntRange(1, 0)\n }\n}\n\n/**\n * A range of values of type `Long`.\n */\npublic class LongRange(start: Long, endInclusive: Long) : LongProgression(start, endInclusive, 1), ClosedRange {\n override val start: Long get() = first\n override val endInclusive: Long get() = last\n\n override fun contains(value: Long): Boolean = first <= value && value <= last\n\n override fun isEmpty(): Boolean = first > last\n\n override fun equals(other: Any?): Boolean =\n other is LongRange && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (first xor (first ushr 32)) + (last xor (last ushr 32))).toInt()\n\n override fun toString(): String = \"$first..$last\"\n\n companion object {\n /** An empty range of values of type Long. */\n public val EMPTY: LongRange = LongRange(1, 0)\n }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\ninternal object EmptyIterator : ListIterator {\n override fun hasNext(): Boolean = false\n override fun hasPrevious(): Boolean = false\n override fun nextIndex(): Int = 0\n override fun previousIndex(): Int = -1\n override fun next(): Nothing = throw NoSuchElementException()\n override fun previous(): Nothing = throw NoSuchElementException()\n}\n\ninternal object EmptyList : List, Serializable, RandomAccess {\n private const val serialVersionUID: Long = -7390468764508069838L\n\n override fun equals(other: Any?): Boolean = other is List<*> && other.isEmpty()\n override fun hashCode(): Int = 1\n override fun toString(): String = \"[]\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n override fun contains(element: Nothing): Boolean = false\n override fun containsAll(elements: Collection): Boolean = elements.isEmpty()\n\n override fun get(index: Int): Nothing = throw IndexOutOfBoundsException(\"Empty list doesn't contain element at index $index.\")\n override fun indexOf(element: Nothing): Int = -1\n override fun lastIndexOf(element: Nothing): Int = -1\n\n override fun iterator(): Iterator = EmptyIterator\n override fun listIterator(): ListIterator = EmptyIterator\n override fun listIterator(index: Int): ListIterator {\n if (index != 0) throw IndexOutOfBoundsException(\"Index: $index\")\n return EmptyIterator\n }\n\n override fun subList(fromIndex: Int, toIndex: Int): List {\n if (fromIndex == 0 && toIndex == 0) return this\n throw IndexOutOfBoundsException(\"fromIndex: $fromIndex, toIndex: $toIndex\")\n }\n\n private fun readResolve(): Any = EmptyList\n}\n\ninternal fun Array.asCollection(): Collection = ArrayAsCollection(this, isVarargs = false)\n\nprivate class ArrayAsCollection(val values: Array, val isVarargs: Boolean) : Collection {\n override val size: Int get() = values.size\n override fun isEmpty(): Boolean = values.isEmpty()\n override fun contains(element: T): Boolean = values.contains(element)\n override fun containsAll(elements: Collection): Boolean = elements.all { contains(it) }\n override fun iterator(): Iterator = values.iterator()\n // override hidden toArray implementation to prevent copying of values array\n public fun toArray(): Array = values.copyToArrayOfAny(isVarargs)\n}\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\npublic fun emptyList(): List = EmptyList\n\n/**\n * Returns a new read-only list of given elements. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.readOnlyList\n */\npublic fun listOf(vararg elements: T): List = if (elements.size > 0) elements.asList() else emptyList()\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\n@kotlin.internal.InlineOnly\npublic inline fun listOf(): List = emptyList()\n\n/**\n * Returns an empty new [MutableList].\n * @sample samples.collections.Collections.Lists.emptyMutableList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableListOf(): MutableList = ArrayList()\n\n/**\n * Returns an empty new [ArrayList].\n * @sample samples.collections.Collections.Lists.emptyArrayList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun arrayListOf(): ArrayList = ArrayList()\n\n/**\n * Returns a new [MutableList] with the given elements.\n * @sample samples.collections.Collections.Lists.mutableList\n */\npublic fun mutableListOf(vararg elements: T): MutableList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new [ArrayList] with the given elements.\n * @sample samples.collections.Collections.Lists.arrayList\n */\npublic fun arrayListOf(vararg elements: T): ArrayList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new read-only list either of single given element, if it is not null, or empty list if the element is null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(element: T?): List = if (element != null) listOf(element) else emptyList()\n\n/**\n * Returns a new read-only list only of those given elements, that are not null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(vararg elements: T?): List = elements.filterNotNull()\n\n/**\n * Creates a new read-only list with the specified [size], where each element is calculated by calling the specified\n * [init] function. The [init] function returns a list element given its index.\n * @sample samples.collections.Collections.Lists.readOnlyListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun List(size: Int, init: (index: Int) -> T): List = MutableList(size, init)\n\n/**\n * Creates a new mutable list with the specified [size], where each element is calculated by calling the specified\n * [init] function. The [init] function returns a list element given its index.\n * @sample samples.collections.Collections.Lists.mutableListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun MutableList(size: Int, init: (index: Int) -> T): MutableList {\n val list = ArrayList(size)\n repeat(size) { index -> list.add(init(index)) }\n return list\n}\n\n/**\n * Returns an [IntRange] of the valid indices for this collection.\n * @sample samples.collections.Collections.Collections.indicesOfCollection\n */\npublic val Collection<*>.indices: IntRange\n get() = 0..size - 1\n\n/**\n * Returns the index of the last item in the list or -1 if the list is empty.\n *\n * @sample samples.collections.Collections.Lists.lastIndexOfList\n */\npublic val List.lastIndex: Int\n get() = this.size - 1\n\n/**\n * Returns `true` if the collection is not empty.\n * @sample samples.collections.Collections.Collections.collectionIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable collection is either null or empty.\n * @sample samples.collections.Collections.Collections.collectionIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.isEmpty()\n}\n\n/**\n * Returns this Collection if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Collections.collectionOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.orEmpty(): Collection = this ?: emptyList()\n\n/**\n * Returns this List if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Lists.listOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun List?.orEmpty(): List = this ?: emptyList()\n\n/**\n * Returns this collection if it's not empty\n * or the result of calling [defaultValue] function if the collection is empty.\n *\n * @sample samples.collections.Collections.Collections.collectionIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : Collection<*>, C : R =\n if (isEmpty()) defaultValue() else this\n\n\n/**\n * Checks if all elements in the specified collection are contained in this collection.\n *\n * Allows to overcome type-safety restriction of `containsAll` that requires to pass a collection of type `Collection`.\n * @sample samples.collections.Collections.Collections.collectionContainsAll\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> Collection.containsAll(elements: Collection): Boolean = this.containsAll(elements)\n\ninternal fun List.optimizeReadOnlyList() = when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of its elements,\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchOnComparable\n * @sample samples.collections.Collections.Lists.binarySearchWithBoundaries\n */\npublic fun > List.binarySearch(element: T?, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = compareValues(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the specified [comparator],\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted according to the specified [comparator].\n * @sample samples.collections.Collections.Lists.binarySearchWithComparator\n */\npublic fun List.binarySearch(element: T, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparator.compare(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for an element having the key returned by the specified [selector] function\n * equal to the provided [key] value using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of keys of its elements.\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements with the specified [key], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element with the specified [key], if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchByKey\n */\npublic inline fun > List.binarySearchBy(\n key: K?,\n fromIndex: Int = 0,\n toIndex: Int = size,\n crossinline selector: (T) -> K?\n): Int =\n binarySearch(fromIndex, toIndex) { compareValues(selector(it), key) }\n\n// do not introduce this overload --- too rare\n//public fun List.binarySearchBy(key: K, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size(), selector: (T) -> K): Int =\n// binarySearch(fromIndex, toIndex) { comparator.compare(selector(it), key) }\n\n\n/**\n * Searches this list or its range for an element for which [comparison] function returns zero using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the provided [comparison],\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements for which [comparison] returns zero, there is no guarantee which one will be found.\n *\n * @param comparison function that compares an element of the list with the element being searched.\n *\n * @return the index of the found element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchWithComparisonFunction\n */\npublic fun List.binarySearch(fromIndex: Int = 0, toIndex: Int = size, comparison: (T) -> Int): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparison(midVal)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Checks that `from` and `to` are in\n * the range of [0..size] and throws an appropriate exception, if they aren't.\n */\nprivate fun rangeCheck(size: Int, fromIndex: Int, toIndex: Int) {\n when {\n fromIndex > toIndex -> throw IllegalArgumentException(\"fromIndex ($fromIndex) is greater than toIndex ($toIndex).\")\n fromIndex < 0 -> throw IndexOutOfBoundsException(\"fromIndex ($fromIndex) is less than zero.\")\n toIndex > size -> throw IndexOutOfBoundsException(\"toIndex ($toIndex) is greater than size ($size).\")\n }\n}\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkIndexOverflow(index: Int): Int\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkCountOverflow(count: Int): Int\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwIndexOverflow() { throw ArithmeticException(\"Index overflow has happened.\") }\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwCountOverflow() { throw ArithmeticException(\"Count overflow has happened.\") }\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MapsKt\")\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\nprivate object EmptyMap : Map, Serializable {\n private const val serialVersionUID: Long = 8246714829545688274\n\n override fun equals(other: Any?): Boolean = other is Map<*, *> && other.isEmpty()\n override fun hashCode(): Int = 0\n override fun toString(): String = \"{}\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n\n override fun containsKey(key: Any?): Boolean = false\n override fun containsValue(value: Nothing): Boolean = false\n override fun get(key: Any?): Nothing? = null\n override val entries: Set> get() = EmptySet\n override val keys: Set get() = EmptySet\n override val values: Collection get() = EmptyList\n\n private fun readResolve(): Any = EmptyMap\n}\n\n/**\n * Returns an empty read-only map of specified type.\n *\n * The returned map is serializable (JVM).\n * @sample samples.collections.Maps.Instantiation.emptyReadOnlyMap\n */\npublic fun emptyMap(): Map = @Suppress(\"UNCHECKED_CAST\") (EmptyMap as Map)\n\n/**\n * Returns a new read-only map with the specified contents, given as a list of pairs\n * where the first value is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * The returned map is serializable (JVM).\n *\n * @sample samples.collections.Maps.Instantiation.mapFromPairs\n */\npublic fun mapOf(vararg pairs: Pair): Map =\n if (pairs.size > 0) pairs.toMap(LinkedHashMap(mapCapacity(pairs.size))) else emptyMap()\n\n/**\n * Returns an empty read-only map.\n *\n * The returned map is serializable (JVM).\n * @sample samples.collections.Maps.Instantiation.emptyReadOnlyMap\n */\n@kotlin.internal.InlineOnly\npublic inline fun mapOf(): Map = emptyMap()\n\n/**\n * Returns an empty new [MutableMap].\n *\n * The returned map preserves the entry iteration order.\n * @sample samples.collections.Maps.Instantiation.emptyMutableMap\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableMapOf(): MutableMap = LinkedHashMap()\n\n/**\n * Returns a new [MutableMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * @sample samples.collections.Maps.Instantiation.mutableMapFromPairs\n * @sample samples.collections.Maps.Instantiation.emptyMutableMap\n */\npublic fun mutableMapOf(vararg pairs: Pair): MutableMap =\n LinkedHashMap(mapCapacity(pairs.size)).apply { putAll(pairs) }\n\n/**\n * Returns an empty new [HashMap].\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun hashMapOf(): HashMap = HashMap()\n\n/**\n * Returns a new [HashMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * @sample samples.collections.Maps.Instantiation.hashMapFromPairs\n */\npublic fun hashMapOf(vararg pairs: Pair): HashMap = HashMap(mapCapacity(pairs.size)).apply { putAll(pairs) }\n\n/**\n * Returns an empty new [LinkedHashMap].\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun linkedMapOf(): LinkedHashMap = LinkedHashMap()\n\n/**\n * Returns a new [LinkedHashMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * @sample samples.collections.Maps.Instantiation.linkedMapFromPairs\n */\npublic fun linkedMapOf(vararg pairs: Pair): LinkedHashMap = pairs.toMap(LinkedHashMap(mapCapacity(pairs.size)))\n\n/**\n * Calculate the initial capacity of a map, based on Guava's com.google.common.collect.Maps approach. This is equivalent\n * to the Collection constructor for HashSet, (c.size()/.75f) + 1, but provides further optimisations for very small or\n * very large sizes, allows support non-collection classes, and provides consistency for all map based class construction.\n */\n@PublishedApi\ninternal fun mapCapacity(expectedSize: Int): Int {\n if (expectedSize < 3) {\n return expectedSize + 1\n }\n if (expectedSize < INT_MAX_POWER_OF_TWO) {\n return expectedSize + expectedSize / 3\n }\n return Int.MAX_VALUE // any large value\n}\n\nprivate const val INT_MAX_POWER_OF_TWO: Int = Int.MAX_VALUE / 2 + 1\n\n/** Returns `true` if this map is not empty. */\n@kotlin.internal.InlineOnly\npublic inline fun Map.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable map is either null or empty.\n * @sample samples.collections.Maps.Usage.mapIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Map?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || isEmpty()\n}\n\n/**\n * Returns the [Map] if its not `null`, or the empty [Map] otherwise.\n *\n * @sample samples.collections.Maps.Usage.mapOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map?.orEmpty(): Map = this ?: emptyMap()\n\n/**\n * Returns this map if it's not empty\n * or the result of calling [defaultValue] function if the map is empty.\n *\n * @sample samples.collections.Maps.Usage.mapIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun M.ifEmpty(defaultValue: () -> R): R where M : Map<*, *>, M : R =\n if (isEmpty()) defaultValue() else this\n\n/**\n * Checks if the map contains the given key.\n *\n * This method allows to use the `x in map` syntax for checking whether an object is contained in the map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.contains(key: K): Boolean = containsKey(key)\n\n/**\n * Returns the value corresponding to the given [key], or `null` if such a key is not present in the map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.get(key: K): V? =\n @Suppress(\"UNCHECKED_CAST\") (this as Map).get(key)\n\n/**\n * Allows to use the index operator for storing values in a mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.set(key: K, value: V): Unit {\n put(key, value)\n}\n\n/**\n * Returns `true` if the map contains the specified [key].\n *\n * Allows to overcome type-safety restriction of `containsKey` that requires to pass a key of type `K`.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes K> Map.containsKey(key: K): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as Map).containsKey(key)\n\n/**\n * Returns `true` if the map maps one or more keys to the specified [value].\n *\n * Allows to overcome type-safety restriction of `containsValue` that requires to pass a value of type `V`.\n *\n * @sample samples.collections.Maps.Usage.containsValue\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun Map.containsValue(value: V): Boolean = this.containsValue(value)\n\n\n/**\n * Removes the specified key and its corresponding value from this map.\n *\n * @return the previous value associated with the key, or `null` if the key was not present in the map.\n\n * Allows to overcome type-safety restriction of `remove` that requires to pass a key of type `K`.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes K, V> MutableMap.remove(key: K): V? =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableMap).remove(key)\n\n/**\n * Returns the key component of the map entry.\n *\n * This method allows to use destructuring declarations when working with maps, for example:\n * ```\n * for ((key, value) in map) {\n * // do something with the key and the value\n * }\n * ```\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.Entry.component1(): K = key\n\n/**\n * Returns the value component of the map entry.\n *\n * This method allows to use destructuring declarations when working with maps, for example:\n * ```\n * for ((key, value) in map) {\n * // do something with the key and the value\n * }\n * ```\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.Entry.component2(): V = value\n\n/**\n * Converts entry to [Pair] with key being first component and value being second.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.Entry.toPair(): Pair = Pair(key, value)\n\n/**\n * Returns the value for the given key, or the result of the [defaultValue] function if there was no entry for the given key.\n *\n * @sample samples.collections.Maps.Usage.getOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.getOrElse(key: K, defaultValue: () -> V): V = get(key) ?: defaultValue()\n\n\ninternal inline fun Map.getOrElseNullable(key: K, defaultValue: () -> V): V {\n val value = get(key)\n if (value == null && !containsKey(key)) {\n return defaultValue()\n } else {\n @Suppress(\"UNCHECKED_CAST\")\n return value as V\n }\n}\n\n/**\n * Returns the value for the given [key] or throws an exception if there is no such key in the map.\n *\n * If the map was created by [withDefault], resorts to its `defaultValue` provider function\n * instead of throwing an exception.\n *\n * @throws NoSuchElementException when the map doesn't contain a value for the specified key and\n * no implicit default value was provided for that map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.getValue(key: K): V = getOrImplicitDefault(key)\n\n/**\n * Returns the value for the given key. If the key is not found in the map, calls the [defaultValue] function,\n * puts its result into the map under the given key and returns it.\n *\n * Note that the operation is not guaranteed to be atomic if the map is being modified concurrently.\n *\n * @sample samples.collections.Maps.Usage.getOrPut\n */\npublic inline fun MutableMap.getOrPut(key: K, defaultValue: () -> V): V {\n val value = get(key)\n return if (value == null) {\n val answer = defaultValue()\n put(key, answer)\n answer\n } else {\n value\n }\n}\n\n/**\n * Returns an [Iterator] over the entries in the [Map].\n *\n * @sample samples.collections.Maps.Usage.forOverEntries\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.iterator(): Iterator> = entries.iterator()\n\n/**\n * Returns a [MutableIterator] over the mutable entries in the [MutableMap].\n *\n */\n@kotlin.jvm.JvmName(\"mutableIterator\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.iterator(): MutableIterator> = entries.iterator()\n\n/**\n * Populates the given [destination] map with entries having the keys of this map and the values obtained\n * by applying the [transform] function to each entry in this [Map].\n */\npublic inline fun > Map.mapValuesTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, { it.key }, transform)\n}\n\n/**\n * Populates the given [destination] map with entries having the keys obtained\n * by applying the [transform] function to each entry in this [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n */\npublic inline fun > Map.mapKeysTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, transform, { it.value })\n}\n\n/**\n * Puts all the given [pairs] into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Array>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given collection into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Iterable>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given sequence into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Sequence>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Returns a new map with entries having the keys of this map and the values obtained by applying the [transform]\n * function to each entry in this [Map].\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapValues\n */\npublic inline fun Map.mapValues(transform: (Map.Entry) -> R): Map {\n return mapValuesTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a new Map with entries having the keys obtained by applying the [transform] function to each entry in this\n * [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapKeys\n */\npublic inline fun Map.mapKeys(transform: (Map.Entry) -> R): Map {\n return mapKeysTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a map containing all key-value pairs with keys matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterKeys\n */\npublic inline fun Map.filterKeys(predicate: (K) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.key)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n/**\n * Returns a map containing all key-value pairs with values matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterValues\n */\npublic inline fun Map.filterValues(predicate: (V) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.value)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n\n/**\n * Appends all entries matching the given [predicate] into the mutable map given as [destination] parameter.\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterTo\n */\npublic inline fun > Map.filterTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filter\n */\npublic inline fun Map.filter(predicate: (Map.Entry) -> Boolean): Map {\n return filterTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Appends all entries not matching the given [predicate] into the given [destination].\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterNotTo\n */\npublic inline fun > Map.filterNotTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (!predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs not matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterNot\n */\npublic inline fun Map.filterNot(predicate: (Map.Entry) -> Boolean): Map {\n return filterNotTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Returns a new map containing all key-value pairs from the given collection of pairs.\n *\n * The returned map preserves the entry iteration order of the original collection.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Iterable>.toMap(): Map {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(if (this is List) this[0] else iterator().next())\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n }\n }\n return toMap(LinkedHashMap()).optimizeReadOnlyMap()\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given collection of pairs.\n */\npublic fun > Iterable>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given array of pairs.\n *\n * The returned map preserves the entry iteration order of the original array.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Array>.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(this[0])\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given array of pairs.\n */\npublic fun > Array>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given sequence of pairs.\n *\n * The returned map preserves the entry iteration order of the original sequence.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Sequence>.toMap(): Map = toMap(LinkedHashMap()).optimizeReadOnlyMap()\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given sequence of pairs.\n */\npublic fun > Sequence>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new read-only map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMap()\n else -> toMutableMap()\n}\n\n/**\n * Returns a new mutable map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMutableMap(): MutableMap = LinkedHashMap(this)\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given map.\n */\n@SinceKotlin(\"1.1\")\npublic fun > Map.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Creates a new read-only map by replacing or adding an entry to this map from a given key-value [pair].\n *\n * The returned map preserves the entry iteration order of the original map.\n * The [pair] is iterated in the end if it has a unique key.\n */\npublic operator fun Map.plus(pair: Pair): Map =\n if (this.isEmpty()) mapOf(pair) else LinkedHashMap(this).apply { put(pair.first, pair.second) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given collection of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] collection.\n */\npublic operator fun Map.plus(pairs: Iterable>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given array of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] array.\n */\npublic operator fun Map.plus(pairs: Array>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given sequence of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] sequence.\n */\npublic operator fun Map.plus(pairs: Sequence>): Map =\n LinkedHashMap(this).apply { putAll(pairs) }.optimizeReadOnlyMap()\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from another [map].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those entries of another [map] that are missing in this map are iterated in the end in the order of that [map].\n */\npublic operator fun Map.plus(map: Map): Map =\n LinkedHashMap(this).apply { putAll(map) }\n\n\n/**\n * Appends or replaces the given [pair] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pair: Pair) {\n put(pair.first, pair.second)\n}\n\n/**\n * Appends or replaces all pairs from the given collection of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Iterable>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given array of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Array>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given sequence of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Sequence>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all entries from the given [map] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(map: Map) {\n putAll(map)\n}\n\n/**\n * Returns a map containing all entries of the original map except the entry with the given [key].\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(key: K): Map =\n this.toMutableMap().apply { minusAssign(key) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] collection.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Iterable): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] array.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Array): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] sequence.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Sequence): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Removes the entry with the given [key] from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(key: K) {\n remove(key)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] collection from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Iterable) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] array from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Array) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries from the keys of which are contained in the given [keys] sequence from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Sequence) {\n this.keys.removeAll(keys)\n}\n\n\n// do not expose for now @PublishedApi\ninternal fun Map.optimizeReadOnlyMap() = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMapOrSelf()\n else -> this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"SetsKt\")\n\npackage kotlin.collections\n\n\ninternal object EmptySet : Set, Serializable {\n private const val serialVersionUID: Long = 3406603774387020532\n\n override fun equals(other: Any?): Boolean = other is Set<*> && other.isEmpty()\n override fun hashCode(): Int = 0\n override fun toString(): String = \"[]\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n override fun contains(element: Nothing): Boolean = false\n override fun containsAll(elements: Collection): Boolean = elements.isEmpty()\n\n override fun iterator(): Iterator = EmptyIterator\n\n private fun readResolve(): Any = EmptySet\n}\n\n\n/**\n * Returns an empty read-only set. The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.emptyReadOnlySet\n */\npublic fun emptySet(): Set = EmptySet\n\n/**\n * Returns a new read-only set with the given elements.\n * Elements of the set are iterated in the order they were specified.\n * The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.readOnlySet\n */\npublic fun setOf(vararg elements: T): Set = if (elements.size > 0) elements.toSet() else emptySet()\n\n/**\n * Returns an empty read-only set. The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.emptyReadOnlySet\n */\n@kotlin.internal.InlineOnly\npublic inline fun setOf(): Set = emptySet()\n\n/**\n * Returns an empty new [MutableSet].\n *\n * The returned set preserves the element iteration order.\n * @sample samples.collections.Collections.Sets.emptyMutableSet\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableSetOf(): MutableSet = LinkedHashSet()\n\n/**\n * Returns a new [MutableSet] with the given elements.\n * Elements of the set are iterated in the order they were specified.\n * @sample samples.collections.Collections.Sets.mutableSet\n */\npublic fun mutableSetOf(vararg elements: T): MutableSet = elements.toCollection(LinkedHashSet(mapCapacity(elements.size)))\n\n/** Returns an empty new [HashSet]. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun hashSetOf(): HashSet = HashSet()\n\n/** Returns a new [HashSet] with the given elements. */\npublic fun hashSetOf(vararg elements: T): HashSet = elements.toCollection(HashSet(mapCapacity(elements.size)))\n\n/** Returns an empty new [LinkedHashSet]. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun linkedSetOf(): LinkedHashSet = LinkedHashSet()\n\n/**\n * Returns a new [LinkedHashSet] with the given elements.\n * Elements of the set are iterated in the order they were specified.\n */\npublic fun linkedSetOf(vararg elements: T): LinkedHashSet = elements.toCollection(LinkedHashSet(mapCapacity(elements.size)))\n\n/** Returns this Set if it's not `null` and the empty set otherwise. */\n@kotlin.internal.InlineOnly\npublic inline fun Set?.orEmpty(): Set = this ?: emptySet()\n\ninternal fun Set.optimizeReadOnlySet() = when (size) {\n 0 -> emptySet()\n 1 -> setOf(iterator().next())\n else -> this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n@file:Suppress(\"PLATFORM_CLASS_MAPPED_TO_KOTLIN\")\n\npackage kotlin.text\n\n/**\n * Parses the string as a signed [Byte] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toByteOrNull(): Byte? = toByteOrNull(radix = 10)\n\n/**\n * Parses the string as a signed [Byte] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toByteOrNull(radix: Int): Byte? {\n val int = this.toIntOrNull(radix) ?: return null\n if (int < Byte.MIN_VALUE || int > Byte.MAX_VALUE) return null\n return int.toByte()\n}\n\n/**\n * Parses the string as a [Short] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toShortOrNull(): Short? = toShortOrNull(radix = 10)\n\n/**\n * Parses the string as a [Short] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toShortOrNull(radix: Int): Short? {\n val int = this.toIntOrNull(radix) ?: return null\n if (int < Short.MIN_VALUE || int > Short.MAX_VALUE) return null\n return int.toShort()\n}\n\n/**\n * Parses the string as an [Int] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toIntOrNull(): Int? = toIntOrNull(radix = 10)\n\n/**\n * Parses the string as an [Int] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toIntOrNull(radix: Int): Int? {\n checkRadix(radix)\n\n val length = this.length\n if (length == 0) return null\n\n val start: Int\n val isNegative: Boolean\n val limit: Int\n\n val firstChar = this[0]\n if (firstChar < '0') { // Possible leading sign\n if (length == 1) return null // non-digit (possible sign) only, no digits after\n\n start = 1\n\n if (firstChar == '-') {\n isNegative = true\n limit = Int.MIN_VALUE\n } else if (firstChar == '+') {\n isNegative = false\n limit = -Int.MAX_VALUE\n } else\n return null\n } else {\n start = 0\n isNegative = false\n limit = -Int.MAX_VALUE\n }\n\n\n val limitBeforeMul = limit / radix\n var result = 0\n for (i in start..(length - 1)) {\n val digit = digitOf(this[i], radix)\n\n if (digit < 0) return null\n if (result < limitBeforeMul) return null\n\n result *= radix\n\n if (result < limit + digit) return null\n\n result -= digit\n }\n\n return if (isNegative) result else -result\n}\n\n/**\n * Parses the string as a [Long] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toLongOrNull(): Long? = toLongOrNull(radix = 10)\n\n/**\n * Parses the string as a [Long] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.1\")\npublic fun String.toLongOrNull(radix: Int): Long? {\n checkRadix(radix)\n\n val length = this.length\n if (length == 0) return null\n\n val start: Int\n val isNegative: Boolean\n val limit: Long\n\n val firstChar = this[0]\n if (firstChar < '0') { // Possible leading sign\n if (length == 1) return null // non-digit (possible sign) only, no digits after\n\n start = 1\n\n if (firstChar == '-') {\n isNegative = true\n limit = Long.MIN_VALUE\n } else if (firstChar == '+') {\n isNegative = false\n limit = -Long.MAX_VALUE\n } else\n return null\n } else {\n start = 0\n isNegative = false\n limit = -Long.MAX_VALUE\n }\n\n\n val limitBeforeMul = limit / radix\n var result = 0L\n for (i in start..(length - 1)) {\n val digit = digitOf(this[i], radix)\n\n if (digit < 0) return null\n if (result < limitBeforeMul) return null\n\n result *= radix\n\n if (result < limit + digit) return null\n\n result -= digit\n }\n\n return if (isNegative) result else -result\n}\n\n\ninternal fun numberFormatError(input: String): Nothing = throw NumberFormatException(\"Invalid number format: '$input'\")\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n@file:kotlin.jvm.JvmName(\"UnsignedKt\")\n@file:UseExperimental(ExperimentalUnsignedTypes::class)\npackage kotlin\n\n@PublishedApi\ninternal fun uintCompare(v1: Int, v2: Int): Int = (v1 xor Int.MIN_VALUE).compareTo(v2 xor Int.MIN_VALUE)\n@PublishedApi\ninternal fun ulongCompare(v1: Long, v2: Long): Int = (v1 xor Long.MIN_VALUE).compareTo(v2 xor Long.MIN_VALUE)\n\n@PublishedApi\ninternal fun uintDivide(v1: UInt, v2: UInt): UInt = (v1.toLong() / v2.toLong()).toUInt()\n@PublishedApi\ninternal fun uintRemainder(v1: UInt, v2: UInt): UInt = (v1.toLong() % v2.toLong()).toUInt()\n\n// Division and remainder are based on Guava's UnsignedLongs implementation\n// Copyright 2011 The Guava Authors\n\n@PublishedApi\ninternal fun ulongDivide(v1: ULong, v2: ULong): ULong {\n val dividend = v1.toLong()\n val divisor = v2.toLong()\n if (divisor < 0) { // i.e., divisor >= 2^63:\n return if (v1 < v2) ULong(0) else ULong(1)\n }\n\n // Optimization - use signed division if both dividend and divisor < 2^63\n if (dividend >= 0) {\n return ULong(dividend / divisor)\n }\n\n // Otherwise, approximate the quotient, check, and correct if necessary.\n val quotient = ((dividend ushr 1) / divisor) shl 1\n val rem = dividend - quotient * divisor\n return ULong(quotient + if (ULong(rem) >= ULong(divisor)) 1 else 0)\n\n}\n\n@PublishedApi\ninternal fun ulongRemainder(v1: ULong, v2: ULong): ULong {\n val dividend = v1.toLong()\n val divisor = v2.toLong()\n if (divisor < 0) { // i.e., divisor >= 2^63:\n return if (v1 < v2) {\n v1 // dividend < divisor\n } else {\n v1 - v2 // dividend >= divisor\n }\n }\n\n // Optimization - use signed modulus if both dividend and divisor < 2^63\n if (dividend >= 0) {\n return ULong(dividend % divisor)\n }\n\n // Otherwise, approximate the quotient, check, and correct if necessary.\n val quotient = ((dividend ushr 1) / divisor) shl 1\n val rem = dividend - quotient * divisor\n return ULong(rem - if (ULong(rem) >= ULong(divisor)) divisor else 0)\n}\n\n@PublishedApi\ninternal fun doubleToUInt(v: Double): UInt = when {\n v.isNaN() -> 0u\n v <= UInt.MIN_VALUE.toDouble() -> UInt.MIN_VALUE\n v >= UInt.MAX_VALUE.toDouble() -> UInt.MAX_VALUE\n v <= Int.MAX_VALUE -> v.toInt().toUInt()\n else -> (v - Int.MAX_VALUE).toInt().toUInt() + Int.MAX_VALUE.toUInt() // Int.MAX_VALUE < v < UInt.MAX_VALUE\n}\n\n@PublishedApi\ninternal fun doubleToULong(v: Double): ULong = when {\n v.isNaN() -> 0u\n v <= ULong.MIN_VALUE.toDouble() -> ULong.MIN_VALUE\n v >= ULong.MAX_VALUE.toDouble() -> ULong.MAX_VALUE\n v < Long.MAX_VALUE -> v.toLong().toULong()\n\n // Real values from Long.MAX_VALUE to (Long.MAX_VALUE + 1) are not representable in Double, so don't handle them.\n else -> (v - 9223372036854775808.0).toLong().toULong() + 9223372036854775808uL // Long.MAX_VALUE + 1 < v < ULong.MAX_VALUE\n}\n\n\n@PublishedApi\ninternal fun uintToDouble(v: Int): Double = (v and Int.MAX_VALUE).toDouble() + (v ushr 31 shl 30).toDouble() * 2\n\n@PublishedApi\ninternal fun ulongToDouble(v: Long): Double = (v ushr 11).toDouble() * 2048 + (v and 2047)\n\n\ninternal fun ulongToString(v: Long): String = ulongToString(v, 10)\n\ninternal fun ulongToString(v: Long, base: Int): String {\n if (v >= 0) return v.toString(base)\n\n var quotient = ((v ushr 1) / base) shl 1\n var rem = v - quotient * base\n if (rem >= base) {\n rem -= base\n quotient += 1\n }\n return quotient.toString(base) + rem.toString(base)\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\n/**\n * Given an [iterator] function constructs an [Iterable] instance that returns values through the [Iterator]\n * provided by that function.\n * @sample samples.collections.Iterables.Building.iterable\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable(crossinline iterator: () -> Iterator): Iterable = object : Iterable {\n override fun iterator(): Iterator = iterator()\n}\n\n/**\n * A wrapper over another [Iterable] (or any other object that can produce an [Iterator]) that returns\n * an indexing iterator.\n */\ninternal class IndexingIterable(private val iteratorFactory: () -> Iterator) : Iterable> {\n override fun iterator(): Iterator> = IndexingIterator(iteratorFactory())\n}\n\n\n/**\n * Returns the size of this iterable if it is known, or `null` otherwise.\n */\n@PublishedApi\ninternal fun Iterable.collectionSizeOrNull(): Int? = if (this is Collection<*>) this.size else null\n\n/**\n * Returns the size of this iterable if it is known, or the specified [default] value otherwise.\n */\n@PublishedApi\ninternal fun Iterable.collectionSizeOrDefault(default: Int): Int = if (this is Collection<*>) this.size else default\n\n/** Returns true when it's safe to convert this collection to a set without changing contains method behavior. */\nprivate fun Collection.safeToConvertToSet() = size > 2 && this is ArrayList\n\n/** Converts this collection to a set, when it's worth so and it doesn't change contains method behavior. */\ninternal fun Iterable.convertToSetForSetOperationWith(source: Iterable): Collection =\n when (this) {\n is Set -> this\n is Collection ->\n when {\n source is Collection && source.size < 2 -> this\n else -> if (this.safeToConvertToSet()) toHashSet() else this\n }\n else -> toHashSet()\n }\n\n/** Converts this collection to a set, when it's worth so and it doesn't change contains method behavior. */\ninternal fun Iterable.convertToSetForSetOperation(): Collection =\n when (this) {\n is Set -> this\n is Collection -> if (this.safeToConvertToSet()) toHashSet() else this\n else -> toHashSet()\n }\n\n\n/**\n * Returns a single list of all elements from all collections in the given collection.\n * @sample samples.collections.Iterables.Operations.flattenIterable\n */\npublic fun Iterable>.flatten(): List {\n val result = ArrayList()\n for (element in this) {\n result.addAll(element)\n }\n return result\n}\n\n/**\n * Returns a pair of lists, where\n * *first* list is built from the first values of each pair from this collection,\n * *second* list is built from the second values of each pair from this collection.\n * @sample samples.collections.Iterables.Operations.unzipIterable\n */\npublic fun Iterable>.unzip(): Pair, List> {\n val expectedSize = collectionSizeOrDefault(10)\n val listT = ArrayList(expectedSize)\n val listR = ArrayList(expectedSize)\n for (pair in this) {\n listT.add(pair.first)\n listR.add(pair.second)\n }\n return listT to listR\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"SequencesKt\")\n\npackage kotlin.sequences\n\n/**\n * Given an [iterator] function constructs a [Sequence] that returns values through the [Iterator]\n * provided by that function.\n * The values are evaluated lazily, and the sequence is potentially infinite.\n *\n * @sample samples.collections.Sequences.Building.sequenceFromIterator\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence(crossinline iterator: () -> Iterator): Sequence = object : Sequence {\n override fun iterator(): Iterator = iterator()\n}\n\n/**\n * Creates a sequence that returns all elements from this iterator. The sequence is constrained to be iterated only once.\n *\n * @sample samples.collections.Sequences.Building.sequenceFromIterator\n */\npublic fun Iterator.asSequence(): Sequence = Sequence { this }.constrainOnce()\n\n/**\n * Creates a sequence that returns the specified values.\n *\n * @sample samples.collections.Sequences.Building.sequenceOfValues\n */\npublic fun sequenceOf(vararg elements: T): Sequence = if (elements.isEmpty()) emptySequence() else elements.asSequence()\n\n/**\n * Returns an empty sequence.\n */\npublic fun emptySequence(): Sequence = EmptySequence\n\nprivate object EmptySequence : Sequence, DropTakeSequence {\n override fun iterator(): Iterator = EmptyIterator\n override fun drop(n: Int) = EmptySequence\n override fun take(n: Int) = EmptySequence\n}\n\n/**\n * Returns this sequence if it's not `null` and the empty sequence otherwise.\n * @sample samples.collections.Sequences.Usage.sequenceOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Sequence?.orEmpty(): Sequence = this ?: emptySequence()\n\n\n/**\n * Returns a sequence that iterates through the elements either of this sequence\n * or, if this sequence turns out to be empty, of the sequence returned by [defaultValue] function.\n *\n * @sample samples.collections.Sequences.Usage.sequenceIfEmpty\n */\n@SinceKotlin(\"1.3\")\npublic fun Sequence.ifEmpty(defaultValue: () -> Sequence): Sequence = sequence {\n val iterator = this@ifEmpty.iterator()\n if (iterator.hasNext()) {\n yieldAll(iterator)\n } else {\n yieldAll(defaultValue())\n }\n}\n\n/**\n * Returns a sequence of all elements from all sequences in this sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence>.flatten(): Sequence = flatten { it.iterator() }\n\n/**\n * Returns a sequence of all elements from all iterables in this sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n */\n@kotlin.jvm.JvmName(\"flattenSequenceOfIterable\")\npublic fun Sequence>.flatten(): Sequence = flatten { it.iterator() }\n\nprivate fun Sequence.flatten(iterator: (T) -> Iterator): Sequence {\n if (this is TransformingSequence<*, *>) {\n return (this as TransformingSequence<*, T>).flatten(iterator)\n }\n return FlatteningSequence(this, { it }, iterator)\n}\n\n/**\n * Returns a pair of lists, where\n * *first* list is built from the first values of each pair from this sequence,\n * *second* list is built from the second values of each pair from this sequence.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence>.unzip(): Pair, List> {\n val listT = ArrayList()\n val listR = ArrayList()\n for (pair in this) {\n listT.add(pair.first)\n listR.add(pair.second)\n }\n return listT to listR\n}\n\n/**\n * A sequence that returns the values from the underlying [sequence] that either match or do not match\n * the specified [predicate].\n *\n * @param sendWhen If `true`, values for which the predicate returns `true` are returned. Otherwise,\n * values for which the predicate returns `false` are returned\n */\ninternal class FilteringSequence(\n private val sequence: Sequence,\n private val sendWhen: Boolean = true,\n private val predicate: (T) -> Boolean\n) : Sequence {\n\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n var nextState: Int = -1 // -1 for unknown, 0 for done, 1 for continue\n var nextItem: T? = null\n\n private fun calcNext() {\n while (iterator.hasNext()) {\n val item = iterator.next()\n if (predicate(item) == sendWhen) {\n nextItem = item\n nextState = 1\n return\n }\n }\n nextState = 0\n }\n\n override fun next(): T {\n if (nextState == -1)\n calcNext()\n if (nextState == 0)\n throw NoSuchElementException()\n val result = nextItem\n nextItem = null\n nextState = -1\n @Suppress(\"UNCHECKED_CAST\")\n return result as T\n }\n\n override fun hasNext(): Boolean {\n if (nextState == -1)\n calcNext()\n return nextState == 1\n }\n }\n}\n\n/**\n * A sequence which returns the results of applying the given [transformer] function to the values\n * in the underlying [sequence].\n */\n\ninternal class TransformingSequence\nconstructor(private val sequence: Sequence, private val transformer: (T) -> R) : Sequence {\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n override fun next(): R {\n return transformer(iterator.next())\n }\n\n override fun hasNext(): Boolean {\n return iterator.hasNext()\n }\n }\n\n internal fun flatten(iterator: (R) -> Iterator): Sequence {\n return FlatteningSequence(sequence, transformer, iterator)\n }\n}\n\n/**\n * A sequence which returns the results of applying the given [transformer] function to the values\n * in the underlying [sequence], where the transformer function takes the index of the value in the underlying\n * sequence along with the value itself.\n */\ninternal class TransformingIndexedSequence\nconstructor(private val sequence: Sequence, private val transformer: (Int, T) -> R) : Sequence {\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n var index = 0\n override fun next(): R {\n return transformer(checkIndexOverflow(index++), iterator.next())\n }\n\n override fun hasNext(): Boolean {\n return iterator.hasNext()\n }\n }\n}\n\n/**\n * A sequence which combines values from the underlying [sequence] with their indices and returns them as\n * [IndexedValue] objects.\n */\ninternal class IndexingSequence\nconstructor(private val sequence: Sequence) : Sequence> {\n override fun iterator(): Iterator> = object : Iterator> {\n val iterator = sequence.iterator()\n var index = 0\n override fun next(): IndexedValue {\n return IndexedValue(checkIndexOverflow(index++), iterator.next())\n }\n\n override fun hasNext(): Boolean {\n return iterator.hasNext()\n }\n }\n}\n\n/**\n * A sequence which takes the values from two parallel underlying sequences, passes them to the given\n * [transform] function and returns the values returned by that function. The sequence stops returning\n * values as soon as one of the underlying sequences stops returning values.\n */\ninternal class MergingSequence\nconstructor(\n private val sequence1: Sequence,\n private val sequence2: Sequence,\n private val transform: (T1, T2) -> V\n) : Sequence {\n override fun iterator(): Iterator = object : Iterator {\n val iterator1 = sequence1.iterator()\n val iterator2 = sequence2.iterator()\n override fun next(): V {\n return transform(iterator1.next(), iterator2.next())\n }\n\n override fun hasNext(): Boolean {\n return iterator1.hasNext() && iterator2.hasNext()\n }\n }\n}\n\ninternal class FlatteningSequence\nconstructor(\n private val sequence: Sequence,\n private val transformer: (T) -> R,\n private val iterator: (R) -> Iterator\n) : Sequence {\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n var itemIterator: Iterator? = null\n\n override fun next(): E {\n if (!ensureItemIterator())\n throw NoSuchElementException()\n return itemIterator!!.next()\n }\n\n override fun hasNext(): Boolean {\n return ensureItemIterator()\n }\n\n private fun ensureItemIterator(): Boolean {\n if (itemIterator?.hasNext() == false)\n itemIterator = null\n\n while (itemIterator == null) {\n if (!iterator.hasNext()) {\n return false\n } else {\n val element = iterator.next()\n val nextItemIterator = iterator(transformer(element))\n if (nextItemIterator.hasNext()) {\n itemIterator = nextItemIterator\n return true\n }\n }\n }\n return true\n }\n }\n}\n\n/**\n * A sequence that supports drop(n) and take(n) operations\n */\ninternal interface DropTakeSequence : Sequence {\n fun drop(n: Int): Sequence\n fun take(n: Int): Sequence\n}\n\n/**\n * A sequence that skips [startIndex] values from the underlying [sequence]\n * and stops returning values right before [endIndex], i.e. stops at `endIndex - 1`\n */\ninternal class SubSequence(\n private val sequence: Sequence,\n private val startIndex: Int,\n private val endIndex: Int\n) : Sequence, DropTakeSequence {\n\n init {\n require(startIndex >= 0) { \"startIndex should be non-negative, but is $startIndex\" }\n require(endIndex >= 0) { \"endIndex should be non-negative, but is $endIndex\" }\n require(endIndex >= startIndex) { \"endIndex should be not less than startIndex, but was $endIndex < $startIndex\" }\n }\n\n private val count: Int get() = endIndex - startIndex\n\n override fun drop(n: Int): Sequence = if (n >= count) emptySequence() else SubSequence(sequence, startIndex + n, endIndex)\n override fun take(n: Int): Sequence = if (n >= count) this else SubSequence(sequence, startIndex, startIndex + n)\n\n override fun iterator() = object : Iterator {\n\n val iterator = sequence.iterator()\n var position = 0\n\n // Shouldn't be called from constructor to avoid premature iteration\n private fun drop() {\n while (position < startIndex && iterator.hasNext()) {\n iterator.next()\n position++\n }\n }\n\n override fun hasNext(): Boolean {\n drop()\n return (position < endIndex) && iterator.hasNext()\n }\n\n override fun next(): T {\n drop()\n if (position >= endIndex)\n throw NoSuchElementException()\n position++\n return iterator.next()\n }\n }\n}\n\n/**\n * A sequence that returns at most [count] values from the underlying [sequence], and stops returning values\n * as soon as that count is reached.\n */\ninternal class TakeSequence(\n private val sequence: Sequence,\n private val count: Int\n) : Sequence, DropTakeSequence {\n\n init {\n require(count >= 0) { \"count must be non-negative, but was $count.\" }\n }\n\n override fun drop(n: Int): Sequence = if (n >= count) emptySequence() else SubSequence(sequence, n, count)\n override fun take(n: Int): Sequence = if (n >= count) this else TakeSequence(sequence, n)\n\n override fun iterator(): Iterator = object : Iterator {\n var left = count\n val iterator = sequence.iterator()\n\n override fun next(): T {\n if (left == 0)\n throw NoSuchElementException()\n left--\n return iterator.next()\n }\n\n override fun hasNext(): Boolean {\n return left > 0 && iterator.hasNext()\n }\n }\n}\n\n/**\n * A sequence that returns values from the underlying [sequence] while the [predicate] function returns\n * `true`, and stops returning values once the function returns `false` for the next element.\n */\ninternal class TakeWhileSequence\nconstructor(\n private val sequence: Sequence,\n private val predicate: (T) -> Boolean\n) : Sequence {\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n var nextState: Int = -1 // -1 for unknown, 0 for done, 1 for continue\n var nextItem: T? = null\n\n private fun calcNext() {\n if (iterator.hasNext()) {\n val item = iterator.next()\n if (predicate(item)) {\n nextState = 1\n nextItem = item\n return\n }\n }\n nextState = 0\n }\n\n override fun next(): T {\n if (nextState == -1)\n calcNext() // will change nextState\n if (nextState == 0)\n throw NoSuchElementException()\n @Suppress(\"UNCHECKED_CAST\")\n val result = nextItem as T\n\n // Clean next to avoid keeping reference on yielded instance\n nextItem = null\n nextState = -1\n return result\n }\n\n override fun hasNext(): Boolean {\n if (nextState == -1)\n calcNext() // will change nextState\n return nextState == 1\n }\n }\n}\n\n/**\n * A sequence that skips the specified number of values from the underlying [sequence] and returns\n * all values after that.\n */\ninternal class DropSequence(\n private val sequence: Sequence,\n private val count: Int\n) : Sequence, DropTakeSequence {\n init {\n require(count >= 0) { \"count must be non-negative, but was $count.\" }\n }\n\n override fun drop(n: Int): Sequence = (count + n).let { n1 -> if (n1 < 0) DropSequence(this, n) else DropSequence(sequence, n1) }\n override fun take(n: Int): Sequence = (count + n).let { n1 -> if (n1 < 0) TakeSequence(this, n) else SubSequence(sequence, count, n1) }\n\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n var left = count\n\n // Shouldn't be called from constructor to avoid premature iteration\n private fun drop() {\n while (left > 0 && iterator.hasNext()) {\n iterator.next()\n left--\n }\n }\n\n override fun next(): T {\n drop()\n return iterator.next()\n }\n\n override fun hasNext(): Boolean {\n drop()\n return iterator.hasNext()\n }\n }\n}\n\n/**\n * A sequence that skips the values from the underlying [sequence] while the given [predicate] returns `true` and returns\n * all values after that.\n */\ninternal class DropWhileSequence\nconstructor(\n private val sequence: Sequence,\n private val predicate: (T) -> Boolean\n) : Sequence {\n\n override fun iterator(): Iterator = object : Iterator {\n val iterator = sequence.iterator()\n var dropState: Int = -1 // -1 for not dropping, 1 for nextItem, 0 for normal iteration\n var nextItem: T? = null\n\n private fun drop() {\n while (iterator.hasNext()) {\n val item = iterator.next()\n if (!predicate(item)) {\n nextItem = item\n dropState = 1\n return\n }\n }\n dropState = 0\n }\n\n override fun next(): T {\n if (dropState == -1)\n drop()\n\n if (dropState == 1) {\n @Suppress(\"UNCHECKED_CAST\")\n val result = nextItem as T\n nextItem = null\n dropState = 0\n return result\n }\n return iterator.next()\n }\n\n override fun hasNext(): Boolean {\n if (dropState == -1)\n drop()\n return dropState == 1 || iterator.hasNext()\n }\n }\n}\n\ninternal class DistinctSequence(private val source: Sequence, private val keySelector: (T) -> K) : Sequence {\n override fun iterator(): Iterator = DistinctIterator(source.iterator(), keySelector)\n}\n\nprivate class DistinctIterator(private val source: Iterator, private val keySelector: (T) -> K) : AbstractIterator() {\n private val observed = HashSet()\n\n override fun computeNext() {\n while (source.hasNext()) {\n val next = source.next()\n val key = keySelector(next)\n\n if (observed.add(key)) {\n setNext(next)\n return\n }\n }\n\n done()\n }\n}\n\n\nprivate class GeneratorSequence(private val getInitialValue: () -> T?, private val getNextValue: (T) -> T?) : Sequence {\n override fun iterator(): Iterator = object : Iterator {\n var nextItem: T? = null\n var nextState: Int = -2 // -2 for initial unknown, -1 for next unknown, 0 for done, 1 for continue\n\n private fun calcNext() {\n nextItem = if (nextState == -2) getInitialValue() else getNextValue(nextItem!!)\n nextState = if (nextItem == null) 0 else 1\n }\n\n override fun next(): T {\n if (nextState < 0)\n calcNext()\n\n if (nextState == 0)\n throw NoSuchElementException()\n val result = nextItem as T\n // Do not clean nextItem (to avoid keeping reference on yielded instance) -- need to keep state for getNextValue\n nextState = -1\n return result\n }\n\n override fun hasNext(): Boolean {\n if (nextState < 0)\n calcNext()\n return nextState == 1\n }\n }\n}\n\n/**\n * Returns a wrapper sequence that provides values of this sequence, but ensures it can be iterated only one time.\n *\n * The operation is _intermediate_ and _stateless_.\n *\n * [IllegalStateException] is thrown on iterating the returned sequence from the second time.\n *\n */\npublic fun Sequence.constrainOnce(): Sequence {\n // as? does not work in js\n //return this as? ConstrainedOnceSequence ?: ConstrainedOnceSequence(this)\n return if (this is ConstrainedOnceSequence) this else ConstrainedOnceSequence(this)\n}\n\n\n/**\n * Returns a sequence which invokes the function to calculate the next value on each iteration until the function returns `null`.\n *\n * The returned sequence is constrained to be iterated only once.\n *\n * @see constrainOnce\n * @see kotlin.sequences.sequence\n *\n * @sample samples.collections.Sequences.Building.generateSequence\n */\npublic fun generateSequence(nextFunction: () -> T?): Sequence {\n return GeneratorSequence(nextFunction, { nextFunction() }).constrainOnce()\n}\n\n/**\n * Returns a sequence defined by the starting value [seed] and the function [nextFunction],\n * which is invoked to calculate the next value based on the previous one on each iteration.\n *\n * The sequence produces values until it encounters first `null` value.\n * If [seed] is `null`, an empty sequence is produced.\n *\n * The sequence can be iterated multiple times, each time starting with [seed].\n *\n * @see kotlin.sequences.sequence\n *\n * @sample samples.collections.Sequences.Building.generateSequenceWithSeed\n */\n@kotlin.internal.LowPriorityInOverloadResolution\npublic fun generateSequence(seed: T?, nextFunction: (T) -> T?): Sequence =\n if (seed == null)\n EmptySequence\n else\n GeneratorSequence({ seed }, nextFunction)\n\n/**\n * Returns a sequence defined by the function [seedFunction], which is invoked to produce the starting value,\n * and the [nextFunction], which is invoked to calculate the next value based on the previous one on each iteration.\n *\n * The sequence produces values until it encounters first `null` value.\n * If [seedFunction] returns `null`, an empty sequence is produced.\n *\n * The sequence can be iterated multiple times.\n *\n * @see kotlin.sequences.sequence\n *\n * @sample samples.collections.Sequences.Building.generateSequenceWithLazySeed\n */\npublic fun generateSequence(seedFunction: () -> T?, nextFunction: (T) -> T?): Sequence =\n GeneratorSequence(seedFunction, nextFunction)\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"PreconditionsKt\")\n\npackage kotlin\n\nimport kotlin.contracts.contract\n\n/**\n * Throws an [IllegalArgumentException] if the [value] is false.\n *\n * @sample samples.misc.Preconditions.failRequireWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun require(value: Boolean): Unit {\n contract {\n returns() implies value\n }\n require(value) { \"Failed requirement.\" }\n}\n\n/**\n * Throws an [IllegalArgumentException] with the result of calling [lazyMessage] if the [value] is false.\n *\n * @sample samples.misc.Preconditions.failRequireWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun require(value: Boolean, lazyMessage: () -> Any): Unit {\n contract {\n returns() implies value\n }\n if (!value) {\n val message = lazyMessage()\n throw IllegalArgumentException(message.toString())\n }\n}\n\n/**\n * Throws an [IllegalArgumentException] if the [value] is null. Otherwise returns the not null value.\n */\n@kotlin.internal.InlineOnly\npublic inline fun requireNotNull(value: T?): T {\n contract {\n returns() implies (value != null)\n }\n return requireNotNull(value) { \"Required value was null.\" }\n}\n\n/**\n * Throws an [IllegalArgumentException] with the result of calling [lazyMessage] if the [value] is null. Otherwise\n * returns the not null value.\n *\n * @sample samples.misc.Preconditions.failRequireWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun requireNotNull(value: T?, lazyMessage: () -> Any): T {\n contract {\n returns() implies (value != null)\n }\n\n if (value == null) {\n val message = lazyMessage()\n throw IllegalArgumentException(message.toString())\n } else {\n return value\n }\n}\n\n/**\n * Throws an [IllegalStateException] if the [value] is false.\n *\n * @sample samples.misc.Preconditions.failCheckWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun check(value: Boolean): Unit {\n contract {\n returns() implies value\n }\n check(value) { \"Check failed.\" }\n}\n\n/**\n * Throws an [IllegalStateException] with the result of calling [lazyMessage] if the [value] is false.\n *\n * @sample samples.misc.Preconditions.failCheckWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun check(value: Boolean, lazyMessage: () -> Any): Unit {\n contract {\n returns() implies value\n }\n if (!value) {\n val message = lazyMessage()\n throw IllegalStateException(message.toString())\n }\n}\n\n/**\n * Throws an [IllegalStateException] if the [value] is null. Otherwise\n * returns the not null value.\n *\n * @sample samples.misc.Preconditions.failCheckWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun checkNotNull(value: T?): T {\n contract {\n returns() implies (value != null)\n }\n return checkNotNull(value) { \"Required value was null.\" }\n}\n\n/**\n * Throws an [IllegalStateException] with the result of calling [lazyMessage] if the [value] is null. Otherwise\n * returns the not null value.\n *\n * @sample samples.misc.Preconditions.failCheckWithLazyMessage\n */\n@kotlin.internal.InlineOnly\npublic inline fun checkNotNull(value: T?, lazyMessage: () -> Any): T {\n contract {\n returns() implies (value != null)\n }\n\n if (value == null) {\n val message = lazyMessage()\n throw IllegalStateException(message.toString())\n } else {\n return value\n }\n}\n\n\n/**\n * Throws an [IllegalStateException] with the given [message].\n *\n * @sample samples.misc.Preconditions.failWithError\n */\n@kotlin.internal.InlineOnly\npublic inline fun error(message: Any): Nothing = throw IllegalStateException(message.toString())\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.js.*\nimport primitiveArrayConcat\nimport withType\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun Array.elementAt(index: Int): T {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun ByteArray.elementAt(index: Int): Byte {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun ShortArray.elementAt(index: Int): Short {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun IntArray.elementAt(index: Int): Int {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun LongArray.elementAt(index: Int): Long {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun FloatArray.elementAt(index: Int): Float {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun DoubleArray.elementAt(index: Int): Double {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun BooleanArray.elementAt(index: Int): Boolean {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun CharArray.elementAt(index: Int): Char {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic actual fun Array.asList(): List {\n return ArrayList(this.unsafeCast>())\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun ByteArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun ShortArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun IntArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun LongArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun FloatArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun DoubleArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun BooleanArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic actual fun CharArray.asList(): List {\n return object : AbstractList(), RandomAccess {\n override val size: Int get() = this@asList.size\n override fun isEmpty(): Boolean = this@asList.isEmpty()\n override fun contains(element: Char): Boolean = this@asList.contains(element)\n override fun get(index: Int): Char {\n AbstractList.checkElementIndex(index, size)\n return this@asList[index]\n }\n override fun indexOf(element: Char): Int {\n if ((element as Any?) !is Char) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: Char): Int {\n if ((element as Any?) !is Char) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n/**\n * Returns `true` if the two specified arrays are *deeply* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * If two corresponding elements are nested arrays, they are also compared deeply.\n * If any of arrays contains itself on any nesting level the behavior is undefined.\n * \n * The elements of other types are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayDeepEquals\")\npublic actual infix fun Array.contentDeepEquals(other: Array): Boolean {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level the behavior is undefined.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayDeepHashCode\")\npublic actual fun Array.contentDeepHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of this array as if it is a [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level that reference\n * is rendered as `\"[...]\"` to prevent recursion.\n * \n * @sample samples.collections.Arrays.ContentOperations.contentDeepToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayDeepToString\")\npublic actual fun Array.contentDeepToString(): String {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun Array.contentEquals(other: Array): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun ByteArray.contentEquals(other: ByteArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun ShortArray.contentEquals(other: ShortArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun IntArray.contentEquals(other: IntArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun LongArray.contentEquals(other: LongArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun FloatArray.contentEquals(other: FloatArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun DoubleArray.contentEquals(other: DoubleArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun BooleanArray.contentEquals(other: BooleanArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun CharArray.contentEquals(other: CharArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun Array.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun ByteArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun ShortArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun IntArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun LongArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun FloatArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun DoubleArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun BooleanArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun CharArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun Array.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun ByteArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun ShortArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun IntArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun LongArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun FloatArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun DoubleArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun BooleanArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun CharArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun Array.copyInto(destination: Array, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): Array {\n arrayCopy(this, destination, destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun ByteArray.copyInto(destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ByteArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun ShortArray.copyInto(destination: ShortArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ShortArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun IntArray.copyInto(destination: IntArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): IntArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun LongArray.copyInto(destination: LongArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): LongArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun FloatArray.copyInto(destination: FloatArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): FloatArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun DoubleArray.copyInto(destination: DoubleArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): DoubleArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun BooleanArray.copyInto(destination: BooleanArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): BooleanArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun CharArray.copyInto(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): CharArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline fun Array.copyOf(): Array {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun ByteArray.copyOf(): ByteArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun ShortArray.copyOf(): ShortArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun IntArray.copyOf(): IntArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic actual fun LongArray.copyOf(): LongArray {\n return withType(\"LongArray\", this.asDynamic().slice())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun FloatArray.copyOf(): FloatArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun DoubleArray.copyOf(): DoubleArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic actual fun BooleanArray.copyOf(): BooleanArray {\n return withType(\"BooleanArray\", this.asDynamic().slice())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic actual fun CharArray.copyOf(): CharArray {\n return withType(\"CharArray\", this.asDynamic().slice())\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun ByteArray.copyOf(newSize: Int): ByteArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, ByteArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun ShortArray.copyOf(newSize: Int): ShortArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, ShortArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun IntArray.copyOf(newSize: Int): IntArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, IntArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun LongArray.copyOf(newSize: Int): LongArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return withType(\"LongArray\", arrayCopyResize(this, newSize, 0L))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun FloatArray.copyOf(newSize: Int): FloatArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, FloatArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun DoubleArray.copyOf(newSize: Int): DoubleArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, DoubleArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `false` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `false` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun BooleanArray.copyOf(newSize: Int): BooleanArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return withType(\"BooleanArray\", arrayCopyResize(this, newSize, false))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with null char (`\\u0000`) values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with null char (`\\u0000`) values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun CharArray.copyOf(newSize: Int): CharArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return withType(\"CharArray\", fillFrom(this, CharArray(newSize)))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `null` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `null` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizingCopyOf\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\")\npublic actual fun Array.copyOf(newSize: Int): Array {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return arrayCopyResize(this, newSize, null)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\")\npublic actual fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return withType(\"LongArray\", this.asDynamic().slice(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return withType(\"BooleanArray\", this.asDynamic().slice(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return withType(\"CharArray\", this.asDynamic().slice(fromIndex, toIndex))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline operator fun Array.plus(element: T): Array {\n return this.asDynamic().concat(arrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ByteArray.plus(element: Byte): ByteArray {\n return plus(byteArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ShortArray.plus(element: Short): ShortArray {\n return plus(shortArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun IntArray.plus(element: Int): IntArray {\n return plus(intArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun LongArray.plus(element: Long): LongArray {\n return plus(longArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun FloatArray.plus(element: Float): FloatArray {\n return plus(floatArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun DoubleArray.plus(element: Double): DoubleArray {\n return plus(doubleArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun BooleanArray.plus(element: Boolean): BooleanArray {\n return plus(booleanArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun CharArray.plus(element: Char): CharArray {\n return plus(charArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\")\npublic actual operator fun Array.plus(elements: Collection): Array {\n return arrayPlusCollection(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun ByteArray.plus(elements: Collection): ByteArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun ShortArray.plus(elements: Collection): ShortArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun IntArray.plus(elements: Collection): IntArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun LongArray.plus(elements: Collection): LongArray {\n return arrayPlusCollection(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun FloatArray.plus(elements: Collection): FloatArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun DoubleArray.plus(elements: Collection): DoubleArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun BooleanArray.plus(elements: Collection): BooleanArray {\n return arrayPlusCollection(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun CharArray.plus(elements: Collection): CharArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline operator fun Array.plus(elements: Array): Array {\n return this.asDynamic().concat(elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ByteArray.plus(elements: ByteArray): ByteArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ShortArray.plus(elements: ShortArray): ShortArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun IntArray.plus(elements: IntArray): IntArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun LongArray.plus(elements: LongArray): LongArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun FloatArray.plus(elements: FloatArray): FloatArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun DoubleArray.plus(elements: DoubleArray): DoubleArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun CharArray.plus(elements: CharArray): CharArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline fun Array.plusElement(element: T): Array {\n return this.asDynamic().concat(arrayOf(element))\n}\n\n/**\n * Sorts the array in-place.\n */\n@library(\"primitiveArraySort\")\npublic actual fun IntArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n */\npublic actual fun LongArray.sort(): Unit {\n if (size > 1) sort { a: Long, b: Long -> a.compareTo(b) }\n}\n\n/**\n * Sorts the array in-place.\n */\n@library(\"primitiveArraySort\")\npublic actual fun ByteArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n */\n@library(\"primitiveArraySort\")\npublic actual fun ShortArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n */\n@library(\"primitiveArraySort\")\npublic actual fun DoubleArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n */\n@library(\"primitiveArraySort\")\npublic actual fun FloatArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n */\n@library(\"primitiveArraySort\")\npublic actual fun CharArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place according to the natural order of its elements.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun > Array.sort(): Unit {\n if (size > 1) sortArray(this)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sort(comparison: (a: T, b: T) -> Int): Unit {\n if (size > 1) sortArrayWith(this, comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sort(noinline comparison: (a: Byte, b: Byte) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sort(noinline comparison: (a: Short, b: Short) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sort(noinline comparison: (a: Int, b: Int) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sort(noinline comparison: (a: Long, b: Long) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sort(noinline comparison: (a: Float, b: Float) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sort(noinline comparison: (a: Double, b: Double) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sort(noinline comparison: (a: Char, b: Char) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun Array.sortWith(comparator: Comparator): Unit {\n if (size > 1) sortArrayWith(this, comparator)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun ByteArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun ShortArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun IntArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun LongArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun FloatArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun DoubleArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun BooleanArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun CharArray.toTypedArray(): Array {\n return Array(size) { index -> this[index] }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n@file:kotlin.jvm.JvmName(\"ComparisonsKt\")\n@file:kotlin.jvm.JvmMultifileClass\n\npackage kotlin.comparisons\n\n/**\n * Compares two values using the specified functions [selectors] to calculate the result of the comparison.\n * The functions are called sequentially, receive the given values [a] and [b] and return [Comparable]\n * objects. As soon as the [Comparable] instances returned by a function for [a] and [b] values do not\n * compare as equal, the result of that comparison is returned.\n *\n * @sample samples.comparisons.Comparisons.compareValuesByWithSelectors\n */\npublic fun compareValuesBy(a: T, b: T, vararg selectors: (T) -> Comparable<*>?): Int {\n require(selectors.size > 0)\n return compareValuesByImpl(a, b, selectors)\n}\n\nprivate fun compareValuesByImpl(a: T, b: T, selectors: Array Comparable<*>?>): Int {\n for (fn in selectors) {\n val v1 = fn(a)\n val v2 = fn(b)\n val diff = compareValues(v1, v2)\n if (diff != 0) return diff\n }\n return 0\n}\n\n/**\n * Compares two values using the specified [selector] function to calculate the result of the comparison.\n * The function is applied to the given values [a] and [b] and return [Comparable] objects.\n * The result of comparison of these [Comparable] instances is returned.\n *\n * @sample samples.comparisons.Comparisons.compareValuesByWithSingleSelector\n */\n@kotlin.internal.InlineOnly\npublic inline fun compareValuesBy(a: T, b: T, selector: (T) -> Comparable<*>?): Int {\n return compareValues(selector(a), selector(b))\n}\n\n/**\n * Compares two values using the specified [selector] function to calculate the result of the comparison.\n * The function is applied to the given values [a] and [b] and return objects of type K which are then being\n * compared with the given [comparator].\n *\n * @sample samples.comparisons.Comparisons.compareValuesByWithComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun compareValuesBy(a: T, b: T, comparator: Comparator, selector: (T) -> K): Int {\n return comparator.compare(selector(a), selector(b))\n}\n\n//// Not so useful without type inference for receiver of expression\n//// compareValuesWith(v1, v2, compareBy { it.prop1 } thenByDescending { it.prop2 })\n///**\n// * Compares two values using the specified [comparator].\n// */\n//@Suppress(\"NOTHING_TO_INLINE\")\n//public inline fun compareValuesWith(a: T, b: T, comparator: Comparator): Int = comparator.compare(a, b)\n//\n\n\n/**\n * Compares two nullable [Comparable] values. Null is considered less than any value.\n *\n * @sample samples.comparisons.Comparisons.compareValues\n */\npublic fun > compareValues(a: T?, b: T?): Int {\n if (a === b) return 0\n if (a == null) return -1\n if (b == null) return 1\n\n @Suppress(\"UNCHECKED_CAST\")\n return (a as Comparable).compareTo(b)\n}\n\n/**\n * Creates a comparator using the sequence of functions to calculate a result of comparison.\n * The functions are called sequentially, receive the given values `a` and `b` and return [Comparable]\n * objects. As soon as the [Comparable] instances returned by a function for `a` and `b` values do not\n * compare as equal, the result of that comparison is returned from the [Comparator].\n *\n * @sample samples.comparisons.Comparisons.compareByWithSelectors\n */\npublic fun compareBy(vararg selectors: (T) -> Comparable<*>?): Comparator {\n require(selectors.size > 0)\n return Comparator { a, b -> compareValuesByImpl(a, b, selectors) }\n}\n\n\n/**\n * Creates a comparator using the function to transform value to a [Comparable] instance for comparison.\n *\n * @sample samples.comparisons.Comparisons.compareByWithSingleSelector\n */\n@kotlin.internal.InlineOnly\npublic inline fun compareBy(crossinline selector: (T) -> Comparable<*>?): Comparator =\n Comparator { a, b -> compareValuesBy(a, b, selector) }\n\n/**\n * Creates a comparator using the [selector] function to transform values being compared and then applying\n * the specified [comparator] to compare transformed values.\n *\n * @sample samples.comparisons.Comparisons.compareByWithComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun compareBy(comparator: Comparator, crossinline selector: (T) -> K): Comparator =\n Comparator { a, b -> compareValuesBy(a, b, comparator, selector) }\n\n/**\n * Creates a descending comparator using the function to transform value to a [Comparable] instance for comparison.\n *\n * @sample samples.comparisons.Comparisons.compareByDescendingWithSingleSelector\n */\n@kotlin.internal.InlineOnly\npublic inline fun compareByDescending(crossinline selector: (T) -> Comparable<*>?): Comparator =\n Comparator { a, b -> compareValuesBy(b, a, selector) }\n\n/**\n * Creates a descending comparator using the [selector] function to transform values being compared and then applying\n * the specified [comparator] to compare transformed values.\n *\n * Note that an order of [comparator] is reversed by this wrapper.\n *\n * @sample samples.comparisons.Comparisons.compareByDescendingWithComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun compareByDescending(comparator: Comparator, crossinline selector: (T) -> K): Comparator =\n Comparator { a, b -> compareValuesBy(b, a, comparator, selector) }\n\n/**\n * Creates a comparator comparing values after the primary comparator defined them equal. It uses\n * the function to transform value to a [Comparable] instance for comparison.\n *\n * @sample samples.comparisons.Comparisons.thenBy\n */\n@kotlin.internal.InlineOnly\npublic inline fun Comparator.thenBy(crossinline selector: (T) -> Comparable<*>?): Comparator =\n Comparator { a, b ->\n val previousCompare = this@thenBy.compare(a, b)\n if (previousCompare != 0) previousCompare else compareValuesBy(a, b, selector)\n }\n\n/**\n * Creates a comparator comparing values after the primary comparator defined them equal. It uses\n * the [selector] function to transform values and then compares them with the given [comparator].\n *\n * @sample samples.comparisons.Comparisons.thenByWithComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun Comparator.thenBy(comparator: Comparator, crossinline selector: (T) -> K): Comparator =\n Comparator { a, b ->\n val previousCompare = this@thenBy.compare(a, b)\n if (previousCompare != 0) previousCompare else compareValuesBy(a, b, comparator, selector)\n }\n\n/**\n * Creates a descending comparator using the primary comparator and\n * the function to transform value to a [Comparable] instance for comparison.\n *\n * @sample samples.comparisons.Comparisons.thenByDescending\n */\n@kotlin.internal.InlineOnly\npublic inline fun Comparator.thenByDescending(crossinline selector: (T) -> Comparable<*>?): Comparator =\n Comparator { a, b ->\n val previousCompare = this@thenByDescending.compare(a, b)\n if (previousCompare != 0) previousCompare else compareValuesBy(b, a, selector)\n }\n\n/**\n * Creates a descending comparator comparing values after the primary comparator defined them equal. It uses\n * the [selector] function to transform values and then compares them with the given [comparator].\n *\n * @sample samples.comparisons.Comparisons.thenByDescendingWithComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun Comparator.thenByDescending(comparator: Comparator, crossinline selector: (T) -> K): Comparator =\n Comparator { a, b ->\n val previousCompare = this@thenByDescending.compare(a, b)\n if (previousCompare != 0) previousCompare else compareValuesBy(b, a, comparator, selector)\n }\n\n\n/**\n * Creates a comparator using the primary comparator and function to calculate a result of comparison.\n *\n * @sample samples.comparisons.Comparisons.thenComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun Comparator.thenComparator(crossinline comparison: (a: T, b: T) -> Int): Comparator =\n Comparator { a, b ->\n val previousCompare = this@thenComparator.compare(a, b)\n if (previousCompare != 0) previousCompare else comparison(a, b)\n }\n\n/**\n * Combines this comparator and the given [comparator] such that the latter is applied only\n * when the former considered values equal.\n *\n * @sample samples.comparisons.Comparisons.then\n */\npublic infix fun Comparator.then(comparator: Comparator): Comparator =\n Comparator { a, b ->\n val previousCompare = this@then.compare(a, b)\n if (previousCompare != 0) previousCompare else comparator.compare(a, b)\n }\n\n/**\n * Combines this comparator and the given [comparator] such that the latter is applied only\n * when the former considered values equal.\n *\n * @sample samples.comparisons.Comparisons.thenDescending\n */\npublic infix fun Comparator.thenDescending(comparator: Comparator): Comparator =\n Comparator { a, b ->\n val previousCompare = this@thenDescending.compare(a, b)\n if (previousCompare != 0) previousCompare else comparator.compare(b, a)\n }\n\n// Not so useful without type inference for receiver of expression\n/**\n * Extends the given [comparator] of non-nullable values to a comparator of nullable values\n * considering `null` value less than any other value.\n *\n * @sample samples.comparisons.Comparisons.nullsFirstLastWithComparator\n */\npublic fun nullsFirst(comparator: Comparator): Comparator =\n Comparator { a, b ->\n when {\n a === b -> 0\n a == null -> -1\n b == null -> 1\n else -> comparator.compare(a, b)\n }\n }\n\n/**\n * Provides a comparator of nullable [Comparable] values\n * considering `null` value less than any other value.\n *\n * @sample samples.comparisons.Comparisons.nullsFirstLastComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun > nullsFirst(): Comparator = nullsFirst(naturalOrder())\n\n/**\n * Extends the given [comparator] of non-nullable values to a comparator of nullable values\n * considering `null` value greater than any other value.\n *\n * @sample samples.comparisons.Comparisons.nullsFirstLastWithComparator\n */\npublic fun nullsLast(comparator: Comparator): Comparator =\n Comparator { a, b ->\n when {\n a === b -> 0\n a == null -> 1\n b == null -> -1\n else -> comparator.compare(a, b)\n }\n }\n\n/**\n * Provides a comparator of nullable [Comparable] values\n * considering `null` value greater than any other value.\n *\n * @sample samples.comparisons.Comparisons.nullsFirstLastComparator\n */\n@kotlin.internal.InlineOnly\npublic inline fun > nullsLast(): Comparator = nullsLast(naturalOrder())\n\n/**\n * Returns a comparator that compares [Comparable] objects in natural order.\n *\n * @sample samples.comparisons.Comparisons.naturalOrderComparator\n */\npublic fun > naturalOrder(): Comparator = @Suppress(\"UNCHECKED_CAST\") (NaturalOrderComparator as Comparator)\n\n/**\n * Returns a comparator that compares [Comparable] objects in reversed natural order.\n *\n * @sample samples.comparisons.Comparisons.nullsFirstLastWithComparator\n */\npublic fun > reverseOrder(): Comparator = @Suppress(\"UNCHECKED_CAST\") (ReverseOrderComparator as Comparator)\n\n/**\n * Returns a comparator that imposes the reverse ordering of this comparator.\n *\n * @sample samples.comparisons.Comparisons.reversed\n */\npublic fun Comparator.reversed(): Comparator = when (this) {\n is ReversedComparator -> this.comparator\n NaturalOrderComparator -> @Suppress(\"UNCHECKED_CAST\") (ReverseOrderComparator as Comparator)\n ReverseOrderComparator -> @Suppress(\"UNCHECKED_CAST\") (NaturalOrderComparator as Comparator)\n else -> ReversedComparator(this)\n}\n\n\nprivate class ReversedComparator(public val comparator: Comparator) : Comparator {\n override fun compare(a: T, b: T): Int = comparator.compare(b, a)\n @Suppress(\"VIRTUAL_MEMBER_HIDDEN\")\n fun reversed(): Comparator = comparator\n}\n\nprivate object NaturalOrderComparator : Comparator> {\n override fun compare(a: Comparable, b: Comparable): Int = a.compareTo(b)\n @Suppress(\"VIRTUAL_MEMBER_HIDDEN\")\n fun reversed(): Comparator> = ReverseOrderComparator\n}\n\nprivate object ReverseOrderComparator : Comparator> {\n override fun compare(a: Comparable, b: Comparable): Int = b.compareTo(a)\n @Suppress(\"VIRTUAL_MEMBER_HIDDEN\")\n fun reversed(): Comparator> = NaturalOrderComparator\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\n\npublic actual interface Comparator {\n @JsName(\"compare\")\n actual fun compare(a: T, b: T): Int\n}\n\npublic actual inline fun Comparator(crossinline comparison: (a: T, b: T) -> Int): Comparator = object : Comparator {\n override fun compare(a: T, b: T): Int = comparison(a, b)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StandardKt\")\npackage kotlin\n\nimport kotlin.contracts.*\n\n/**\n * An exception is thrown to indicate that a method body remains to be implemented.\n */\npublic class NotImplementedError(message: String = \"An operation is not implemented.\") : Error(message)\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n */\n\n@kotlin.internal.InlineOnly\npublic inline fun TODO(): Nothing = throw NotImplementedError()\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n *\n * @param reason a string explaining why the implementation is missing.\n */\n@kotlin.internal.InlineOnly\npublic inline fun TODO(reason: String): Nothing = throw NotImplementedError(\"An operation is not implemented: $reason\")\n\n\n\n/**\n * Calls the specified function [block] and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun run(block: () -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.run(block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with the given [receiver] as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#with).\n */\n@kotlin.internal.InlineOnly\npublic inline fun with(receiver: T, block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return receiver.block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#apply).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.apply(block: T.() -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block()\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#also).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.also(block: (T) -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block(this)\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#let).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.let(block: (T) -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block(this)\n}\n\n/**\n * Returns `this` value if it satisfies the given [predicate] or `null`, if it doesn't.\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeIf(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (predicate(this)) this else null\n}\n\n/**\n * Returns `this` value if it _does not_ satisfy the given [predicate] or `null`, if it does.\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeUnless(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (!predicate(this)) this else null\n}\n\n/**\n * Executes the given function [action] specified number of [times].\n *\n * A zero-based index of current iteration is passed as a parameter to [action].\n *\n * @sample samples.misc.ControlFlow.repeat\n */\n@kotlin.internal.InlineOnly\npublic inline fun repeat(times: Int, action: (Int) -> Unit) {\n contract { callsInPlace(action) }\n\n for (index in 0 until times) {\n action(index)\n }\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.comparisons\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.js.*\n\n/**\n * Returns the greater of two values.\n * If values are equal, returns the first one.\n */\n@SinceKotlin(\"1.1\")\npublic actual fun > maxOf(a: T, b: T): T {\n return if (a >= b) a else b\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Byte, b: Byte): Byte {\n return Math.max(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Short, b: Short): Short {\n return Math.max(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Int, b: Int): Int {\n return Math.max(a, b)\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@Suppress(\"DEPRECATION_ERROR\", \"NOTHING_TO_INLINE\")\npublic actual inline fun maxOf(a: Long, b: Long): Long {\n return if (a >= b) a else b\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Float, b: Float): Float {\n return Math.max(a, b)\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Double, b: Double): Double {\n return Math.max(a, b)\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\npublic actual fun > maxOf(a: T, b: T, c: T): T {\n return maxOf(a, maxOf(b, c))\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte {\n return Math.max(a.toInt(), b.toInt(), c.toInt()).unsafeCast()\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Short, b: Short, c: Short): Short {\n return Math.max(a.toInt(), b.toInt(), c.toInt()).unsafeCast()\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Int, b: Int, c: Int): Int {\n return Math.max(a, b, c)\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun maxOf(a: Long, b: Long, c: Long): Long {\n return maxOf(a, maxOf(b, c))\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Float, b: Float, c: Float): Float {\n return Math.max(a, b, c)\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun maxOf(a: Double, b: Double, c: Double): Double {\n return Math.max(a, b, c)\n}\n\n/**\n * Returns the smaller of two values.\n * If values are equal, returns the first one.\n */\n@SinceKotlin(\"1.1\")\npublic actual fun > minOf(a: T, b: T): T {\n return if (a <= b) a else b\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Byte, b: Byte): Byte {\n return Math.min(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Short, b: Short): Short {\n return Math.min(a.toInt(), b.toInt()).unsafeCast()\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Int, b: Int): Int {\n return Math.min(a, b)\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@Suppress(\"DEPRECATION_ERROR\", \"NOTHING_TO_INLINE\")\npublic actual inline fun minOf(a: Long, b: Long): Long {\n return if (a <= b) a else b\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Float, b: Float): Float {\n return Math.min(a, b)\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Double, b: Double): Double {\n return Math.min(a, b)\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\npublic actual fun > minOf(a: T, b: T, c: T): T {\n return minOf(a, minOf(b, c))\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Byte, b: Byte, c: Byte): Byte {\n return Math.min(a.toInt(), b.toInt(), c.toInt()).unsafeCast()\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Short, b: Short, c: Short): Short {\n return Math.min(a.toInt(), b.toInt(), c.toInt()).unsafeCast()\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Int, b: Int, c: Int): Int {\n return Math.min(a, b, c)\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic actual inline fun minOf(a: Long, b: Long, c: Long): Long {\n return minOf(a, minOf(b, c))\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Float, b: Float, c: Float): Float {\n return Math.min(a, b, c)\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION_ERROR\")\npublic actual inline fun minOf(a: Double, b: Double, c: Double): Double {\n return Math.min(a, b, c)\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component5(): T {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the collection.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Iterable.contains(element: T): Boolean {\n if (this is Collection)\n return contains(element)\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic fun Iterable.elementAt(index: Int): T {\n if (this is List)\n return get(index)\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"Collection doesn't contain element at index $index.\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAt(index: Int): T {\n return get(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\npublic fun Iterable.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n if (this is List)\n return this.getOrElse(index, defaultValue)\n if (index < 0)\n return defaultValue(index)\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\npublic fun Iterable.elementAtOrNull(index: Int): T? {\n if (this is List)\n return this.getOrNull(index)\n if (index < 0)\n return null\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the collection is empty.\n */\npublic fun Iterable.first(): T {\n when (this) {\n is List -> return this.first()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the list is empty.\n */\npublic fun List.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Iterable.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the collection is empty.\n */\npublic fun Iterable.firstOrNull(): T? {\n when (this) {\n is List -> {\n if (isEmpty())\n return null\n else\n return this[0]\n }\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns the first element, or `null` if the list is empty.\n */\npublic fun List.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Iterable.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n */\npublic fun List.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.indexOf(element: T): Int {\n if (this is List) return this.indexOf(element)\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.indexOf(element: T): Int {\n return indexOf(element)\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfLast(predicate: (T) -> Boolean): Int {\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfLast(predicate: (T) -> Boolean): Int {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n if (predicate(iterator.previous())) {\n return iterator.nextIndex()\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the collection is empty.\n */\npublic fun Iterable.last(): T {\n when (this) {\n is List -> return this.last()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the list is empty.\n */\npublic fun List.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Iterable.last(predicate: (T) -> Boolean): T {\n var last: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n last = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return last as T\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun List.last(predicate: (T) -> Boolean): T {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"List contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.lastIndexOf(element: T): Int {\n if (this is List) return this.lastIndexOf(element)\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns last index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.lastIndexOf(element: T): Int {\n return lastIndexOf(element)\n}\n\n/**\n * Returns the last element, or `null` if the collection is empty.\n */\npublic fun Iterable.lastOrNull(): T? {\n when (this) {\n is List -> return if (isEmpty()) null else this[size - 1]\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element, or `null` if the list is empty.\n */\npublic fun List.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun Iterable.lastOrNull(predicate: (T) -> Boolean): T? {\n var last: T? = null\n for (element in this) {\n if (predicate(element)) {\n last = element\n }\n }\n return last\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun List.lastOrNull(predicate: (T) -> Boolean): T? {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this collection.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Collection.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Collection is empty.\")\n return elementAt(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the collection is empty or has more than one element.\n */\npublic fun Iterable.single(): T {\n when (this) {\n is List -> return this.single()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n val single = iterator.next()\n if (iterator.hasNext())\n throw IllegalArgumentException(\"Collection has more than one element.\")\n return single\n }\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the list is empty or has more than one element.\n */\npublic fun List.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"List is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"List has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Iterable.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Collection contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns single element, or `null` if the collection is empty or has more than one element.\n */\npublic fun Iterable.singleOrNull(): T? {\n when (this) {\n is List -> return if (size == 1) this[0] else null\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n val single = iterator.next()\n if (iterator.hasNext())\n return null\n return single\n }\n }\n}\n\n/**\n * Returns single element, or `null` if the list is empty or has more than one element.\n */\npublic fun List.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Iterable.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Iterable.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return toList()\n val list: ArrayList\n if (this is Collection<*>) {\n val resultSize = size - n\n if (resultSize <= 0)\n return emptyList()\n if (resultSize == 1)\n return listOf(last())\n list = ArrayList(resultSize)\n if (this is List) {\n if (this is RandomAccess) {\n for (index in n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(n))\n list.add(item)\n }\n return list\n }\n }\n else {\n list = ArrayList()\n }\n var count = 0\n for (item in this) {\n if (count >= n) list.add(item) else ++count\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun List.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun List.dropLastWhile(predicate: (T) -> Boolean): List {\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n return take(iterator.nextIndex() + 1)\n }\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Iterable.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun Iterable.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun Iterable.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > Iterable.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n */\npublic inline fun Iterable<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n */\npublic inline fun > Iterable<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun Iterable.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n */\npublic fun Iterable.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n */\npublic fun , T : Any> Iterable.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > Iterable.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > Iterable.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun List.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return this.subList(indices.start, indices.endInclusive + 1).toList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun List.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Iterable.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (this is Collection) {\n if (n >= size) return toList()\n if (n == 1) return listOf(first())\n }\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun List.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(last())\n val list = ArrayList(n)\n if (this is RandomAccess) {\n for (index in size - n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(size - n))\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun List.takeLastWhile(predicate: (T) -> Boolean): List {\n if (isEmpty())\n return emptyList()\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n iterator.next()\n val expectedSize = size - iterator.nextIndex()\n if (expectedSize == 0) return emptyList()\n return ArrayList(expectedSize).apply {\n while (iterator.hasNext())\n add(iterator.next())\n }\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Iterable.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the list in-place.\n */\npublic expect fun MutableList.reverse(): Unit\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Iterable.reversed(): List {\n if (this is Collection && size <= 1) return toList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Sorts elements in the list in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > MutableList.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sorted(): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray>() as Array).apply { sort() }.asList()\n }\n return toMutableList().apply { sort() }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Iterable.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Iterable.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Iterable.sortedWith(comparator: Comparator): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray() as Array).apply { sortWith(comparator) }.asList()\n }\n return toMutableList().apply { sortWith(comparator) }\n}\n\n/**\n * Returns an array of Boolean containing all of the elements of this collection.\n */\npublic fun Collection.toBooleanArray(): BooleanArray {\n val result = BooleanArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this collection.\n */\npublic fun Collection.toByteArray(): ByteArray {\n val result = ByteArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Char containing all of the elements of this collection.\n */\npublic fun Collection.toCharArray(): CharArray {\n val result = CharArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Double containing all of the elements of this collection.\n */\npublic fun Collection.toDoubleArray(): DoubleArray {\n val result = DoubleArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Float containing all of the elements of this collection.\n */\npublic fun Collection.toFloatArray(): FloatArray {\n val result = FloatArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Int containing all of the elements of this collection.\n */\npublic fun Collection.toIntArray(): IntArray {\n val result = IntArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Long containing all of the elements of this collection.\n */\npublic fun Collection.toLongArray(): LongArray {\n val result = LongArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Short containing all of the elements of this collection.\n */\npublic fun Collection.toShortArray(): ShortArray {\n val result = ShortArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n */\npublic inline fun Iterable.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given collection indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given collection\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > Iterable.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are elements from the given collection and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun Iterable.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap(mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given collection,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > Iterable.associateWithTo(destination: M, valueSelector: (K) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Iterable.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun Iterable.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(collectionSizeOrDefault(12))))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Iterable.toList(): List {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(if (this is List) get(0) else iterator().next())\n else -> this.toMutableList()\n }\n }\n return this.toMutableList().optimizeReadOnlyList()\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this collection.\n */\npublic fun Iterable.toMutableList(): MutableList {\n if (this is Collection)\n return this.toMutableList()\n return toCollection(ArrayList())\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this collection.\n */\npublic fun Collection.toMutableList(): MutableList {\n return ArrayList(this)\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toSet(): Set {\n if (this is Collection) {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(if (this is List) this[0] else iterator().next())\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n }\n return toCollection(LinkedHashSet()).optimizeReadOnlySet()\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection.\n */\npublic inline fun Iterable.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\npublic inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a collection to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Iterable.map(transform: (T) -> R): List {\n return mapTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(checkIndexOverflow(index++), item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original collection.\n */\npublic inline fun Iterable.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original collection\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Iterable.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original collection\n * and appends the results to the given [destination].\n */\npublic inline fun > Iterable.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original collection.\n */\npublic fun Iterable.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given collection.\n * \n * The elements in the resulting list are in the same order as they were in the source collection.\n */\npublic fun Iterable.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given collection\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source collection.\n */\npublic inline fun Iterable.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this set and the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic infix fun Iterable.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this collection and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic infix fun Iterable.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toMutableSet(): MutableSet {\n return when (this) {\n is Collection -> LinkedHashSet(this)\n else -> toCollection(LinkedHashSet())\n }\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original collection.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n */\npublic infix fun Iterable.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Iterable.all(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if collection has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Iterable.any(): Boolean {\n if (this is Collection) return !isEmpty()\n return iterator().hasNext()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Iterable.any(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return false\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this collection.\n */\npublic fun Iterable.count(): Int {\n if (this is Collection) return size\n var count = 0\n for (element in this) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Returns the number of elements in this collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Iterable.count(predicate: (T) -> Boolean): Int {\n if (this is Collection && isEmpty()) return 0\n var count = 0\n for (element in this) if (predicate(element)) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Iterable.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Iterable.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(checkIndexOverflow(index++), accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun List.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@kotlin.internal.HidesMembers\npublic inline fun Iterable.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun Iterable.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(checkIndexOverflow(index++), item)\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.max(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n if (max.isNaN()) return max\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.max(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n if (max.isNaN()) return max\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun > Iterable.max(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > Iterable.maxBy(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxElem = iterator.next()\n if (!iterator.hasNext()) return maxElem\n var maxValue = selector(maxElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n } while (iterator.hasNext())\n return maxElem\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Iterable.maxWith(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.min(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n if (min.isNaN()) return min\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.min(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n if (min.isNaN()) return min\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun > Iterable.min(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > Iterable.minBy(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minElem = iterator.next()\n if (!iterator.hasNext()) return minElem\n var minValue = selector(minElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n } while (iterator.hasNext())\n return minElem\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Iterable.minWith(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the collection has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Iterable.none(): Boolean {\n if (this is Collection) return isEmpty()\n return !iterator().hasNext()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Iterable.none(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each element and returns the collection itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > C.onEach(action: (T) -> Unit): C {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Iterable.reduce(operation: (acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun Iterable.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun List.reduceRight(operation: (T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\npublic inline fun Iterable.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\npublic inline fun Iterable.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Iterable.requireNoNulls(): Iterable {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Iterable\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun List.requireNoNulls(): List {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as List\n}\n\n/**\n * Splits this collection into a list of lists each not exceeding the given [size].\n * \n * The last list in the resulting list may have less elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int): List> {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this collection into several lists each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return list of results of the [transform] applied to an each list.\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last list may have less elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int, transform: (List) -> R): List {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\npublic operator fun Iterable.minus(element: T): List {\n val result = ArrayList(collectionSizeOrDefault(10))\n var removed = false\n return this.filterTo(result) { if (!removed && it == element) { removed = true; false } else true }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] array.\n * \n * The [elements] array may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Array): List {\n if (elements.isEmpty()) return this.toList()\n val other = elements.toHashSet()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] collection.\n * \n * The [elements] collection may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Iterable): List {\n val other = elements.convertToSetForSetOperationWith(this)\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] sequence.\n * \n * The [elements] sequence may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Sequence): List {\n val other = elements.toHashSet()\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minusElement(element: T): List {\n return minus(element)\n}\n\n/**\n * Splits the original collection into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun Iterable.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Iterable.plus(element: T): List {\n if (this is Collection) return this.plus(element)\n val result = ArrayList()\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Collection.plus(element: T): List {\n val result = ArrayList(size + 1)\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Iterable.plus(elements: Array): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Collection.plus(elements: Array): List {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Iterable.plus(elements: Iterable): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Collection.plus(elements: Iterable): List {\n if (elements is Collection) {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n } else {\n val result = ArrayList(this)\n result.addAll(elements)\n return result\n }\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Iterable.plus(elements: Sequence): List {\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Collection.plus(elements: Sequence): List {\n val result = ArrayList(this.size + 10)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list of snapshots of the window of the given [size]\n * sliding along this collection with the given [step], where each\n * snapshot is a list.\n * \n * Several last lists may have less elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List> {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val result = ArrayList>((thisSize + step - 1) / step)\n var index = 0\n while (index < thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (windowSize < size && !partialWindows) break\n result.add(List(windowSize) { this[it + index] })\n index += step\n }\n return result\n }\n val result = ArrayList>()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = false).forEach {\n result.add(it)\n }\n return result\n}\n\n/**\n * Returns a list of results of applying the given [transform] function to\n * an each list representing a view over the window of the given [size]\n * sliding along this collection with the given [step].\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last lists may have less elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (List) -> R): List {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val result = ArrayList((thisSize + step - 1) / step)\n val window = MovingSubList(this)\n var index = 0\n while (index < thisSize) {\n window.move(index, (index + size).coerceAtMost(thisSize))\n if (!partialWindows && window.size < size) break\n result.add(transform(window))\n index += step\n }\n return result\n }\n val result = ArrayList()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = true).forEach {\n result.add(transform(it))\n }\n return result\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val arraySize = other.size\n val list = ArrayList(minOf(collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in this) {\n if (i >= arraySize) break\n list.add(transform(element, other[i++]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] collection with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val first = iterator()\n val second = other.iterator()\n val list = ArrayList(minOf(collectionSizeOrDefault(10), other.collectionSizeOrDefault(10)))\n while (first.hasNext() && second.hasNext()) {\n list.add(transform(first.next(), second.next()))\n }\n return list\n}\n\n/**\n * Returns a list of pairs of each two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.zipWithNext(): List> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to an each pair of two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic inline fun Iterable.zipWithNext(transform: (a: T, b: T) -> R): List {\n val iterator = iterator()\n if (!iterator.hasNext()) return emptyList()\n val result = mutableListOf()\n var current = iterator.next()\n while (iterator.hasNext()) {\n val next = iterator.next()\n result.add(transform(current, next))\n current = next\n }\n return result\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Iterable.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Iterable.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Returns this collection as an [Iterable].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.asIterable(): Iterable {\n return this\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original collection returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromCollection\n */\npublic fun Iterable.asSequence(): Sequence {\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Iterable.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Iterable.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Iterable.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\nimport kotlin.comparisons.naturalOrder\nimport kotlin.random.Random\n\n/** Returns the array if it's not `null`, or an empty array otherwise. */\n@kotlin.internal.InlineOnly\npublic actual inline fun Array?.orEmpty(): Array = this ?: emptyArray()\n\n@kotlin.internal.InlineOnly\npublic actual inline fun Collection.toTypedArray(): Array = copyToArray(this)\n\n@JsName(\"copyToArray\")\n@PublishedApi\ninternal fun copyToArray(collection: Collection): Array {\n return if (collection.asDynamic().toArray !== undefined)\n collection.asDynamic().toArray().unsafeCast>()\n else\n copyToArrayImpl(collection).unsafeCast>()\n}\n\n@JsName(\"copyToArrayImpl\")\ninternal actual fun copyToArrayImpl(collection: Collection<*>): Array {\n val array = emptyArray()\n val iterator = collection.iterator()\n while (iterator.hasNext())\n array.asDynamic().push(iterator.next())\n return array\n}\n\n@JsName(\"copyToExistingArrayImpl\")\ninternal actual fun copyToArrayImpl(collection: Collection<*>, array: Array): Array {\n if (array.size < collection.size)\n return copyToArrayImpl(collection).unsafeCast>()\n\n val iterator = collection.iterator()\n var index = 0\n while (iterator.hasNext()) {\n array[index++] = iterator.next().unsafeCast()\n }\n if (index < array.size) {\n array[index] = null.unsafeCast()\n }\n return array\n}\n\n/**\n * Returns an immutable list containing only the specified object [element].\n */\npublic fun listOf(element: T): List = arrayListOf(element)\n\n/**\n * Returns an immutable set containing only the specified object [element].\n */\npublic fun setOf(element: T): Set = hashSetOf(element)\n\n/**\n * Returns an immutable map, mapping only the specified key to the\n * specified value.\n */\npublic fun mapOf(pair: Pair): Map = hashMapOf(pair)\n\n/**\n * Fills the list with the provided [value].\n *\n * Each element in the list gets replaced with the [value].\n */\n@SinceKotlin(\"1.2\")\npublic actual fun MutableList.fill(value: T): Unit {\n for (index in 0..lastIndex) {\n this[index] = value\n }\n}\n\n/**\n * Randomly shuffles elements in this list.\n *\n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.2\")\npublic actual fun MutableList.shuffle(): Unit = shuffle(Random)\n\n/**\n * Returns a new list with the elements of this list randomly shuffled.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Iterable.shuffled(): List = toMutableList().apply { shuffle() }\n\n/**\n * Sorts elements in the list in-place according to their natural sort order.\n *\n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun > MutableList.sort(): Unit {\n collectionsSort(this, naturalOrder())\n}\n\n/**\n * Sorts elements in the list in-place according to the order specified with [comparator].\n *\n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun MutableList.sortWith(comparator: Comparator): Unit {\n collectionsSort(this, comparator)\n}\n\nprivate fun collectionsSort(list: MutableList, comparator: Comparator) {\n if (list.size <= 1) return\n\n val array = copyToArray(list)\n sortArrayWith(array, comparator)\n\n for (i in 0 until array.size) {\n list[i] = array[i]\n }\n}\n\ninternal actual fun arrayOfNulls(reference: Array, size: Int): Array {\n return arrayOfNulls(size).unsafeCast>()\n}\n\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@JsName(\"arrayCopy\")\ninternal fun arrayCopy(source: Array, destination: Array, destinationOffset: Int, startIndex: Int, endIndex: Int) {\n AbstractList.checkRangeIndexes(startIndex, endIndex, source.size)\n val rangeSize = endIndex - startIndex\n AbstractList.checkRangeIndexes(destinationOffset, destinationOffset + rangeSize, destination.size)\n\n if (js(\"ArrayBuffer\").isView(destination) && js(\"ArrayBuffer\").isView(source)) {\n val subrange = source.asDynamic().subarray(startIndex, endIndex)\n destination.asDynamic().set(subrange, destinationOffset)\n } else {\n if (source !== destination || destinationOffset <= startIndex) {\n for (index in 0 until rangeSize) {\n destination[destinationOffset + index] = source[startIndex + index]\n }\n } else {\n for (index in rangeSize - 1 downTo 0) {\n destination[destinationOffset + index] = source[startIndex + index]\n }\n }\n }\n}\n\n// no singleton map implementation in js, return map as is\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Map.toSingletonMapOrSelf(): Map = this\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Map.toSingletonMap(): Map = this.toMutableMap()\n\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Array.copyToArrayOfAny(isVarargs: Boolean): Array =\n if (isVarargs)\n // no need to copy vararg array in JS\n this\n else\n this.copyOf()\n\n\n\n@PublishedApi\ninternal actual fun checkIndexOverflow(index: Int): Int {\n if (index < 0) {\n throwIndexOverflow()\n }\n return index\n}\n\n@PublishedApi\ninternal actual fun checkCountOverflow(count: Int): Int {\n if (count < 0) {\n throwCountOverflow()\n }\n return count\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\n\n/**\n * Returns the given iterator itself. This allows to use an instance of iterator in a `for` loop.\n * @sample samples.collections.Iterators.iterator\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Iterator.iterator(): Iterator = this\n\n/**\n * Returns an [Iterator] wrapping each value produced by this [Iterator] with the [IndexedValue],\n * containing value and it's index.\n * @sample samples.collections.Iterators.withIndexIterator\n */\npublic fun Iterator.withIndex(): Iterator> = IndexingIterator(this)\n\n/**\n * Performs the given [operation] on each element of this [Iterator].\n * @sample samples.collections.Iterators.forEachIterator\n */\npublic inline fun Iterator.forEach(operation: (T) -> Unit): Unit {\n for (element in this) operation(element)\n}\n\n/**\n * Iterator transforming original `iterator` into iterator of [IndexedValue], counting index from zero.\n */\ninternal class IndexingIterator(private val iterator: Iterator) : Iterator> {\n private var index = 0\n final override fun hasNext(): Boolean = iterator.hasNext()\n final override fun next(): IndexedValue = IndexedValue(checkIndexOverflow(index++), iterator.next())\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"ComparisonsKt\")\n\npackage kotlin.comparisons\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns the greater of two values.\n * If values are equal, returns the first one.\n */\n@SinceKotlin(\"1.1\")\npublic expect fun > maxOf(a: T, b: T): T\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Byte, b: Byte): Byte\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Short, b: Short): Short\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Int, b: Int): Int\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Long, b: Long): Long\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Float, b: Float): Float\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Double, b: Double): Double\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\npublic expect fun > maxOf(a: T, b: T, c: T): T\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Byte, b: Byte, c: Byte): Byte\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Short, b: Short, c: Short): Short\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Int, b: Int, c: Int): Int\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Long, b: Long, c: Long): Long\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Float, b: Float, c: Float): Float\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun maxOf(a: Double, b: Double, c: Double): Double\n\n/**\n * Returns the greater of three values according to the order specified by the given [comparator].\n */\n@SinceKotlin(\"1.1\")\npublic fun maxOf(a: T, b: T, c: T, comparator: Comparator): T {\n return maxOf(a, maxOf(b, c, comparator), comparator)\n}\n\n/**\n * Returns the greater of two values according to the order specified by the given [comparator].\n * If values are equal, returns the first one.\n */\n@SinceKotlin(\"1.1\")\npublic fun maxOf(a: T, b: T, comparator: Comparator): T {\n return if (comparator.compare(a, b) >= 0) a else b\n}\n\n/**\n * Returns the smaller of two values.\n * If values are equal, returns the first one.\n */\n@SinceKotlin(\"1.1\")\npublic expect fun > minOf(a: T, b: T): T\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Byte, b: Byte): Byte\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Short, b: Short): Short\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Int, b: Int): Int\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Long, b: Long): Long\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Float, b: Float): Float\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Double, b: Double): Double\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\npublic expect fun > minOf(a: T, b: T, c: T): T\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Byte, b: Byte, c: Byte): Byte\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Short, b: Short, c: Short): Short\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Int, b: Int, c: Int): Int\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Long, b: Long, c: Long): Long\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Float, b: Float, c: Float): Float\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic expect inline fun minOf(a: Double, b: Double, c: Double): Double\n\n/**\n * Returns the smaller of three values according to the order specified by the given [comparator].\n */\n@SinceKotlin(\"1.1\")\npublic fun minOf(a: T, b: T, c: T, comparator: Comparator): T {\n return minOf(a, minOf(b, c, comparator), comparator)\n}\n\n/**\n * Returns the smaller of two values according to the order specified by the given [comparator].\n * If values are equal, returns the first one.\n */\n@SinceKotlin(\"1.1\")\npublic fun minOf(a: T, b: T, comparator: Comparator): T {\n return if (comparator.compare(a, b) <= 0) a else b\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MapsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns a [List] containing all key-value pairs.\n */\npublic fun Map.toList(): List> {\n if (size == 0)\n return emptyList()\n val iterator = entries.iterator()\n if (!iterator.hasNext())\n return emptyList()\n val first = iterator.next()\n if (!iterator.hasNext())\n return listOf(first.toPair())\n val result = ArrayList>(size)\n result.add(first.toPair())\n do {\n result.add(iterator.next().toPair())\n } while (iterator.hasNext())\n return result\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each entry of original map.\n */\npublic inline fun Map.flatMap(transform: (Map.Entry) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each entry of original map, to the given [destination].\n */\npublic inline fun > Map.flatMapTo(destination: C, transform: (Map.Entry) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each entry in the original map.\n * \n * @sample samples.collections.Maps.Transformations.mapToList\n */\npublic inline fun Map.map(transform: (Map.Entry) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each entry in the original map.\n */\npublic inline fun Map.mapNotNull(transform: (Map.Entry) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each entry in the original map\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Map.mapNotNullTo(destination: C, transform: (Map.Entry) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each entry of the original map\n * and appends the results to the given [destination].\n */\npublic inline fun > Map.mapTo(destination: C, transform: (Map.Entry) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns `true` if all entries match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Map.all(predicate: (Map.Entry) -> Boolean): Boolean {\n if (isEmpty()) return true\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if map has at least one entry.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Map.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one entry matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Map.any(predicate: (Map.Entry) -> Boolean): Boolean {\n if (isEmpty()) return false\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of entries in this map.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.count(): Int {\n return size\n}\n\n/**\n * Returns the number of entries matching the given [predicate].\n */\npublic inline fun Map.count(predicate: (Map.Entry) -> Boolean): Int {\n if (isEmpty()) return 0\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Performs the given [action] on each entry.\n */\n@kotlin.internal.HidesMembers\npublic inline fun Map.forEach(action: (Map.Entry) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Returns the first entry yielding the largest value of the given function or `null` if there are no entries.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@kotlin.internal.InlineOnly\npublic inline fun > Map.maxBy(selector: (Map.Entry) -> R): Map.Entry? {\n return entries.maxBy(selector)\n}\n\n/**\n * Returns the first entry having the largest value according to the provided [comparator] or `null` if there are no entries.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.maxWith(comparator: Comparator>): Map.Entry? {\n return entries.maxWith(comparator)\n}\n\n/**\n * Returns the first entry yielding the smallest value of the given function or `null` if there are no entries.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > Map.minBy(selector: (Map.Entry) -> R): Map.Entry? {\n return entries.minBy(selector)\n}\n\n/**\n * Returns the first entry having the smallest value according to the provided [comparator] or `null` if there are no entries.\n */\npublic fun Map.minWith(comparator: Comparator>): Map.Entry? {\n return entries.minWith(comparator)\n}\n\n/**\n * Returns `true` if the map has no entries.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Map.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no entries match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Map.none(predicate: (Map.Entry) -> Boolean): Boolean {\n if (isEmpty()) return true\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each entry and returns the map itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > M.onEach(action: (Map.Entry) -> Unit): M {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original map returning its entries when being iterated.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.asIterable(): Iterable> {\n return entries\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original map returning its entries when being iterated.\n */\npublic fun Map.asSequence(): Sequence> {\n return entries.asSequence()\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.ranges\n\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun Float.rangeTo(that: Float): ClosedFloatingPointRange =\n this.toDouble().rangeTo(that.toDouble()).unsafeCast>()\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"SequencesKt\")\n\npackage kotlin.sequences\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns `true` if [element] is found in the sequence.\n *\n * The operation is _terminal_.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Sequence.contains(element: T): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this sequence.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic fun Sequence.elementAt(index: Int): T {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"Sequence doesn't contain element at index $index.\") }\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this sequence.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\npublic fun Sequence.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n if (index < 0)\n return defaultValue(index)\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this sequence.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\npublic fun Sequence.elementAtOrNull(index: Int): T? {\n if (index < 0)\n return null\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n *\n * The operation is _terminal_.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n *\n * The operation is _terminal_.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the sequence is empty.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.first(): T {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Sequence is empty.\")\n return iterator.next()\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Sequence contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the sequence is empty.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.firstOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n return iterator.next()\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns first index of [element], or -1 if the sequence does not contain element.\n *\n * The operation is _terminal_.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Sequence.indexOf(element: T): Int {\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the sequence does not contain such element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the sequence does not contain such element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.indexOfLast(predicate: (T) -> Boolean): Int {\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the sequence is empty.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.last(): T {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Sequence is empty.\")\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.last(predicate: (T) -> Boolean): T {\n var last: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n last = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Sequence contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return last as T\n}\n\n/**\n * Returns last index of [element], or -1 if the sequence does not contain element.\n *\n * The operation is _terminal_.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Sequence.lastIndexOf(element: T): Int {\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns the last element, or `null` if the sequence is empty.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.lastOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.lastOrNull(predicate: (T) -> Boolean): T? {\n var last: T? = null\n for (element in this) {\n if (predicate(element)) {\n last = element\n }\n }\n return last\n}\n\n/**\n * Returns the single element, or throws an exception if the sequence is empty or has more than one element.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.single(): T {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Sequence is empty.\")\n val single = iterator.next()\n if (iterator.hasNext())\n throw IllegalArgumentException(\"Sequence has more than one element.\")\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Sequence contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Sequence contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns single element, or `null` if the sequence is empty or has more than one element.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.singleOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n val single = iterator.next()\n if (iterator.hasNext())\n return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a sequence containing all elements except first [n] elements.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Sequence.drop(n: Int): Sequence {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return when {\n n == 0 -> this\n this is DropTakeSequence -> this.drop(n)\n else -> DropSequence(this, n)\n }\n}\n\n/**\n * Returns a sequence containing all elements except first elements that satisfy the given [predicate].\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Sequence.dropWhile(predicate: (T) -> Boolean): Sequence {\n return DropWhileSequence(this, predicate)\n}\n\n/**\n * Returns a sequence containing only elements matching the given [predicate].\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.filter(predicate: (T) -> Boolean): Sequence {\n return FilteringSequence(this, true, predicate)\n}\n\n/**\n * Returns a sequence containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.filterIndexed(predicate: (index: Int, T) -> Boolean): Sequence {\n // TODO: Rewrite with generalized MapFilterIndexingSequence\n return TransformingSequence(FilteringSequence(IndexingSequence(this), true, { predicate(it.index, it.value) }), { it.value })\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a sequence containing all elements that are instances of specified type parameter R.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic inline fun Sequence<*>.filterIsInstance(): Sequence<@kotlin.internal.NoInfer R> {\n @Suppress(\"UNCHECKED_CAST\")\n return filter { it is R } as Sequence\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a sequence containing all elements not matching the given [predicate].\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.filterNot(predicate: (T) -> Boolean): Sequence {\n return FilteringSequence(this, false, predicate)\n}\n\n/**\n * Returns a sequence containing all elements that are not `null`.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.filterNotNull(): Sequence {\n @Suppress(\"UNCHECKED_CAST\")\n return filterNot { it == null } as Sequence\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic fun , T : Any> Sequence.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a sequence containing first [n] elements.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Sequence.take(n: Int): Sequence {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return when {\n n == 0 -> emptySequence()\n this is DropTakeSequence -> this.take(n)\n else -> TakeSequence(this, n)\n }\n}\n\n/**\n * Returns a sequence containing first elements satisfying the given [predicate].\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Sequence.takeWhile(predicate: (T) -> Boolean): Sequence {\n return TakeWhileSequence(this, predicate)\n}\n\n/**\n * Returns a sequence that yields elements of this sequence sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic fun > Sequence.sorted(): Sequence {\n return object : Sequence {\n override fun iterator(): Iterator {\n val sortedList = this@sorted.toMutableList()\n sortedList.sort()\n return sortedList.iterator()\n }\n }\n}\n\n/**\n * Returns a sequence that yields elements of this sequence sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic inline fun > Sequence.sortedBy(crossinline selector: (T) -> R?): Sequence {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a sequence that yields elements of this sequence sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic inline fun > Sequence.sortedByDescending(crossinline selector: (T) -> R?): Sequence {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a sequence that yields elements of this sequence sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic fun > Sequence.sortedDescending(): Sequence {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a sequence that yields elements of this sequence sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic fun Sequence.sortedWith(comparator: Comparator): Sequence {\n return object : Sequence {\n override fun iterator(): Iterator {\n val sortedList = this@sortedWith.toMutableList()\n sortedList.sortWith(comparator)\n return sortedList.iterator()\n }\n }\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given sequence.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original sequence.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.associate(transform: (T) -> Pair): Map {\n return associateTo(LinkedHashMap(), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given sequence indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original sequence.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.associateBy(keySelector: (T) -> K): Map {\n return associateByTo(LinkedHashMap(), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given sequence.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original sequence.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n return associateByTo(LinkedHashMap(), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given sequence\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given sequence.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given sequence.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are elements from the given sequence and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original sequence.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun Sequence.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap()\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given sequence,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > Sequence.associateWithTo(destination: M, valueSelector: (K) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n *\n * The operation is _terminal_.\n */\npublic fun > Sequence.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a [HashSet] of all elements.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.toHashSet(): HashSet {\n return toCollection(HashSet())\n}\n\n/**\n * Returns a [List] containing all elements.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.toList(): List {\n return this.toMutableList().optimizeReadOnlyList()\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this sequence.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.toMutableList(): MutableList {\n return toCollection(ArrayList())\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original sequence.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.toSet(): Set {\n return toCollection(LinkedHashSet()).optimizeReadOnlySet()\n}\n\n/**\n * Returns a single sequence of all elements from results of [transform] function being invoked on each element of original sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.flatMap(transform: (T) -> Sequence): Sequence {\n return FlatteningSequence(this, transform, { it.iterator() })\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original sequence, to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.flatMapTo(destination: C, transform: (T) -> Sequence): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original sequence by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original sequence.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Sequence.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original sequence\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original sequence.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Sequence.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original sequence by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Sequence.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original sequence\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Sequence.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a sequence to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Sequence.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a sequence containing the results of applying the given [transform] function\n * to each element in the original sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic fun Sequence.map(transform: (T) -> R): Sequence {\n return TransformingSequence(this, transform)\n}\n\n/**\n * Returns a sequence containing the results of applying the given [transform] function\n * to each element and its index in the original sequence.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.mapIndexed(transform: (index: Int, T) -> R): Sequence {\n return TransformingIndexedSequence(this, transform)\n}\n\n/**\n * Returns a sequence containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original sequence.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.mapIndexedNotNull(transform: (index: Int, T) -> R?): Sequence {\n return TransformingIndexedSequence(this, transform).filterNotNull()\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original sequence\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original sequence\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(checkIndexOverflow(index++), item))\n return destination\n}\n\n/**\n * Returns a sequence containing only the non-null results of applying the given [transform] function\n * to each element in the original sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.mapNotNull(transform: (T) -> R?): Sequence {\n return TransformingSequence(this, transform).filterNotNull()\n}\n\n/**\n * Applies the given [transform] function to each element in the original sequence\n * and appends only the non-null results to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original sequence\n * and appends the results to the given [destination].\n *\n * The operation is _terminal_.\n */\npublic inline fun > Sequence.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a sequence of [IndexedValue] for each element of the original sequence.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.withIndex(): Sequence> {\n return IndexingSequence(this)\n}\n\n/**\n * Returns a sequence containing only distinct elements from the given sequence.\n * \n * The elements in the resulting sequence are in the same order as they were in the source sequence.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic fun Sequence.distinct(): Sequence {\n return this.distinctBy { it }\n}\n\n/**\n * Returns a sequence containing only elements from the given sequence\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting sequence are in the same order as they were in the source sequence.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic fun Sequence.distinctBy(selector: (T) -> K): Sequence {\n return DistinctSequence(this, selector)\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given sequence.\n * \n * The returned set preserves the element iteration order of the original sequence.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.toMutableSet(): MutableSet {\n val set = LinkedHashSet()\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Sequence.all(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if sequence has at least one element.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Sequence.any(): Boolean {\n return iterator().hasNext()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Sequence.any(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this sequence.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.count(): Int {\n var count = 0\n for (element in this) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.count(predicate: (T) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original sequence.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(checkIndexOverflow(index++), accumulator, element)\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(checkIndexOverflow(index++), item)\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.1\")\npublic fun Sequence.max(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n if (max.isNaN()) return max\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.1\")\npublic fun Sequence.max(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n if (max.isNaN()) return max\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\npublic fun > Sequence.max(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > Sequence.maxBy(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxElem = iterator.next()\n if (!iterator.hasNext()) return maxElem\n var maxValue = selector(maxElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n } while (iterator.hasNext())\n return maxElem\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.maxWith(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.1\")\npublic fun Sequence.min(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n if (min.isNaN()) return min\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n *\n * The operation is _terminal_.\n */\n@SinceKotlin(\"1.1\")\npublic fun Sequence.min(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n if (min.isNaN()) return min\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\npublic fun > Sequence.min(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > Sequence.minBy(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minElem = iterator.next()\n if (!iterator.hasNext()) return minElem\n var minValue = selector(minElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n } while (iterator.hasNext())\n return minElem\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n *\n * The operation is _terminal_.\n */\npublic fun Sequence.minWith(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the sequence has no elements.\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Sequence.none(): Boolean {\n return !iterator().hasNext()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Sequence.none(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns a sequence which performs the given [action] on each element of the original sequence as they pass through it.\n *\n * The operation is _intermediate_ and _stateless_.\n */\n@SinceKotlin(\"1.1\")\npublic fun Sequence.onEach(action: (T) -> Unit): Sequence {\n return map {\n action(it)\n it\n }\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.reduce(operation: (acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty sequence can't be reduced.\")\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original sequence.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty sequence can't be reduced.\")\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the sequence.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the sequence.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic fun Sequence.requireNoNulls(): Sequence {\n return map { it ?: throw IllegalArgumentException(\"null element found in $this.\") }\n}\n\n/**\n * Splits this sequence into a sequence of lists each not exceeding the given [size].\n * \n * The last list in the resulting sequence may have less elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this sequence.\n *\n * The operation is _intermediate_ and _stateful_.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun Sequence.chunked(size: Int): Sequence> {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this sequence into several lists each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return sequence of results of the [transform] applied to an each list.\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last list may have less elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this sequence.\n *\n * The operation is _intermediate_ and _stateful_.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun Sequence.chunked(size: Int, transform: (List) -> R): Sequence {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Returns a sequence containing all elements of the original sequence without the first occurrence of the given [element].\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic operator fun Sequence.minus(element: T): Sequence {\n return object: Sequence {\n override fun iterator(): Iterator {\n var removed = false\n return this@minus.filter { if (!removed && it == element) { removed = true; false } else true }.iterator()\n }\n }\n}\n\n/**\n * Returns a sequence containing all elements of original sequence except the elements contained in the given [elements] array.\n * \n * Note that the source sequence and the array being subtracted are iterated only when an `iterator` is requested from\n * the resulting sequence. Changing any of them between successive calls to `iterator` may affect the result.\n * \n * The [elements] array may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic operator fun Sequence.minus(elements: Array): Sequence {\n if (elements.isEmpty()) return this\n return object: Sequence {\n override fun iterator(): Iterator {\n val other = elements.toHashSet()\n return this@minus.filterNot { it in other }.iterator()\n }\n }\n}\n\n/**\n * Returns a sequence containing all elements of original sequence except the elements contained in the given [elements] collection.\n * \n * Note that the source sequence and the collection being subtracted are iterated only when an `iterator` is requested from\n * the resulting sequence. Changing any of them between successive calls to `iterator` may affect the result.\n * \n * The [elements] collection may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n *\n * The operation is _intermediate_ and _stateful_.\n */\npublic operator fun Sequence.minus(elements: Iterable): Sequence {\n return object: Sequence {\n override fun iterator(): Iterator {\n val other = elements.convertToSetForSetOperation()\n if (other.isEmpty())\n return this@minus.iterator()\n else\n return this@minus.filterNot { it in other }.iterator()\n }\n }\n}\n\n/**\n * Returns a sequence containing all elements of original sequence except the elements contained in the given [elements] sequence.\n * \n * Note that the source sequence and the sequence being subtracted are iterated only when an `iterator` is requested from\n * the resulting sequence. Changing any of them between successive calls to `iterator` may affect the result.\n * \n * The operation is _intermediate_ for this sequence and _terminal_ and _stateful_ for the [elements] sequence.\n * \n * The [elements] sequence may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Sequence.minus(elements: Sequence): Sequence {\n return object: Sequence {\n override fun iterator(): Iterator {\n val other = elements.toHashSet()\n if (other.isEmpty())\n return this@minus.iterator()\n else\n return this@minus.filterNot { it in other }.iterator()\n }\n }\n}\n\n/**\n * Returns a sequence containing all elements of the original sequence without the first occurrence of the given [element].\n *\n * The operation is _intermediate_ and _stateless_.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.minusElement(element: T): Sequence {\n return minus(element)\n}\n\n/**\n * Splits the original sequence into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n *\n * The operation is _terminal_.\n */\npublic inline fun Sequence.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a sequence containing all elements of the original sequence and then the given [element].\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic operator fun Sequence.plus(element: T): Sequence {\n return sequenceOf(this, sequenceOf(element)).flatten()\n}\n\n/**\n * Returns a sequence containing all elements of original sequence and then all elements of the given [elements] array.\n * \n * Note that the source sequence and the array being added are iterated only when an `iterator` is requested from\n * the resulting sequence. Changing any of them between successive calls to `iterator` may affect the result.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic operator fun Sequence.plus(elements: Array): Sequence {\n return this.plus(elements.asList())\n}\n\n/**\n * Returns a sequence containing all elements of original sequence and then all elements of the given [elements] collection.\n * \n * Note that the source sequence and the collection being added are iterated only when an `iterator` is requested from\n * the resulting sequence. Changing any of them between successive calls to `iterator` may affect the result.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic operator fun Sequence.plus(elements: Iterable): Sequence {\n return sequenceOf(this, elements.asSequence()).flatten()\n}\n\n/**\n * Returns a sequence containing all elements of original sequence and then all elements of the given [elements] sequence.\n * \n * Note that the source sequence and the sequence being added are iterated only when an `iterator` is requested from\n * the resulting sequence. Changing any of them between successive calls to `iterator` may affect the result.\n *\n * The operation is _intermediate_ and _stateless_.\n */\npublic operator fun Sequence.plus(elements: Sequence): Sequence {\n return sequenceOf(this, elements).flatten()\n}\n\n/**\n * Returns a sequence containing all elements of the original sequence and then the given [element].\n *\n * The operation is _intermediate_ and _stateless_.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.plusElement(element: T): Sequence {\n return plus(element)\n}\n\n/**\n * Returns a sequence of snapshots of the window of the given [size]\n * sliding along this sequence with the given [step], where each\n * snapshot is a list.\n * \n * Several last lists may have less elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Sequence.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): Sequence> {\n return windowedSequence(size, step, partialWindows, reuseBuffer = false)\n}\n\n/**\n * Returns a sequence of results of applying the given [transform] function to\n * an each list representing a view over the window of the given [size]\n * sliding along this sequence with the given [step].\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last lists may have less elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Sequence.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (List) -> R): Sequence {\n return windowedSequence(size, step, partialWindows, reuseBuffer = true).map(transform)\n}\n\n/**\n * Returns a sequence of values built from the elements of `this` sequence and the [other] sequence with the same index.\n * The resulting sequence ends as soon as the shortest input sequence ends.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Sequences.Transformations.zip\n */\npublic infix fun Sequence.zip(other: Sequence): Sequence> {\n return MergingSequence(this, other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a sequence of values built from the elements of `this` sequence and the [other] sequence with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The resulting sequence ends as soon as the shortest input sequence ends.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Sequences.Transformations.zipWithTransform\n */\npublic fun Sequence.zip(other: Sequence, transform: (a: T, b: R) -> V): Sequence {\n return MergingSequence(this, other, transform)\n}\n\n/**\n * Returns a sequence of pairs of each two adjacent elements in this sequence.\n * \n * The returned sequence is empty if this sequence contains less than two elements.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun Sequence.zipWithNext(): Sequence> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a sequence containing the results of applying the given [transform] function\n * to an each pair of two adjacent elements in this sequence.\n * \n * The returned sequence is empty if this sequence contains less than two elements.\n *\n * The operation is _intermediate_ and _stateless_.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic fun Sequence.zipWithNext(transform: (a: T, b: T) -> R): Sequence {\n return sequence result@ {\n val iterator = iterator()\n if (!iterator.hasNext()) return@result\n var current = iterator.next()\n while (iterator.hasNext()) {\n val next = iterator.next()\n yield(transform(current, next))\n current = next\n }\n }\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Sequence.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n *\n * The operation is _terminal_.\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Sequence.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original sequence returning its elements when being iterated.\n */\npublic fun Sequence.asIterable(): Iterable {\n return Iterable { this.iterator() }\n}\n\n/**\n * Returns this sequence as a [Sequence].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Sequence.asSequence(): Sequence {\n return this\n}\n\n/**\n * Returns an average value of elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Sequence.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Sequence.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Sequence.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Sequence.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Sequence.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Sequence.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Sequence.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Sequence.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Sequence.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Sequence.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Sequence.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Sequence.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n",null,"/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"SetsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns a set containing all elements of the original set except the given [element].\n * \n * The returned set preserves the element iteration order of the original set.\n */\npublic operator fun Set.minus(element: T): Set {\n val result = LinkedHashSet(mapCapacity(size))\n var removed = false\n return this.filterTo(result) { if (!removed && it == element) { removed = true; false } else true }\n}\n\n/**\n * Returns a set containing all elements of the original set except the elements contained in the given [elements] array.\n * \n * The returned set preserves the element iteration order of the original set.\n * \n * The [elements] array may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Set.minus(elements: Array): Set {\n val result = LinkedHashSet(this)\n result.removeAll(elements)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set except the elements contained in the given [elements] collection.\n * \n * The returned set preserves the element iteration order of the original set.\n * \n * The [elements] collection may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Set.minus(elements: Iterable): Set {\n val other = elements.convertToSetForSetOperationWith(this)\n if (other.isEmpty())\n return this.toSet()\n if (other is Set)\n return this.filterNotTo(LinkedHashSet()) { it in other }\n val result = LinkedHashSet(this)\n result.removeAll(other)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set except the elements contained in the given [elements] sequence.\n * \n * The returned set preserves the element iteration order of the original set.\n * \n * The [elements] sequence may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Set.minus(elements: Sequence): Set {\n val result = LinkedHashSet(this)\n result.removeAll(elements)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set except the given [element].\n * \n * The returned set preserves the element iteration order of the original set.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Set.minusElement(element: T): Set {\n return minus(element)\n}\n\n/**\n * Returns a set containing all elements of the original set and then the given [element] if it isn't already in this set.\n * \n * The returned set preserves the element iteration order of the original set.\n */\npublic operator fun Set.plus(element: T): Set {\n val result = LinkedHashSet(mapCapacity(size + 1))\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set and the given [elements] array,\n * which aren't already in this set.\n * \n * The returned set preserves the element iteration order of the original set.\n */\npublic operator fun Set.plus(elements: Array): Set {\n val result = LinkedHashSet(mapCapacity(this.size + elements.size))\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set and the given [elements] collection,\n * which aren't already in this set.\n * The returned set preserves the element iteration order of the original set.\n */\npublic operator fun Set.plus(elements: Iterable): Set {\n val result = LinkedHashSet(mapCapacity(elements.collectionSizeOrNull()?.let { this.size + it } ?: this.size * 2))\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set and the given [elements] sequence,\n * which aren't already in this set.\n * \n * The returned set preserves the element iteration order of the original set.\n */\npublic operator fun Set.plus(elements: Sequence): Set {\n val result = LinkedHashSet(mapCapacity(this.size * 2))\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a set containing all elements of the original set and then the given [element] if it isn't already in this set.\n * \n * The returned set preserves the element iteration order of the original set.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Set.plusElement(element: T): Set {\n return plus(element)\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns a character at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun CharSequence.elementAt(index: Int): Char\n\n/**\n * Returns a character at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.elementAtOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns a character at the given [index] or `null` if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.elementAtOrNull(index: Int): Char? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first character matching the given [predicate], or `null` if no such character was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.find(predicate: (Char) -> Boolean): Char? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last character matching the given [predicate], or `null` if no such character was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first character.\n * @throws [NoSuchElementException] if the char sequence is empty.\n */\npublic fun CharSequence.first(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Char sequence is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first character matching the given [predicate].\n * @throws [NoSuchElementException] if no such character is found.\n */\npublic inline fun CharSequence.first(predicate: (Char) -> Boolean): Char {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Char sequence contains no character matching the predicate.\")\n}\n\n/**\n * Returns the first character, or `null` if the char sequence is empty.\n */\npublic fun CharSequence.firstOrNull(): Char? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first character matching the given [predicate], or `null` if character was not found.\n */\npublic inline fun CharSequence.firstOrNull(predicate: (Char) -> Boolean): Char? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns a character at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this char sequence.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.getOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns a character at the given [index] or `null` if the [index] is out of bounds of this char sequence.\n */\npublic fun CharSequence.getOrNull(index: Int): Char? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns index of the first character matching the given [predicate], or -1 if the char sequence does not contain such character.\n */\npublic inline fun CharSequence.indexOfFirst(predicate: (Char) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last character matching the given [predicate], or -1 if the char sequence does not contain such character.\n */\npublic inline fun CharSequence.indexOfLast(predicate: (Char) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last character.\n * @throws [NoSuchElementException] if the char sequence is empty.\n */\npublic fun CharSequence.last(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Char sequence is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last character matching the given [predicate].\n * @throws [NoSuchElementException] if no such character is found.\n */\npublic inline fun CharSequence.last(predicate: (Char) -> Boolean): Char {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Char sequence contains no character matching the predicate.\")\n}\n\n/**\n * Returns the last character, or `null` if the char sequence is empty.\n */\npublic fun CharSequence.lastOrNull(): Char? {\n return if (isEmpty()) null else this[length - 1]\n}\n\n/**\n * Returns the last character matching the given [predicate], or `null` if no such character was found.\n */\npublic inline fun CharSequence.lastOrNull(predicate: (Char) -> Boolean): Char? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random character from this char sequence.\n * \n * @throws NoSuchElementException if this char sequence is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.random(): Char {\n return random(Random)\n}\n\n/**\n * Returns a random character from this char sequence using the specified source of randomness.\n * \n * @throws NoSuchElementException if this char sequence is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun CharSequence.random(random: Random): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Char sequence is empty.\")\n return get(random.nextInt(length))\n}\n\n/**\n * Returns the single character, or throws an exception if the char sequence is empty or has more than one character.\n */\npublic fun CharSequence.single(): Char {\n return when (length) {\n 0 -> throw NoSuchElementException(\"Char sequence is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Char sequence has more than one element.\")\n }\n}\n\n/**\n * Returns the single character matching the given [predicate], or throws exception if there is no or more than one matching character.\n */\npublic inline fun CharSequence.single(predicate: (Char) -> Boolean): Char {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Char sequence contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Char sequence contains no character matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Char\n}\n\n/**\n * Returns single character, or `null` if the char sequence is empty or has more than one character.\n */\npublic fun CharSequence.singleOrNull(): Char? {\n return if (length == 1) this[0] else null\n}\n\n/**\n * Returns the single character matching the given [predicate], or `null` if character was not found or more than one character was found.\n */\npublic inline fun CharSequence.singleOrNull(predicate: (Char) -> Boolean): Char? {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a subsequence of this char sequence with the first [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun CharSequence.drop(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return subSequence(n.coerceAtMost(length), length)\n}\n\n/**\n * Returns a string with the first [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun String.drop(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return substring(n.coerceAtMost(length))\n}\n\n/**\n * Returns a subsequence of this char sequence with the last [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun CharSequence.dropLast(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return take((length - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a string with the last [n] characters removed.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.drop\n */\npublic fun String.dropLast(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return take((length - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a subsequence of this char sequence containing all characters except last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun CharSequence.dropLastWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in lastIndex downTo 0)\n if (!predicate(this[index]))\n return subSequence(0, index + 1)\n return \"\"\n}\n\n/**\n * Returns a string containing all characters except last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun String.dropLastWhile(predicate: (Char) -> Boolean): String {\n for (index in lastIndex downTo 0)\n if (!predicate(this[index]))\n return substring(0, index + 1)\n return \"\"\n}\n\n/**\n * Returns a subsequence of this char sequence containing all characters except first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun CharSequence.dropWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in this.indices)\n if (!predicate(this[index]))\n return subSequence(index, length)\n return \"\"\n}\n\n/**\n * Returns a string containing all characters except first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.drop\n */\npublic inline fun String.dropWhile(predicate: (Char) -> Boolean): String {\n for (index in this.indices)\n if (!predicate(this[index]))\n return substring(index)\n return \"\"\n}\n\n/**\n * Returns a char sequence containing only those characters from the original char sequence that match the given [predicate].\n */\npublic inline fun CharSequence.filter(predicate: (Char) -> Boolean): CharSequence {\n return filterTo(StringBuilder(), predicate)\n}\n\n/**\n * Returns a string containing only those characters from the original string that match the given [predicate].\n */\npublic inline fun String.filter(predicate: (Char) -> Boolean): String {\n return filterTo(StringBuilder(), predicate).toString()\n}\n\n/**\n * Returns a char sequence containing only those characters from the original char sequence that match the given [predicate].\n * @param [predicate] function that takes the index of a character and the character itself\n * and returns the result of predicate evaluation on the character.\n */\npublic inline fun CharSequence.filterIndexed(predicate: (index: Int, Char) -> Boolean): CharSequence {\n return filterIndexedTo(StringBuilder(), predicate)\n}\n\n/**\n * Returns a string containing only those characters from the original string that match the given [predicate].\n * @param [predicate] function that takes the index of a character and the character itself\n * and returns the result of predicate evaluation on the character.\n */\npublic inline fun String.filterIndexed(predicate: (index: Int, Char) -> Boolean): String {\n return filterIndexedTo(StringBuilder(), predicate).toString()\n}\n\n/**\n * Appends all characters matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of a character and the character itself\n * and returns the result of predicate evaluation on the character.\n */\npublic inline fun CharSequence.filterIndexedTo(destination: C, predicate: (index: Int, Char) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.append(element)\n }\n return destination\n}\n\n/**\n * Returns a char sequence containing only those characters from the original char sequence that do not match the given [predicate].\n */\npublic inline fun CharSequence.filterNot(predicate: (Char) -> Boolean): CharSequence {\n return filterNotTo(StringBuilder(), predicate)\n}\n\n/**\n * Returns a string containing only those characters from the original string that do not match the given [predicate].\n */\npublic inline fun String.filterNot(predicate: (Char) -> Boolean): String {\n return filterNotTo(StringBuilder(), predicate).toString()\n}\n\n/**\n * Appends all characters not matching the given [predicate] to the given [destination].\n */\npublic inline fun CharSequence.filterNotTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.append(element)\n return destination\n}\n\n/**\n * Appends all characters matching the given [predicate] to the given [destination].\n */\npublic inline fun CharSequence.filterTo(destination: C, predicate: (Char) -> Boolean): C {\n for (index in 0 until length) {\n val element = get(index)\n if (predicate(element)) destination.append(element)\n }\n return destination\n}\n\n/**\n * Returns a char sequence containing characters of the original char sequence at the specified range of [indices].\n */\npublic fun CharSequence.slice(indices: IntRange): CharSequence {\n if (indices.isEmpty()) return \"\"\n return subSequence(indices)\n}\n\n/**\n * Returns a string containing characters of the original string at the specified range of [indices].\n */\npublic fun String.slice(indices: IntRange): String {\n if (indices.isEmpty()) return \"\"\n return substring(indices)\n}\n\n/**\n * Returns a char sequence containing characters of the original char sequence at specified [indices].\n */\npublic fun CharSequence.slice(indices: Iterable): CharSequence {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return \"\"\n val result = StringBuilder(size)\n for (i in indices) {\n result.append(get(i))\n }\n return result\n}\n\n/**\n * Returns a string containing characters of the original string at specified [indices].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.slice(indices: Iterable): String {\n return (this as CharSequence).slice(indices).toString()\n}\n\n/**\n * Returns a subsequence of this char sequence containing the first [n] characters from this char sequence, or the entire char sequence if this char sequence is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun CharSequence.take(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return subSequence(0, n.coerceAtMost(length))\n}\n\n/**\n * Returns a string containing the first [n] characters from this string, or the entire string if this string is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun String.take(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n return substring(0, n.coerceAtMost(length))\n}\n\n/**\n * Returns a subsequence of this char sequence containing the last [n] characters from this char sequence, or the entire char sequence if this char sequence is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun CharSequence.takeLast(n: Int): CharSequence {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n val length = length\n return subSequence(length - n.coerceAtMost(length), length)\n}\n\n/**\n * Returns a string containing the last [n] characters from this string, or the entire string if this string is shorter.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.text.Strings.take\n */\npublic fun String.takeLast(n: Int): String {\n require(n >= 0) { \"Requested character count $n is less than zero.\" }\n val length = length\n return substring(length - n.coerceAtMost(length))\n}\n\n/**\n * Returns a subsequence of this char sequence containing last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun CharSequence.takeLastWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return subSequence(index + 1, length)\n }\n }\n return subSequence(0, length)\n}\n\n/**\n * Returns a string containing last characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun String.takeLastWhile(predicate: (Char) -> Boolean): String {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return substring(index + 1)\n }\n }\n return this\n}\n\n/**\n * Returns a subsequence of this char sequence containing the first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun CharSequence.takeWhile(predicate: (Char) -> Boolean): CharSequence {\n for (index in 0 until length)\n if (!predicate(get(index))) {\n return subSequence(0, index)\n }\n return subSequence(0, length)\n}\n\n/**\n * Returns a string containing the first characters that satisfy the given [predicate].\n * \n * @sample samples.text.Strings.take\n */\npublic inline fun String.takeWhile(predicate: (Char) -> Boolean): String {\n for (index in 0 until length)\n if (!predicate(get(index))) {\n return substring(0, index)\n }\n return this\n}\n\n/**\n * Returns a char sequence with characters in reversed order.\n */\npublic fun CharSequence.reversed(): CharSequence {\n return StringBuilder(this).reverse()\n}\n\n/**\n * Returns a string with characters in reversed order.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.reversed(): String {\n return (this as CharSequence).reversed().toString()\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to characters of the given char sequence.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n */\npublic inline fun CharSequence.associate(transform: (Char) -> Pair): Map {\n val capacity = mapCapacity(length).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the characters from the given char sequence indexed by the key\n * returned from [keySelector] function applied to each character.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n */\npublic inline fun CharSequence.associateBy(keySelector: (Char) -> K): Map {\n val capacity = mapCapacity(length).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to characters of the given char sequence.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n */\npublic inline fun CharSequence.associateBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map {\n val capacity = mapCapacity(length).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each character of the given char sequence\n * and value is the character itself.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > CharSequence.associateByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to characters of the given char sequence.\n * \n * If any two characters would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > CharSequence.associateByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each character of the given char sequence.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > CharSequence.associateTo(destination: M, transform: (Char) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are characters from the given char sequence and values are\n * produced by the [valueSelector] function applied to each character.\n * \n * If any two characters are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original char sequence.\n * \n * @sample samples.text.Strings.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun CharSequence.associateWith(valueSelector: (Char) -> V): Map {\n val result = LinkedHashMap(mapCapacity(length).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each character of the given char sequence,\n * where key is the character itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two characters are equal, the last one overwrites the former value in the map.\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > CharSequence.associateWithTo(destination: M, valueSelector: (Char) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all characters to the given [destination] collection.\n */\npublic fun > CharSequence.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a [HashSet] of all characters.\n */\npublic fun CharSequence.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(length)))\n}\n\n/**\n * Returns a [List] containing all characters.\n */\npublic fun CharSequence.toList(): List {\n return when (length) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [MutableList] filled with all characters of this char sequence.\n */\npublic fun CharSequence.toMutableList(): MutableList {\n return toCollection(ArrayList(length))\n}\n\n/**\n * Returns a [Set] of all characters.\n * \n * The returned set preserves the element iteration order of the original char sequence.\n */\npublic fun CharSequence.toSet(): Set {\n return when (length) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(length)))\n }\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each character of original char sequence.\n */\npublic inline fun CharSequence.flatMap(transform: (Char) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each character of original char sequence, to the given [destination].\n */\npublic inline fun > CharSequence.flatMapTo(destination: C, transform: (Char) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups characters of the original char sequence by the key returned by the given [keySelector] function\n * applied to each character and returns a map where each group key is associated with a list of corresponding characters.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun CharSequence.groupBy(keySelector: (Char) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each character of the original char sequence\n * by the key returned by the given [keySelector] function applied to the character\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original char sequence.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun CharSequence.groupBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups characters of the original char sequence by the key returned by the given [keySelector] function\n * applied to each character and puts to the [destination] map each group key associated with a list of corresponding characters.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> CharSequence.groupByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each character of the original char sequence\n * by the key returned by the given [keySelector] function applied to the character\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> CharSequence.groupByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a char sequence to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each character.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun CharSequence.groupingBy(crossinline keySelector: (Char) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: Char): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each character in the original char sequence.\n * \n * @sample samples.text.Strings.map\n */\npublic inline fun CharSequence.map(transform: (Char) -> R): List {\n return mapTo(ArrayList(length), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each character and its index in the original char sequence.\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun CharSequence.mapIndexed(transform: (index: Int, Char) -> R): List {\n return mapIndexedTo(ArrayList(length), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each character and its index in the original char sequence.\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun CharSequence.mapIndexedNotNull(transform: (index: Int, Char) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each character and its index in the original char sequence\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun > CharSequence.mapIndexedNotNullTo(destination: C, transform: (index: Int, Char) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each character and its index in the original char sequence\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of a character and the character itself\n * and returns the result of the transform applied to the character.\n */\npublic inline fun > CharSequence.mapIndexedTo(destination: C, transform: (index: Int, Char) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each character in the original char sequence.\n */\npublic inline fun CharSequence.mapNotNull(transform: (Char) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each character in the original char sequence\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > CharSequence.mapNotNullTo(destination: C, transform: (Char) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each character of the original char sequence\n * and appends the results to the given [destination].\n */\npublic inline fun > CharSequence.mapTo(destination: C, transform: (Char) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each character of the original char sequence.\n */\npublic fun CharSequence.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns `true` if all characters match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun CharSequence.all(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if char sequence has at least one character.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun CharSequence.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one character matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun CharSequence.any(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the length of this char sequence.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.count(): Int {\n return length\n}\n\n/**\n * Returns the number of characters matching the given [predicate].\n */\npublic inline fun CharSequence.count(predicate: (Char) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each character.\n */\npublic inline fun CharSequence.fold(initial: R, operation: (acc: R, Char) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each character with its index in the original char sequence.\n * @param [operation] function that takes the index of a character, current accumulator value\n * and the character itself, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.foldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each character and current accumulator value.\n */\npublic inline fun CharSequence.foldRight(initial: R, operation: (Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each character with its index in the original char sequence and current accumulator value.\n * @param [operation] function that takes the index of a character, the character itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.foldRightIndexed(initial: R, operation: (index: Int, Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each character.\n */\npublic inline fun CharSequence.forEach(action: (Char) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each character, providing sequential index with the character.\n * @param [action] function that takes the index of a character and the character itself\n * and performs the desired action on the character.\n */\npublic inline fun CharSequence.forEachIndexed(action: (index: Int, Char) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Returns the largest character or `null` if there are no characters.\n */\npublic fun CharSequence.max(): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first character yielding the largest value of the given function or `null` if there are no characters.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > CharSequence.maxBy(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first character having the largest value according to the provided [comparator] or `null` if there are no characters.\n */\npublic fun CharSequence.maxWith(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest character or `null` if there are no characters.\n */\npublic fun CharSequence.min(): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first character yielding the smallest value of the given function or `null` if there are no characters.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > CharSequence.minBy(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first character having the smallest value according to the provided [comparator] or `null` if there are no characters.\n */\npublic fun CharSequence.minWith(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the char sequence has no characters.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun CharSequence.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no characters match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun CharSequence.none(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each character and returns the char sequence itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun S.onEach(action: (Char) -> Unit): S {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Accumulates value starting with the first character and applying [operation] from left to right to current accumulator value and each character.\n */\npublic inline fun CharSequence.reduce(operation: (acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first character and applying [operation] from left to right\n * to current accumulator value and each character with its index in the original char sequence.\n * @param [operation] function that takes the index of a character, current accumulator value\n * and the character itself and calculates the next accumulator value.\n */\npublic inline fun CharSequence.reduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last character and applying [operation] from right to left to each character and current accumulator value.\n */\npublic inline fun CharSequence.reduceRight(operation: (Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last character and applying [operation] from right to left\n * to each character with its index in the original char sequence and current accumulator value.\n * @param [operation] function that takes the index of a character, the character itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharSequence.reduceRightIndexed(operation: (index: Int, Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty char sequence can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\npublic inline fun CharSequence.sumBy(selector: (Char) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each character in the char sequence.\n */\npublic inline fun CharSequence.sumByDouble(selector: (Char) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Splits this char sequence into a list of strings each not exceeding the given [size].\n * \n * The last string in the resulting list may have less characters than the given [size].\n * \n * @param size the number of elements to take in each string, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunked(size: Int): List {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this char sequence into several char sequences each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return list of results of the [transform] applied to an each char sequence.\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last char sequence may have less characters than the given [size].\n * \n * @param size the number of elements to take in each char sequence, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunked(size: Int, transform: (CharSequence) -> R): List {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Splits this char sequence into a sequence of strings each not exceeding the given [size].\n * \n * The last string in the resulting sequence may have less characters than the given [size].\n * \n * @param size the number of elements to take in each string, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunkedSequence(size: Int): Sequence {\n return chunkedSequence(size) { it.toString() }\n}\n\n/**\n * Splits this char sequence into several char sequences each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return sequence of results of the [transform] applied to an each char sequence.\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last char sequence may have less characters than the given [size].\n * \n * @param size the number of elements to take in each char sequence, must be positive and can be greater than the number of elements in this char sequence.\n * \n * @sample samples.text.Strings.chunkedTransformToSequence\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.chunkedSequence(size: Int, transform: (CharSequence) -> R): Sequence {\n return windowedSequence(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Splits the original char sequence into pair of char sequences,\n * where *first* char sequence contains characters for which [predicate] yielded `true`,\n * while *second* char sequence contains characters for which [predicate] yielded `false`.\n */\npublic inline fun CharSequence.partition(predicate: (Char) -> Boolean): Pair {\n val first = StringBuilder()\n val second = StringBuilder()\n for (element in this) {\n if (predicate(element)) {\n first.append(element)\n } else {\n second.append(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original string into pair of strings,\n * where *first* string contains characters for which [predicate] yielded `true`,\n * while *second* string contains characters for which [predicate] yielded `false`.\n */\npublic inline fun String.partition(predicate: (Char) -> Boolean): Pair {\n val first = StringBuilder()\n val second = StringBuilder()\n for (element in this) {\n if (predicate(element)) {\n first.append(element)\n } else {\n second.append(element)\n }\n }\n return Pair(first.toString(), second.toString())\n}\n\n/**\n * Returns a list of snapshots of the window of the given [size]\n * sliding along this char sequence with the given [step], where each\n * snapshot is a string.\n * \n * Several last strings may have less characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List {\n return windowed(size, step, partialWindows) { it.toString() }\n}\n\n/**\n * Returns a list of results of applying the given [transform] function to\n * an each char sequence representing a view over the window of the given [size]\n * sliding along this char sequence with the given [step].\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last char sequences may have less characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (CharSequence) -> R): List {\n checkWindowSizeStep(size, step)\n val thisSize = this.length\n val result = ArrayList((thisSize + step - 1) / step)\n var index = 0\n while (index < thisSize) {\n val end = index + size\n val coercedEnd = if (end > thisSize) { if (partialWindows) thisSize else break } else end\n result.add(transform(subSequence(index, coercedEnd)))\n index += step\n }\n return result\n}\n\n/**\n * Returns a sequence of snapshots of the window of the given [size]\n * sliding along this char sequence with the given [step], where each\n * snapshot is a string.\n * \n * Several last strings may have less characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowedSequence(size: Int, step: Int = 1, partialWindows: Boolean = false): Sequence {\n return windowedSequence(size, step, partialWindows) { it.toString() }\n}\n\n/**\n * Returns a sequence of results of applying the given [transform] function to\n * an each char sequence representing a view over the window of the given [size]\n * sliding along this char sequence with the given [step].\n * \n * Note that the char sequence passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last char sequences may have less characters than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this char sequence.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.windowedSequence(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (CharSequence) -> R): Sequence {\n checkWindowSizeStep(size, step)\n val windows = (if (partialWindows) indices else 0 until length - size + 1) step step\n return windows.asSequence().map { index -> transform(subSequence(index, (index + size).coerceAtMost(length))) }\n}\n\n/**\n * Returns a list of pairs built from the characters of `this` and the [other] char sequences with the same index\n * The returned list has length of the shortest char sequence.\n * \n * @sample samples.text.Strings.zip\n */\npublic infix fun CharSequence.zip(other: CharSequence): List> {\n return zip(other) { c1, c2 -> c1 to c2 }\n}\n\n/**\n * Returns a list of values built from the characters of `this` and the [other] char sequences with the same index\n * using the provided [transform] function applied to each pair of characters.\n * The returned list has length of the shortest char sequence.\n * \n * @sample samples.text.Strings.zipWithTransform\n */\npublic inline fun CharSequence.zip(other: CharSequence, transform: (a: Char, b: Char) -> V): List {\n val length = minOf(this.length, other.length)\n val list = ArrayList(length)\n for (i in 0 until length) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs of each two adjacent characters in this char sequence.\n * \n * The returned list is empty if this char sequence contains less than two characters.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun CharSequence.zipWithNext(): List> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to an each pair of two adjacent characters in this char sequence.\n * \n * The returned list is empty if this char sequence contains less than two characters.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic inline fun CharSequence.zipWithNext(transform: (a: Char, b: Char) -> R): List {\n val size = length - 1\n if (size < 1) return emptyList()\n val result = ArrayList(size)\n for (index in 0 until size) {\n result.add(transform(this[index], this[index + 1]))\n }\n return result\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original char sequence returning its characters when being iterated.\n */\npublic fun CharSequence.asIterable(): Iterable {\n if (this is String && isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original char sequence returning its characters when being iterated.\n */\npublic fun CharSequence.asSequence(): Sequence {\n if (this is String && isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\nimport kotlin.contracts.contract\n\n/**\n * Returns a sub sequence of this char sequence having leading and trailing characters matching the [predicate] removed.\n */\npublic inline fun CharSequence.trim(predicate: (Char) -> Boolean): CharSequence {\n var startIndex = 0\n var endIndex = length - 1\n var startFound = false\n\n while (startIndex <= endIndex) {\n val index = if (!startFound) startIndex else endIndex\n val match = predicate(this[index])\n\n if (!startFound) {\n if (!match)\n startFound = true\n else\n startIndex += 1\n } else {\n if (!match)\n break\n else\n endIndex -= 1\n }\n }\n\n return subSequence(startIndex, endIndex + 1)\n}\n\n/**\n * Returns a string having leading and trailing characters matching the [predicate] removed.\n */\npublic inline fun String.trim(predicate: (Char) -> Boolean): String =\n (this as CharSequence).trim(predicate).toString()\n\n/**\n * Returns a sub sequence of this char sequence having leading characters matching the [predicate] removed.\n */\npublic inline fun CharSequence.trimStart(predicate: (Char) -> Boolean): CharSequence {\n for (index in this.indices)\n if (!predicate(this[index]))\n return subSequence(index, length)\n\n return \"\"\n}\n\n/**\n * Returns a string having leading characters matching the [predicate] removed.\n */\npublic inline fun String.trimStart(predicate: (Char) -> Boolean): String =\n (this as CharSequence).trimStart(predicate).toString()\n\n/**\n * Returns a sub sequence of this char sequence having trailing characters matching the [predicate] removed.\n */\npublic inline fun CharSequence.trimEnd(predicate: (Char) -> Boolean): CharSequence {\n for (index in this.indices.reversed())\n if (!predicate(this[index]))\n return subSequence(0, index + 1)\n\n return \"\"\n}\n\n/**\n * Returns a string having trailing characters matching the [predicate] removed.\n */\npublic inline fun String.trimEnd(predicate: (Char) -> Boolean): String =\n (this as CharSequence).trimEnd(predicate).toString()\n\n/**\n * Returns a sub sequence of this char sequence having leading and trailing characters from the [chars] array removed.\n */\npublic fun CharSequence.trim(vararg chars: Char): CharSequence = trim { it in chars }\n\n/**\n * Returns a string having leading and trailing characters from the [chars] array removed.\n */\npublic fun String.trim(vararg chars: Char): String = trim { it in chars }\n\n/**\n * Returns a sub sequence of this char sequence having leading characters from the [chars] array removed.\n */\npublic fun CharSequence.trimStart(vararg chars: Char): CharSequence = trimStart { it in chars }\n\n/**\n * Returns a string having leading characters from the [chars] array removed.\n */\npublic fun String.trimStart(vararg chars: Char): String = trimStart { it in chars }\n\n/**\n * Returns a sub sequence of this char sequence having trailing characters from the [chars] array removed.\n */\npublic fun CharSequence.trimEnd(vararg chars: Char): CharSequence = trimEnd { it in chars }\n\n/**\n * Returns a string having trailing characters from the [chars] array removed.\n */\npublic fun String.trimEnd(vararg chars: Char): String = trimEnd { it in chars }\n\n/**\n * Returns a sub sequence of this char sequence having leading and trailing whitespace removed.\n */\npublic fun CharSequence.trim(): CharSequence = trim(Char::isWhitespace)\n\n/**\n * Returns a string having leading and trailing whitespace removed.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.trim(): String = (this as CharSequence).trim().toString()\n\n/**\n * Returns a sub sequence of this char sequence having leading whitespace removed.\n */\npublic fun CharSequence.trimStart(): CharSequence = trimStart(Char::isWhitespace)\n\n/**\n * Returns a string having leading whitespace removed.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.trimStart(): String = (this as CharSequence).trimStart().toString()\n\n/**\n * Returns a sub sequence of this char sequence having trailing whitespace removed.\n */\npublic fun CharSequence.trimEnd(): CharSequence = trimEnd(Char::isWhitespace)\n\n/**\n * Returns a string having trailing whitespace removed.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.trimEnd(): String = (this as CharSequence).trimEnd().toString()\n\n/**\n * Returns a char sequence with content of this char sequence padded at the beginning\n * to the specified [length] with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a char sequence of length at least [length] consisting of `this` char sequence prepended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padStart\n */\npublic fun CharSequence.padStart(length: Int, padChar: Char = ' '): CharSequence {\n if (length < 0)\n throw IllegalArgumentException(\"Desired length $length is less than zero.\")\n if (length <= this.length)\n return this.subSequence(0, this.length)\n\n val sb = StringBuilder(length)\n for (i in 1..(length - this.length))\n sb.append(padChar)\n sb.append(this)\n return sb\n}\n\n/**\n * Pads the string to the specified [length] at the beginning with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a string of length at least [length] consisting of `this` string prepended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padStart\n */\npublic fun String.padStart(length: Int, padChar: Char = ' '): String =\n (this as CharSequence).padStart(length, padChar).toString()\n\n/**\n * Returns a char sequence with content of this char sequence padded at the end\n * to the specified [length] with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a char sequence of length at least [length] consisting of `this` char sequence appended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padEnd\n */\npublic fun CharSequence.padEnd(length: Int, padChar: Char = ' '): CharSequence {\n if (length < 0)\n throw IllegalArgumentException(\"Desired length $length is less than zero.\")\n if (length <= this.length)\n return this.subSequence(0, this.length)\n\n val sb = StringBuilder(length)\n sb.append(this)\n for (i in 1..(length - this.length))\n sb.append(padChar)\n return sb\n}\n\n/**\n * Pads the string to the specified [length] at the end with the specified character or space.\n *\n * @param length the desired string length.\n * @param padChar the character to pad string with, if it has length less than the [length] specified. Space is used by default.\n * @return Returns a string of length at least [length] consisting of `this` string appended with [padChar] as many times\n * as are necessary to reach that length.\n * @sample samples.text.Strings.padEnd\n */\npublic fun String.padEnd(length: Int, padChar: Char = ' '): String =\n (this as CharSequence).padEnd(length, padChar).toString()\n\n/**\n * Returns `true` if this nullable char sequence is either `null` or empty.\n *\n * @sample samples.text.Strings.stringIsNullOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.length == 0\n}\n\n/**\n * Returns `true` if this char sequence is empty (contains no characters).\n *\n * @sample samples.text.Strings.stringIsEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.isEmpty(): Boolean = length == 0\n\n/**\n * Returns `true` if this char sequence is not empty.\n *\n * @sample samples.text.Strings.stringIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.isNotEmpty(): Boolean = length > 0\n\n// implemented differently in JVM and JS\n//public fun String.isBlank(): Boolean = length() == 0 || all { it.isWhitespace() }\n\n\n/**\n * Returns `true` if this char sequence is not empty and contains some characters except of whitespace characters.\n *\n * @sample samples.text.Strings.stringIsNotBlank\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.isNotBlank(): Boolean = !isBlank()\n\n/**\n * Returns `true` if this nullable char sequence is either `null` or empty or consists solely of whitespace characters.\n *\n * @sample samples.text.Strings.stringIsNullOrBlank\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence?.isNullOrBlank(): Boolean {\n contract {\n returns(false) implies (this@isNullOrBlank != null)\n }\n\n return this == null || this.isBlank()\n}\n\n/**\n * Iterator for characters of the given char sequence.\n */\npublic operator fun CharSequence.iterator(): CharIterator = object : CharIterator() {\n private var index = 0\n\n public override fun nextChar(): Char = get(index++)\n\n public override fun hasNext(): Boolean = index < length\n}\n\n/** Returns the string if it is not `null`, or the empty string otherwise. */\n@kotlin.internal.InlineOnly\npublic inline fun String?.orEmpty(): String = this ?: \"\"\n\n/**\n * Returns this char sequence if it's not empty\n * or the result of calling [defaultValue] function if the char sequence is empty.\n *\n * @sample samples.text.Strings.stringIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : CharSequence, C : R =\n if (isEmpty()) defaultValue() else this\n\n/**\n * Returns this char sequence if it is not empty and doesn't consist solely of whitespace characters,\n * or the result of calling [defaultValue] function otherwise.\n *\n * @sample samples.text.Strings.stringIfBlank\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifBlank(defaultValue: () -> R): R where C : CharSequence, C : R =\n if (isBlank()) defaultValue() else this\n\n/**\n * Returns the range of valid character indices for this char sequence.\n */\npublic val CharSequence.indices: IntRange\n get() = 0..length - 1\n\n/**\n * Returns the index of the last character in the char sequence or -1 if it is empty.\n */\npublic val CharSequence.lastIndex: Int\n get() = this.length - 1\n\n/**\n * Returns `true` if this CharSequence has Unicode surrogate pair at the specified [index].\n */\npublic fun CharSequence.hasSurrogatePairAt(index: Int): Boolean {\n return index in 0..length - 2\n && this[index].isHighSurrogate()\n && this[index + 1].isLowSurrogate()\n}\n\n/**\n * Returns a substring specified by the given [range] of indices.\n */\npublic fun String.substring(range: IntRange): String = substring(range.start, range.endInclusive + 1)\n\n/**\n * Returns a subsequence of this char sequence specified by the given [range] of indices.\n */\npublic fun CharSequence.subSequence(range: IntRange): CharSequence = subSequence(range.start, range.endInclusive + 1)\n\n/**\n * Returns a subsequence of this char sequence.\n *\n * This extension is chosen only for invocation with old-named parameters.\n * Replace parameter names with the same as those of [CharSequence.subSequence].\n */\n@kotlin.internal.InlineOnly\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning\n@Deprecated(\"Use parameters named startIndex and endIndex.\", ReplaceWith(\"subSequence(startIndex = start, endIndex = end)\"))\npublic inline fun String.subSequence(start: Int, end: Int): CharSequence = subSequence(start, end)\n\n/**\n * Returns a substring of chars from a range of this char sequence starting at the [startIndex] and ending right before the [endIndex].\n *\n * @param startIndex the start index (inclusive).\n * @param endIndex the end index (exclusive). If not specified, the length of the char sequence is used.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.substring(startIndex: Int, endIndex: Int = length): String = subSequence(startIndex, endIndex).toString()\n\n/**\n * Returns a substring of chars at indices from the specified [range] of this char sequence.\n */\npublic fun CharSequence.substring(range: IntRange): String = subSequence(range.start, range.endInclusive + 1).toString()\n\n/**\n * Returns a substring before the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBefore(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring before the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBefore(delimiter: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring after the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfter(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + 1, length)\n}\n\n/**\n * Returns a substring after the first occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfter(delimiter: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + delimiter.length, length)\n}\n\n/**\n * Returns a substring before the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBeforeLast(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring before the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringBeforeLast(delimiter: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(0, index)\n}\n\n/**\n * Returns a substring after the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfterLast(delimiter: Char, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + 1, length)\n}\n\n/**\n * Returns a substring after the last occurrence of [delimiter].\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.substringAfterLast(delimiter: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else substring(index + delimiter.length, length)\n}\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given range\n * is replaced with the [replacement] char sequence.\n * @param startIndex the index of the first character to be replaced.\n * @param endIndex the index of the first character after the replacement to keep in the string.\n */\npublic fun CharSequence.replaceRange(startIndex: Int, endIndex: Int, replacement: CharSequence): CharSequence {\n if (endIndex < startIndex)\n throw IndexOutOfBoundsException(\"End index ($endIndex) is less than start index ($startIndex).\")\n val sb = StringBuilder()\n sb.append(this, 0, startIndex)\n sb.append(replacement)\n sb.append(this, endIndex, length)\n return sb\n}\n\n/**\n * Replaces the part of the string at the given range with the [replacement] char sequence.\n * @param startIndex the index of the first character to be replaced.\n * @param endIndex the index of the first character after the replacement to keep in the string.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceRange(startIndex: Int, endIndex: Int, replacement: CharSequence): String =\n (this as CharSequence).replaceRange(startIndex, endIndex, replacement).toString()\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given [range]\n * is replaced with the [replacement] char sequence.\n *\n * The end index of the [range] is included in the part to be replaced.\n */\npublic fun CharSequence.replaceRange(range: IntRange, replacement: CharSequence): CharSequence =\n replaceRange(range.start, range.endInclusive + 1, replacement)\n\n/**\n * Replace the part of string at the given [range] with the [replacement] string.\n *\n * The end index of the [range] is included in the part to be replaced.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.replaceRange(range: IntRange, replacement: CharSequence): String =\n (this as CharSequence).replaceRange(range, replacement).toString()\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given range is removed.\n *\n * @param startIndex the index of the first character to be removed.\n * @param endIndex the index of the first character after the removed part to keep in the string.\n *\n * [endIndex] is not included in the removed part.\n */\npublic fun CharSequence.removeRange(startIndex: Int, endIndex: Int): CharSequence {\n if (endIndex < startIndex)\n throw IndexOutOfBoundsException(\"End index ($endIndex) is less than start index ($startIndex).\")\n\n if (endIndex == startIndex)\n return this.subSequence(0, length)\n\n val sb = StringBuilder(length - (endIndex - startIndex))\n sb.append(this, 0, startIndex)\n sb.append(this, endIndex, length)\n return sb\n}\n\n/**\n * Removes the part of a string at a given range.\n * @param startIndex the index of the first character to be removed.\n * @param endIndex the index of the first character after the removed part to keep in the string.\n *\n * [endIndex] is not included in the removed part.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.removeRange(startIndex: Int, endIndex: Int): String =\n (this as CharSequence).removeRange(startIndex, endIndex).toString()\n\n/**\n * Returns a char sequence with content of this char sequence where its part at the given [range] is removed.\n *\n * The end index of the [range] is included in the removed part.\n */\npublic fun CharSequence.removeRange(range: IntRange): CharSequence = removeRange(range.start, range.endInclusive + 1)\n\n/**\n * Removes the part of a string at the given [range].\n *\n * The end index of the [range] is included in the removed part.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.removeRange(range: IntRange): String =\n (this as CharSequence).removeRange(range).toString()\n\n/**\n * If this char sequence starts with the given [prefix], returns a new char sequence\n * with the prefix removed. Otherwise, returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removePrefix(prefix: CharSequence): CharSequence {\n if (startsWith(prefix)) {\n return subSequence(prefix.length, length)\n }\n return subSequence(0, length)\n}\n\n/**\n * If this string starts with the given [prefix], returns a copy of this string\n * with the prefix removed. Otherwise, returns this string.\n */\npublic fun String.removePrefix(prefix: CharSequence): String {\n if (startsWith(prefix)) {\n return substring(prefix.length)\n }\n return this\n}\n\n/**\n * If this char sequence ends with the given [suffix], returns a new char sequence\n * with the suffix removed. Otherwise, returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removeSuffix(suffix: CharSequence): CharSequence {\n if (endsWith(suffix)) {\n return subSequence(0, length - suffix.length)\n }\n return subSequence(0, length)\n}\n\n/**\n * If this string ends with the given [suffix], returns a copy of this string\n * with the suffix removed. Otherwise, returns this string.\n */\npublic fun String.removeSuffix(suffix: CharSequence): String {\n if (endsWith(suffix)) {\n return substring(0, length - suffix.length)\n }\n return this\n}\n\n/**\n * When this char sequence starts with the given [prefix] and ends with the given [suffix],\n * returns a new char sequence having both the given [prefix] and [suffix] removed.\n * Otherwise returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removeSurrounding(prefix: CharSequence, suffix: CharSequence): CharSequence {\n if ((length >= prefix.length + suffix.length) && startsWith(prefix) && endsWith(suffix)) {\n return subSequence(prefix.length, length - suffix.length)\n }\n return subSequence(0, length)\n}\n\n/**\n * Removes from a string both the given [prefix] and [suffix] if and only if\n * it starts with the [prefix] and ends with the [suffix].\n * Otherwise returns this string unchanged.\n */\npublic fun String.removeSurrounding(prefix: CharSequence, suffix: CharSequence): String {\n if ((length >= prefix.length + suffix.length) && startsWith(prefix) && endsWith(suffix)) {\n return substring(prefix.length, length - suffix.length)\n }\n return this\n}\n\n/**\n * When this char sequence starts with and ends with the given [delimiter],\n * returns a new char sequence having this [delimiter] removed both from the start and end.\n * Otherwise returns a new char sequence with the same characters.\n */\npublic fun CharSequence.removeSurrounding(delimiter: CharSequence): CharSequence = removeSurrounding(delimiter, delimiter)\n\n/**\n * Removes the given [delimiter] string from both the start and the end of this string\n * if and only if it starts with and ends with the [delimiter].\n * Otherwise returns this string unchanged.\n */\npublic fun String.removeSurrounding(delimiter: CharSequence): String = removeSurrounding(delimiter, delimiter)\n\n/**\n * Replace part of string before the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBefore(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n/**\n * Replace part of string before the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBefore(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n/**\n * Replace part of string after the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfter(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + 1, length, replacement)\n}\n\n/**\n * Replace part of string after the first occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfter(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = indexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + delimiter.length, length, replacement)\n}\n\n/**\n * Replace part of string after the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfterLast(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + delimiter.length, length, replacement)\n}\n\n/**\n * Replace part of string after the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceAfterLast(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(index + 1, length, replacement)\n}\n\n/**\n * Replace part of string before the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBeforeLast(delimiter: Char, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n/**\n * Replace part of string before the last occurrence of given delimiter with the [replacement] string.\n * If the string does not contain the delimiter, returns [missingDelimiterValue] which defaults to the original string.\n */\npublic fun String.replaceBeforeLast(delimiter: String, replacement: String, missingDelimiterValue: String = this): String {\n val index = lastIndexOf(delimiter)\n return if (index == -1) missingDelimiterValue else replaceRange(0, index, replacement)\n}\n\n\n// public fun String.replace(oldChar: Char, newChar: Char, ignoreCase: Boolean): String // JVM- and JS-specific\n// public fun String.replace(oldValue: String, newValue: String, ignoreCase: Boolean): String // JVM- and JS-specific\n\n/**\n * Returns a new string obtained by replacing each substring of this char sequence that matches the given regular expression\n * with the given [replacement].\n *\n * The [replacement] can consist of any combination of literal text and $-substitutions. To treat the replacement string\n * literally escape it with the [kotlin.text.Regex.Companion.escapeReplacement] method.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.replace(regex: Regex, replacement: String): String = regex.replace(this, replacement)\n\n/**\n * Returns a new string obtained by replacing each substring of this char sequence that matches the given regular expression\n * with the result of the given function [transform] that takes [MatchResult] and returns a string to be used as a\n * replacement for that match.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.replace(regex: Regex, noinline transform: (MatchResult) -> CharSequence): String =\n regex.replace(this, transform)\n\n/**\n * Replaces the first occurrence of the given regular expression [regex] in this char sequence with specified [replacement] expression.\n *\n * @param replacement A replacement expression that can include substitutions. See [Regex.replaceFirst] for details.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.replaceFirst(regex: Regex, replacement: String): String = regex.replaceFirst(this, replacement)\n\n\n/**\n * Returns `true` if this char sequence matches the given regular expression.\n */\n@kotlin.internal.InlineOnly\npublic inline infix fun CharSequence.matches(regex: Regex): Boolean = regex.matches(this)\n\n/**\n * Implementation of [regionMatches] for CharSequences.\n * Invoked when it's already known that arguments are not Strings, so that no additional type checks are performed.\n */\ninternal fun CharSequence.regionMatchesImpl(thisOffset: Int, other: CharSequence, otherOffset: Int, length: Int, ignoreCase: Boolean): Boolean {\n if ((otherOffset < 0) || (thisOffset < 0) || (thisOffset > this.length - length) || (otherOffset > other.length - length)) {\n return false\n }\n\n for (index in 0 until length) {\n if (!this[thisOffset + index].equals(other[otherOffset + index], ignoreCase))\n return false\n }\n return true\n}\n\n/**\n * Returns `true` if this char sequence starts with the specified character.\n */\npublic fun CharSequence.startsWith(char: Char, ignoreCase: Boolean = false): Boolean =\n this.length > 0 && this[0].equals(char, ignoreCase)\n\n/**\n * Returns `true` if this char sequence ends with the specified character.\n */\npublic fun CharSequence.endsWith(char: Char, ignoreCase: Boolean = false): Boolean =\n this.length > 0 && this[lastIndex].equals(char, ignoreCase)\n\n/**\n * Returns `true` if this char sequence starts with the specified prefix.\n */\npublic fun CharSequence.startsWith(prefix: CharSequence, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase && this is String && prefix is String)\n return this.startsWith(prefix)\n else\n return regionMatchesImpl(0, prefix, 0, prefix.length, ignoreCase)\n}\n\n/**\n * Returns `true` if a substring of this char sequence starting at the specified offset [startIndex] starts with the specified prefix.\n */\npublic fun CharSequence.startsWith(prefix: CharSequence, startIndex: Int, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase && this is String && prefix is String)\n return this.startsWith(prefix, startIndex)\n else\n return regionMatchesImpl(startIndex, prefix, 0, prefix.length, ignoreCase)\n}\n\n/**\n * Returns `true` if this char sequence ends with the specified suffix.\n */\npublic fun CharSequence.endsWith(suffix: CharSequence, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase && this is String && suffix is String)\n return this.endsWith(suffix)\n else\n return regionMatchesImpl(length - suffix.length, suffix, 0, suffix.length, ignoreCase)\n}\n\n\n// common prefix and suffix\n\n/**\n * Returns the longest string `prefix` such that this char sequence and [other] char sequence both start with this prefix,\n * taking care not to split surrogate pairs.\n * If this and [other] have no common prefix, returns the empty string.\n\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @sample samples.text.Strings.commonPrefixWith\n */\npublic fun CharSequence.commonPrefixWith(other: CharSequence, ignoreCase: Boolean = false): String {\n val shortestLength = minOf(this.length, other.length)\n\n var i = 0\n while (i < shortestLength && this[i].equals(other[i], ignoreCase = ignoreCase)) {\n i++\n }\n if (this.hasSurrogatePairAt(i - 1) || other.hasSurrogatePairAt(i - 1)) {\n i--\n }\n return subSequence(0, i).toString()\n}\n\n/**\n * Returns the longest string `suffix` such that this char sequence and [other] char sequence both end with this suffix,\n * taking care not to split surrogate pairs.\n * If this and [other] have no common suffix, returns the empty string.\n\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @sample samples.text.Strings.commonSuffixWith\n */\npublic fun CharSequence.commonSuffixWith(other: CharSequence, ignoreCase: Boolean = false): String {\n val thisLength = this.length\n val otherLength = other.length\n val shortestLength = minOf(thisLength, otherLength)\n\n var i = 0\n while (i < shortestLength && this[thisLength - i - 1].equals(other[otherLength - i - 1], ignoreCase = ignoreCase)) {\n i++\n }\n if (this.hasSurrogatePairAt(thisLength - i - 1) || other.hasSurrogatePairAt(otherLength - i - 1)) {\n i--\n }\n return subSequence(thisLength - i, thisLength).toString()\n}\n\n\n// indexOfAny()\n\n/**\n * Finds the index of the first occurrence of any of the specified [chars] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the first occurrence of matched character from [chars] or -1 if none of [chars] are found.\n *\n */\npublic fun CharSequence.indexOfAny(chars: CharArray, startIndex: Int = 0, ignoreCase: Boolean = false): Int {\n if (!ignoreCase && chars.size == 1 && this is String) {\n val char = chars.single()\n return nativeIndexOf(char, startIndex)\n }\n\n for (index in startIndex.coerceAtLeast(0)..lastIndex) {\n val charAtIndex = get(index)\n if (chars.any { it.equals(charAtIndex, ignoreCase) })\n return index\n }\n return -1\n}\n\n/**\n * Finds the index of the last occurrence of any of the specified [chars] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the last occurrence of matched character from [chars] or -1 if none of [chars] are found.\n *\n */\npublic fun CharSequence.lastIndexOfAny(chars: CharArray, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int {\n if (!ignoreCase && chars.size == 1 && this is String) {\n val char = chars.single()\n return nativeLastIndexOf(char, startIndex)\n }\n\n\n for (index in startIndex.coerceAtMost(lastIndex) downTo 0) {\n val charAtIndex = get(index)\n if (chars.any { it.equals(charAtIndex, ignoreCase) })\n return index\n }\n\n return -1\n}\n\n\nprivate fun CharSequence.indexOf(other: CharSequence, startIndex: Int, endIndex: Int, ignoreCase: Boolean, last: Boolean = false): Int {\n val indices = if (!last)\n startIndex.coerceAtLeast(0)..endIndex.coerceAtMost(length)\n else\n startIndex.coerceAtMost(lastIndex) downTo endIndex.coerceAtLeast(0)\n\n if (this is String && other is String) { // smart cast\n for (index in indices) {\n if (other.regionMatches(0, this, index, other.length, ignoreCase))\n return index\n }\n } else {\n for (index in indices) {\n if (other.regionMatchesImpl(0, this, index, other.length, ignoreCase))\n return index\n }\n }\n return -1\n}\n\nprivate fun CharSequence.findAnyOf(strings: Collection, startIndex: Int, ignoreCase: Boolean, last: Boolean): Pair? {\n if (!ignoreCase && strings.size == 1) {\n val string = strings.single()\n val index = if (!last) indexOf(string, startIndex) else lastIndexOf(string, startIndex)\n return if (index < 0) null else index to string\n }\n\n val indices = if (!last) startIndex.coerceAtLeast(0)..length else startIndex.coerceAtMost(lastIndex) downTo 0\n\n if (this is String) {\n for (index in indices) {\n val matchingString = strings.firstOrNull { it.regionMatches(0, this, index, it.length, ignoreCase) }\n if (matchingString != null)\n return index to matchingString\n }\n } else {\n for (index in indices) {\n val matchingString = strings.firstOrNull { it.regionMatchesImpl(0, this, index, it.length, ignoreCase) }\n if (matchingString != null)\n return index to matchingString\n }\n }\n\n return null\n}\n\n/**\n * Finds the first occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return A pair of an index of the first occurrence of matched string from [strings] and the string matched\n * or `null` if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.findAnyOf(strings: Collection, startIndex: Int = 0, ignoreCase: Boolean = false): Pair? =\n findAnyOf(strings, startIndex, ignoreCase, last = false)\n\n/**\n * Finds the last occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return A pair of an index of the last occurrence of matched string from [strings] and the string matched or `null` if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the end toward the beginning of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.findLastAnyOf(strings: Collection, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Pair? =\n findAnyOf(strings, startIndex, ignoreCase, last = true)\n\n/**\n * Finds the index of the first occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the first occurrence of matched string from [strings] or -1 if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.indexOfAny(strings: Collection, startIndex: Int = 0, ignoreCase: Boolean = false): Int =\n findAnyOf(strings, startIndex, ignoreCase, last = false)?.first ?: -1\n\n/**\n * Finds the index of the last occurrence of any of the specified [strings] in this char sequence,\n * starting from the specified [startIndex] and optionally ignoring the case.\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the last occurrence of matched string from [strings] or -1 if none of [strings] are found.\n *\n * To avoid ambiguous results when strings in [strings] have characters in common, this method proceeds from\n * the end toward the beginning of this string, and finds at each position the first element in [strings]\n * that matches this string at that position.\n */\npublic fun CharSequence.lastIndexOfAny(strings: Collection, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int =\n findAnyOf(strings, startIndex, ignoreCase, last = true)?.first ?: -1\n\n\n// indexOf\n\n/**\n * Returns the index within this string of the first occurrence of the specified character, starting from the specified [startIndex].\n *\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the first occurrence of [char] or -1 if none is found.\n */\npublic fun CharSequence.indexOf(char: Char, startIndex: Int = 0, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n indexOfAny(charArrayOf(char), startIndex, ignoreCase)\n else\n nativeIndexOf(char, startIndex)\n}\n\n/**\n * Returns the index within this char sequence of the first occurrence of the specified [string],\n * starting from the specified [startIndex].\n *\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the first occurrence of [string] or `-1` if none is found.\n */\npublic fun CharSequence.indexOf(string: String, startIndex: Int = 0, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n indexOf(string, startIndex, length, ignoreCase)\n else\n nativeIndexOf(string, startIndex)\n}\n\n/**\n * Returns the index within this char sequence of the last occurrence of the specified character,\n * starting from the specified [startIndex].\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a character. By default `false`.\n * @return An index of the first occurrence of [char] or -1 if none is found.\n */\npublic fun CharSequence.lastIndexOf(char: Char, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n lastIndexOfAny(charArrayOf(char), startIndex, ignoreCase)\n else\n nativeLastIndexOf(char, startIndex)\n}\n\n/**\n * Returns the index within this char sequence of the last occurrence of the specified [string],\n * starting from the specified [startIndex].\n *\n * @param startIndex The index of character to start searching at. The search proceeds backward toward the beginning of the string.\n * @param ignoreCase `true` to ignore character case when matching a string. By default `false`.\n * @return An index of the first occurrence of [string] or -1 if none is found.\n */\npublic fun CharSequence.lastIndexOf(string: String, startIndex: Int = lastIndex, ignoreCase: Boolean = false): Int {\n return if (ignoreCase || this !is String)\n indexOf(string, startIndex, 0, ignoreCase, last = true)\n else\n nativeLastIndexOf(string, startIndex)\n}\n\n/**\n * Returns `true` if this char sequence contains the specified [other] sequence of characters as a substring.\n *\n * @param ignoreCase `true` to ignore character case when comparing strings. By default `false`.\n */\n@Suppress(\"INAPPLICABLE_OPERATOR_MODIFIER\")\npublic operator fun CharSequence.contains(other: CharSequence, ignoreCase: Boolean = false): Boolean =\n if (other is String)\n indexOf(other, ignoreCase = ignoreCase) >= 0\n else\n indexOf(other, 0, length, ignoreCase) >= 0\n\n\n\n/**\n * Returns `true` if this char sequence contains the specified character [char].\n *\n * @param ignoreCase `true` to ignore character case when comparing characters. By default `false`.\n */\n@Suppress(\"INAPPLICABLE_OPERATOR_MODIFIER\")\npublic operator fun CharSequence.contains(char: Char, ignoreCase: Boolean = false): Boolean =\n indexOf(char, ignoreCase = ignoreCase) >= 0\n\n/**\n * Returns `true` if this char sequence contains at least one match of the specified regular expression [regex].\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharSequence.contains(regex: Regex): Boolean = regex.containsMatchIn(this)\n\n\n// rangesDelimitedBy\n\n\nprivate class DelimitedRangesSequence(\n private val input: CharSequence,\n private val startIndex: Int,\n private val limit: Int,\n private val getNextMatch: CharSequence.(currentIndex: Int) -> Pair?\n) : Sequence {\n\n override fun iterator(): Iterator = object : Iterator {\n var nextState: Int = -1 // -1 for unknown, 0 for done, 1 for continue\n var currentStartIndex: Int = startIndex.coerceIn(0, input.length)\n var nextSearchIndex: Int = currentStartIndex\n var nextItem: IntRange? = null\n var counter: Int = 0\n\n private fun calcNext() {\n if (nextSearchIndex < 0) {\n nextState = 0\n nextItem = null\n } else {\n if (limit > 0 && ++counter >= limit || nextSearchIndex > input.length) {\n nextItem = currentStartIndex..input.lastIndex\n nextSearchIndex = -1\n } else {\n val match = input.getNextMatch(nextSearchIndex)\n if (match == null) {\n nextItem = currentStartIndex..input.lastIndex\n nextSearchIndex = -1\n } else {\n val (index, length) = match\n nextItem = currentStartIndex until index\n currentStartIndex = index + length\n nextSearchIndex = currentStartIndex + if (length == 0) 1 else 0\n }\n }\n nextState = 1\n }\n }\n\n override fun next(): IntRange {\n if (nextState == -1)\n calcNext()\n if (nextState == 0)\n throw NoSuchElementException()\n val result = nextItem as IntRange\n // Clean next to avoid keeping reference on yielded instance\n nextItem = null\n nextState = -1\n return result\n }\n\n override fun hasNext(): Boolean {\n if (nextState == -1)\n calcNext()\n return nextState == 1\n }\n }\n}\n\n/**\n * Returns a sequence of index ranges of substrings in this char sequence around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more characters to be used as delimiters.\n * @param startIndex The index to start searching delimiters from.\n * No range having its start value less than [startIndex] is returned.\n * [startIndex] is coerced to be non-negative and not greater than length of this string.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n */\nprivate fun CharSequence.rangesDelimitedBy(delimiters: CharArray, startIndex: Int = 0, ignoreCase: Boolean = false, limit: Int = 0): Sequence {\n require(limit >= 0, { \"Limit must be non-negative, but was $limit.\" })\n\n return DelimitedRangesSequence(this, startIndex, limit, { currentIndex ->\n indexOfAny(delimiters, currentIndex, ignoreCase = ignoreCase).let { if (it < 0) null else it to 1 }\n })\n}\n\n\n/**\n * Returns a sequence of index ranges of substrings in this char sequence around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more strings to be used as delimiters.\n * @param startIndex The index to start searching delimiters from.\n * No range having its start value less than [startIndex] is returned.\n * [startIndex] is coerced to be non-negative and not greater than length of this string.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n *\n * To avoid ambiguous results when strings in [delimiters] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [delimiters]\n * that matches this string at that position.\n */\nprivate fun CharSequence.rangesDelimitedBy(delimiters: Array, startIndex: Int = 0, ignoreCase: Boolean = false, limit: Int = 0): Sequence {\n require(limit >= 0, { \"Limit must be non-negative, but was $limit.\" } )\n val delimitersList = delimiters.asList()\n\n return DelimitedRangesSequence(this, startIndex, limit, { currentIndex -> findAnyOf(delimitersList, currentIndex, ignoreCase = ignoreCase, last = false)?.let { it.first to it.second.length } })\n\n}\n\n\n// split\n\n/**\n * Splits this char sequence to a sequence of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more strings to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n *\n * To avoid ambiguous results when strings in [delimiters] have characters in common, this method proceeds from\n * the beginning to the end of this string, and finds at each position the first element in [delimiters]\n * that matches this string at that position.\n */\npublic fun CharSequence.splitToSequence(vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0): Sequence =\n rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).map { substring(it) }\n\n/**\n * Splits this char sequence to a list of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more strings to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return. Zero by default means no limit is set.\n *\n * To avoid ambiguous results when strings in [delimiters] have characters in common, this method proceeds from\n * the beginning to the end of this string, and matches at each position the first element in [delimiters]\n * that is equal to a delimiter in this instance at that position.\n */\npublic fun CharSequence.split(vararg delimiters: String, ignoreCase: Boolean = false, limit: Int = 0): List {\n if (delimiters.size == 1) {\n val delimiter = delimiters[0]\n if (!delimiter.isEmpty()) {\n return split(delimiter, ignoreCase, limit)\n }\n }\n\n return rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).asIterable().map { substring(it) }\n}\n\n/**\n * Splits this char sequence to a sequence of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more characters to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return.\n */\npublic fun CharSequence.splitToSequence(vararg delimiters: Char, ignoreCase: Boolean = false, limit: Int = 0): Sequence =\n rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).map { substring(it) }\n\n/**\n * Splits this char sequence to a list of strings around occurrences of the specified [delimiters].\n *\n * @param delimiters One or more characters to be used as delimiters.\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return.\n */\npublic fun CharSequence.split(vararg delimiters: Char, ignoreCase: Boolean = false, limit: Int = 0): List {\n if (delimiters.size == 1) {\n return split(delimiters[0].toString(), ignoreCase, limit)\n }\n\n return rangesDelimitedBy(delimiters, ignoreCase = ignoreCase, limit = limit).asIterable().map { substring(it) }\n}\n\n/**\n * Splits this char sequence to a list of strings around occurrences of the specified [delimiter].\n * This is specialized version of split which receives single non-empty delimiter and offers better performance\n *\n * @param delimiter String used as delimiter\n * @param ignoreCase `true` to ignore character case when matching a delimiter. By default `false`.\n * @param limit The maximum number of substrings to return.\n */\nprivate fun CharSequence.split(delimiter: String, ignoreCase: Boolean, limit: Int): List {\n require(limit >= 0, { \"Limit must be non-negative, but was $limit.\" })\n\n var currentOffset = 0\n var nextIndex = indexOf(delimiter, currentOffset, ignoreCase)\n if (nextIndex == -1 || limit == 1) {\n return listOf(this.toString())\n }\n\n val isLimited = limit > 0\n val result = ArrayList(if (isLimited) limit.coerceAtMost(10) else 10)\n do {\n result.add(substring(currentOffset, nextIndex))\n currentOffset = nextIndex + delimiter.length\n // Do not search for next occurrence if we're reaching limit\n if (isLimited && result.size == limit - 1) break\n nextIndex = indexOf(delimiter, currentOffset, ignoreCase)\n } while (nextIndex != -1)\n\n result.add(substring(currentOffset, length))\n return result\n}\n\n/**\n * Splits this char sequence around matches of the given regular expression.\n *\n * @param limit Non-negative value specifying the maximum number of substrings to return.\n * Zero by default means no limit is set.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharSequence.split(regex: Regex, limit: Int = 0): List = regex.split(this, limit)\n\n/**\n * Splits this char sequence to a sequence of lines delimited by any of the following character sequences: CRLF, LF or CR.\n *\n * The lines returned do not include terminating line separators.\n */\npublic fun CharSequence.lineSequence(): Sequence = splitToSequence(\"\\r\\n\", \"\\n\", \"\\r\")\n\n/**\n * Splits this char sequence to a list of lines delimited by any of the following character sequences: CRLF, LF or CR.\n *\n * The lines returned do not include terminating line separators.\n */\npublic fun CharSequence.lines(): List = lineSequence().toList()\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\nimport kotlin.js.RegExp\n\n/**\n * Converts the characters in the specified array to a string.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun String(chars: CharArray): String {\n var result = \"\"\n for (char in chars) {\n result += char\n }\n return result\n}\n\n/**\n * Converts the characters from a portion of the specified array to a string.\n *\n * @throws IndexOutOfBoundsException if either [offset] or [length] are less than zero\n * or `offset + length` is out of [chars] array bounds.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun String(chars: CharArray, offset: Int, length: Int): String {\n if (offset < 0 || length < 0 || chars.size - offset < length)\n throw IndexOutOfBoundsException(\"size: ${chars.size}; offset: $offset; length: $length\")\n var result = \"\"\n for (index in offset until offset + length) {\n result += chars[index]\n }\n return result\n}\n\n/**\n * Concatenates characters in this [CharArray] into a String.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun CharArray.concatToString(): String {\n var result = \"\"\n for (char in this) {\n result += char\n }\n return result\n}\n\n/**\n * Concatenates characters in this [CharArray] or its subrange into a String.\n *\n * @param startIndex the beginning (inclusive) of the subrange of characters, 0 by default.\n * @param endIndex the end (exclusive) of the subrange of characters, size of this array by default.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun CharArray.concatToString(startIndex: Int = 0, endIndex: Int = this.size): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, this.size)\n var result = \"\"\n for (index in startIndex until endIndex) {\n result += this[index]\n }\n return result\n}\n\n/**\n * Returns a [CharArray] containing characters of this string.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun String.toCharArray(): CharArray {\n return CharArray(length) { get(it) }\n}\n\n/**\n * Returns a [CharArray] containing characters of this string or its substring.\n *\n * @param startIndex the beginning (inclusive) of the substring, 0 by default.\n * @param endIndex the end (exclusive) of the substring, length of this string by default.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the length of this string.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun String.toCharArray(startIndex: Int = 0, endIndex: Int = this.length): CharArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n return CharArray(endIndex - startIndex) { get(startIndex + it) }\n}\n\n/**\n * Decodes a string from the bytes in UTF-8 encoding in this array.\n *\n * Malformed byte sequences are replaced by the replacement char `\\uFFFD`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun ByteArray.decodeToString(): String {\n return decodeUtf8(this, 0, size, false)\n}\n\n/**\n * Decodes a string from the bytes in UTF-8 encoding in this array or its subrange.\n *\n * @param startIndex the beginning (inclusive) of the subrange to decode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to decode, size of this array by default.\n * @param throwOnInvalidSequence specifies whether to throw an exception on malformed byte sequence or replace it by the replacement char `\\uFFFD`.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n * @throws CharacterCodingException if the byte array contains malformed UTF-8 byte sequence and [throwOnInvalidSequence] is true.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun ByteArray.decodeToString(\n startIndex: Int = 0,\n endIndex: Int = this.size,\n throwOnInvalidSequence: Boolean = false\n): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, this.size)\n return decodeUtf8(this, startIndex, endIndex, throwOnInvalidSequence)\n}\n\n/**\n * Encodes this string to an array of bytes in UTF-8 encoding.\n *\n * Any malformed char sequence is replaced by the replacement byte sequence.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun String.encodeToByteArray(): ByteArray {\n return encodeUtf8(this, 0, length, false)\n}\n\n/**\n * Encodes this string or its substring to an array of bytes in UTF-8 encoding.\n *\n * @param startIndex the beginning (inclusive) of the substring to encode, 0 by default.\n * @param endIndex the end (exclusive) of the substring to encode, length of this string by default.\n * @param throwOnInvalidSequence specifies whether to throw an exception on malformed char sequence or replace.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the length of this string.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n * @throws CharacterCodingException if this string contains malformed char sequence and [throwOnInvalidSequence] is true.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun String.encodeToByteArray(\n startIndex: Int = 0,\n endIndex: Int = this.length,\n throwOnInvalidSequence: Boolean = false\n): ByteArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n return encodeUtf8(this, startIndex, endIndex, throwOnInvalidSequence)\n}\n\n/**\n * Returns a copy of this string converted to upper case using the rules of the default locale.\n *\n * @sample samples.text.Strings.toUpperCase\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toUpperCase(): String = asDynamic().toUpperCase()\n\n/**\n * Returns a copy of this string converted to lower case using the rules of the default locale.\n *\n * @sample samples.text.Strings.toLowerCase\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toLowerCase(): String = asDynamic().toLowerCase()\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeIndexOf(str: String, fromIndex: Int): Int = asDynamic().indexOf(str, fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeLastIndexOf(str: String, fromIndex: Int): Int = asDynamic().lastIndexOf(str, fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeStartsWith(s: String, position: Int): Boolean = asDynamic().startsWith(s, position)\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeEndsWith(s: String): Boolean = asDynamic().endsWith(s)\n\n@kotlin.internal.InlineOnly\npublic actual inline fun String.substring(startIndex: Int): String = asDynamic().substring(startIndex)\n\n@kotlin.internal.InlineOnly\npublic actual inline fun String.substring(startIndex: Int, endIndex: Int): String = asDynamic().substring(startIndex, endIndex)\n\n@kotlin.internal.InlineOnly\npublic inline fun String.concat(str: String): String = asDynamic().concat(str)\n\n@kotlin.internal.InlineOnly\npublic inline fun String.match(regex: String): Array? = asDynamic().match(regex)\n\n//native public fun String.trim(): String\n//TODO: String.replace to implement effective trimLeading and trimTrailing\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeReplace(pattern: RegExp, replacement: String): String = asDynamic().replace(pattern, replacement)\n\n@SinceKotlin(\"1.2\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.compareTo(other: String, ignoreCase: Boolean = false): Int {\n if (ignoreCase) {\n val n1 = this.length\n val n2 = other.length\n val min = minOf(n1, n2)\n if (min == 0) return n1 - n2\n var start = 0\n while (true) {\n val end = minOf(start + 16, min)\n var s1 = this.substring(start, end)\n var s2 = other.substring(start, end)\n if (s1 != s2) {\n s1 = s1.toUpperCase()\n s2 = s2.toUpperCase()\n if (s1 != s2) {\n s1 = s1.toLowerCase()\n s2 = s2.toLowerCase()\n if (s1 != s2) {\n return s1.compareTo(s2)\n }\n }\n }\n if (end == min) break\n start = end\n }\n return n1 - n2\n } else {\n return compareTo(other)\n }\n}\n\n\nprivate val STRING_CASE_INSENSITIVE_ORDER = Comparator { a, b -> a.compareTo(b, ignoreCase = true) }\n\n@SinceKotlin(\"1.2\")\npublic actual val String.Companion.CASE_INSENSITIVE_ORDER: Comparator\n get() = STRING_CASE_INSENSITIVE_ORDER\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UByteArray\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@PublishedApi\ninternal constructor(@PublishedApi internal val storage: ByteArray) : Collection {\n\n /** Creates a new array of the specified [size], with all elements initialized to zero. */\n public constructor(size: Int) : this(ByteArray(size))\n\n /**\n * Returns the array element at the given [index]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun get(index: Int): UByte = storage[index].toUByte()\n\n /**\n * Sets the element at the given [index] to the given [value]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun set(index: Int, value: UByte) {\n storage[index] = value.toByte()\n }\n\n /** Returns the number of elements in the array. */\n public override val size: Int get() = storage.size\n\n /** Creates an iterator over the elements of the array. */\n public override operator fun iterator(): UByteIterator = Iterator(storage)\n\n private class Iterator(private val array: ByteArray) : UByteIterator() {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun nextUByte() = if (index < array.size) array[index++].toUByte() else throw NoSuchElementException(index.toString())\n }\n\n override fun contains(element: UByte): Boolean {\n // TODO: Eliminate this check after KT-30016 gets fixed.\n // Currently JS BE does not generate special bridge method for this method.\n if ((element as Any?) !is UByte) return false\n\n return storage.contains(element.toByte())\n }\n\n override fun containsAll(elements: Collection): Boolean {\n return (elements as Collection<*>).all { it is UByte && storage.contains(it.toByte()) }\n }\n\n override fun isEmpty(): Boolean = this.storage.size == 0\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray(size: Int, init: (Int) -> UByte): UByteArray {\n return UByteArray(ByteArray(size) { index -> init(index).toByte() })\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ubyteArrayOf(vararg elements: UByte): UByteArray = elements\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UIntArray\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@PublishedApi\ninternal constructor(@PublishedApi internal val storage: IntArray) : Collection {\n\n /** Creates a new array of the specified [size], with all elements initialized to zero. */\n public constructor(size: Int) : this(IntArray(size))\n\n /**\n * Returns the array element at the given [index]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun get(index: Int): UInt = storage[index].toUInt()\n\n /**\n * Sets the element at the given [index] to the given [value]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun set(index: Int, value: UInt) {\n storage[index] = value.toInt()\n }\n\n /** Returns the number of elements in the array. */\n public override val size: Int get() = storage.size\n\n /** Creates an iterator over the elements of the array. */\n public override operator fun iterator(): UIntIterator = Iterator(storage)\n\n private class Iterator(private val array: IntArray) : UIntIterator() {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun nextUInt() = if (index < array.size) array[index++].toUInt() else throw NoSuchElementException(index.toString())\n }\n\n override fun contains(element: UInt): Boolean {\n // TODO: Eliminate this check after KT-30016 gets fixed.\n // Currently JS BE does not generate special bridge method for this method.\n if ((element as Any?) !is UInt) return false\n\n return storage.contains(element.toInt())\n }\n\n override fun containsAll(elements: Collection): Boolean {\n return (elements as Collection<*>).all { it is UInt && storage.contains(it.toInt()) }\n }\n\n override fun isEmpty(): Boolean = this.storage.size == 0\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray(size: Int, init: (Int) -> UInt): UIntArray {\n return UIntArray(IntArray(size) { index -> init(index).toInt() })\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun uintArrayOf(vararg elements: UInt): UIntArray = elements\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class ULongArray\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@PublishedApi\ninternal constructor(@PublishedApi internal val storage: LongArray) : Collection {\n\n /** Creates a new array of the specified [size], with all elements initialized to zero. */\n public constructor(size: Int) : this(LongArray(size))\n\n /**\n * Returns the array element at the given [index]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun get(index: Int): ULong = storage[index].toULong()\n\n /**\n * Sets the element at the given [index] to the given [value]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun set(index: Int, value: ULong) {\n storage[index] = value.toLong()\n }\n\n /** Returns the number of elements in the array. */\n public override val size: Int get() = storage.size\n\n /** Creates an iterator over the elements of the array. */\n public override operator fun iterator(): ULongIterator = Iterator(storage)\n\n private class Iterator(private val array: LongArray) : ULongIterator() {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun nextULong() = if (index < array.size) array[index++].toULong() else throw NoSuchElementException(index.toString())\n }\n\n override fun contains(element: ULong): Boolean {\n // TODO: Eliminate this check after KT-30016 gets fixed.\n // Currently JS BE does not generate special bridge method for this method.\n if ((element as Any?) !is ULong) return false\n\n return storage.contains(element.toLong())\n }\n\n override fun containsAll(elements: Collection): Boolean {\n return (elements as Collection<*>).all { it is ULong && storage.contains(it.toLong()) }\n }\n\n override fun isEmpty(): Boolean = this.storage.size == 0\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray(size: Int, init: (Int) -> ULong): ULongArray {\n return ULongArray(LongArray(size) { index -> init(index).toLong() })\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ulongArrayOf(vararg elements: ULong): ULongArray = elements\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class ULong @PublishedApi internal constructor(@PublishedApi internal val data: Long) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of ULong can have.\n */\n public const val MIN_VALUE: ULong = ULong(0)\n\n /**\n * A constant holding the maximum value an instance of ULong can have.\n */\n public const val MAX_VALUE: ULong = ULong(-1)\n\n /**\n * The number of bytes used to represent an instance of ULong in a binary form.\n */\n public const val SIZE_BYTES: Int = 8\n\n /**\n * The number of bits used to represent an instance of ULong in a binary form.\n */\n public const val SIZE_BITS: Int = 64\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UByte): Int = this.compareTo(other.toULong())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UShort): Int = this.compareTo(other.toULong())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UInt): Int = this.compareTo(other.toULong())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: ULong): Int = ulongCompare(this.data, other.data)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): ULong = this.plus(other.toULong())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): ULong = this.plus(other.toULong())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): ULong = this.plus(other.toULong())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = ULong(this.data.plus(other.data))\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): ULong = this.minus(other.toULong())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): ULong = this.minus(other.toULong())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): ULong = this.minus(other.toULong())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = ULong(this.data.minus(other.data))\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): ULong = this.times(other.toULong())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): ULong = this.times(other.toULong())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): ULong = this.times(other.toULong())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = ULong(this.data.times(other.data))\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): ULong = this.div(other.toULong())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): ULong = this.div(other.toULong())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): ULong = this.div(other.toULong())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = ulongDivide(this, other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): ULong = this.rem(other.toULong())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): ULong = this.rem(other.toULong())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): ULong = this.rem(other.toULong())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = ulongRemainder(this, other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): ULong = ULong(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): ULong = ULong(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: ULong): ULongRange = ULongRange(this, other)\n\n /** Shifts this value left by the [bitCount] number of bits. */\n @kotlin.internal.InlineOnly\n public inline infix fun shl(bitCount: Int): ULong = ULong(data shl bitCount)\n /** Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros. */\n @kotlin.internal.InlineOnly\n public inline infix fun shr(bitCount: Int): ULong = ULong(data ushr bitCount)\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: ULong): ULong = ULong(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: ULong): ULong = ULong(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: ULong): ULong = ULong(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): ULong = ULong(data.inv())\n\n /**\n * Converts this [ULong] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `Byte` value is represented by the least significant 8 bits of this `ULong` value.\n * Note that the resulting `Byte` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data.toByte()\n /**\n * Converts this [ULong] value to [Short].\n *\n * If this value is less than or equals to [Short.MAX_VALUE], the resulting `Short` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `Short` value is represented by the least significant 16 bits of this `ULong` value.\n * Note that the resulting `Short` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data.toShort()\n /**\n * Converts this [ULong] value to [Int].\n *\n * If this value is less than or equals to [Int.MAX_VALUE], the resulting `Int` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `Int` value is represented by the least significant 32 bits of this `ULong` value.\n * Note that the resulting `Int` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data.toInt()\n /**\n * Converts this [ULong] value to [Long].\n *\n * If this value is less than or equals to [Long.MAX_VALUE], the resulting `Long` value represents\n * the same numerical value as this `ULong`. Otherwise the result is negative.\n *\n * The resulting `Long` value has the same binary representation as this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data\n\n /**\n * Converts this [ULong] value to [UByte].\n *\n * If this value is less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = data.toUByte()\n /**\n * Converts this [ULong] value to [UShort].\n *\n * If this value is less than or equals to [UShort.MAX_VALUE], the resulting `UShort` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `UShort` value is represented by the least significant 16 bits of this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = data.toUShort()\n /**\n * Converts this [ULong] value to [UInt].\n *\n * If this value is less than or equals to [UInt.MAX_VALUE], the resulting `UInt` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `UInt` value is represented by the least significant 32 bits of this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = data.toUInt()\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = this\n\n /**\n * Converts this [ULong] value to [Float].\n *\n * The resulting value is the closest `Float` to this `ULong` value.\n * In case when this `ULong` value is exactly between two `Float`s,\n * the one with zero at least significant bit of mantissa is selected.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toDouble().toFloat()\n /**\n * Converts this [ULong] value to [Double].\n *\n * The resulting value is the closest `Double` to this `ULong` value.\n * In case when this `ULong` value is exactly between two `Double`s,\n * the one with zero at least significant bit of mantissa is selected.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = ulongToDouble(data)\n\n public override fun toString(): String = ulongToString(data)\n\n}\n\n/**\n * Converts this [Byte] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Byte`.\n *\n * The least significant 8 bits of the resulting `ULong` value are the same as the bits of this `Byte` value,\n * whereas the most significant 56 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toULong(): ULong = ULong(this.toLong())\n/**\n * Converts this [Short] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Short`.\n *\n * The least significant 16 bits of the resulting `ULong` value are the same as the bits of this `Short` value,\n * whereas the most significant 48 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toULong(): ULong = ULong(this.toLong())\n/**\n * Converts this [Int] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Int`.\n *\n * The least significant 32 bits of the resulting `ULong` value are the same as the bits of this `Int` value,\n * whereas the most significant 32 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toULong(): ULong = ULong(this.toLong())\n/**\n * Converts this [Long] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Long`.\n *\n * The resulting `ULong` value has the same binary representation as this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toULong(): ULong = ULong(this)\n\n/**\n * Converts this [Float] value to [ULong].\n *\n * The fractional part, if any, is rounded down.\n * Returns zero if this `Float` value is negative or `NaN`, [ULong.MAX_VALUE] if it's bigger than `ULong.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Float.toULong(): ULong = doubleToULong(this.toDouble())\n/**\n * Converts this [Double] value to [ULong].\n *\n * The fractional part, if any, is rounded down.\n * Returns zero if this `Double` value is negative or `NaN`, [ULong.MAX_VALUE] if it's bigger than `ULong.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Double.toULong(): ULong = doubleToULong(this)\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UShortArray\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@PublishedApi\ninternal constructor(@PublishedApi internal val storage: ShortArray) : Collection {\n\n /** Creates a new array of the specified [size], with all elements initialized to zero. */\n public constructor(size: Int) : this(ShortArray(size))\n\n /**\n * Returns the array element at the given [index]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun get(index: Int): UShort = storage[index].toUShort()\n\n /**\n * Sets the element at the given [index] to the given [value]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun set(index: Int, value: UShort) {\n storage[index] = value.toShort()\n }\n\n /** Returns the number of elements in the array. */\n public override val size: Int get() = storage.size\n\n /** Creates an iterator over the elements of the array. */\n public override operator fun iterator(): UShortIterator = Iterator(storage)\n\n private class Iterator(private val array: ShortArray) : UShortIterator() {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun nextUShort() = if (index < array.size) array[index++].toUShort() else throw NoSuchElementException(index.toString())\n }\n\n override fun contains(element: UShort): Boolean {\n // TODO: Eliminate this check after KT-30016 gets fixed.\n // Currently JS BE does not generate special bridge method for this method.\n if ((element as Any?) !is UShort) return false\n\n return storage.contains(element.toShort())\n }\n\n override fun containsAll(elements: Collection): Boolean {\n return (elements as Collection<*>).all { it is UShort && storage.contains(it.toShort()) }\n }\n\n override fun isEmpty(): Boolean = this.storage.size == 0\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray(size: Int, init: (Int) -> UShort): UShortArray {\n return UShortArray(ShortArray(size) { index -> init(index).toShort() })\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ushortArrayOf(vararg elements: UShort): UShortArray = elements\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"UArraysKt\")\n@file:kotlin.jvm.JvmPackageName(\"kotlin.collections.unsigned\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.component1(): UInt {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.component1(): ULong {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.component1(): UByte {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.component1(): UShort {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.component2(): UInt {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.component2(): ULong {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.component2(): UByte {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.component2(): UShort {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.component3(): UInt {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.component3(): ULong {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.component3(): UByte {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.component3(): UShort {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.component4(): UInt {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.component4(): ULong {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.component4(): UByte {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.component4(): UShort {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.component5(): UInt {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.component5(): ULong {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.component5(): UByte {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.component5(): UShort {\n return get(4)\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun UIntArray.elementAt(index: Int): UInt\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun ULongArray.elementAt(index: Int): ULong\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun UByteArray.elementAt(index: Int): UByte\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun UShortArray.elementAt(index: Int): UShort\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.elementAtOrElse(index: Int, defaultValue: (Int) -> UInt): UInt {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.elementAtOrElse(index: Int, defaultValue: (Int) -> ULong): ULong {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.elementAtOrElse(index: Int, defaultValue: (Int) -> UByte): UByte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.elementAtOrElse(index: Int, defaultValue: (Int) -> UShort): UShort {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.elementAtOrNull(index: Int): UInt? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.elementAtOrNull(index: Int): ULong? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.elementAtOrNull(index: Int): UByte? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.elementAtOrNull(index: Int): UShort? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.find(predicate: (UInt) -> Boolean): UInt? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.find(predicate: (ULong) -> Boolean): ULong? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.find(predicate: (UByte) -> Boolean): UByte? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.find(predicate: (UShort) -> Boolean): UShort? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.findLast(predicate: (UInt) -> Boolean): UInt? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.findLast(predicate: (ULong) -> Boolean): ULong? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.findLast(predicate: (UByte) -> Boolean): UByte? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.findLast(predicate: (UShort) -> Boolean): UShort? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.first(): UInt {\n return storage.first().toUInt()\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.first(): ULong {\n return storage.first().toULong()\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.first(): UByte {\n return storage.first().toUByte()\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.first(): UShort {\n return storage.first().toUShort()\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.first(predicate: (UInt) -> Boolean): UInt {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.first(predicate: (ULong) -> Boolean): ULong {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.first(predicate: (UByte) -> Boolean): UByte {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.first(predicate: (UShort) -> Boolean): UShort {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.firstOrNull(): UInt? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.firstOrNull(): ULong? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.firstOrNull(): UByte? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.firstOrNull(): UShort? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.firstOrNull(predicate: (UInt) -> Boolean): UInt? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.firstOrNull(predicate: (ULong) -> Boolean): ULong? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.firstOrNull(predicate: (UByte) -> Boolean): UByte? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.firstOrNull(predicate: (UShort) -> Boolean): UShort? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.getOrElse(index: Int, defaultValue: (Int) -> UInt): UInt {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.getOrElse(index: Int, defaultValue: (Int) -> ULong): ULong {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.getOrElse(index: Int, defaultValue: (Int) -> UByte): UByte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.getOrElse(index: Int, defaultValue: (Int) -> UShort): UShort {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.getOrNull(index: Int): UInt? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.getOrNull(index: Int): ULong? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.getOrNull(index: Int): UByte? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.getOrNull(index: Int): UShort? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.indexOf(element: UInt): Int {\n return storage.indexOf(element.toInt())\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.indexOf(element: ULong): Int {\n return storage.indexOf(element.toLong())\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.indexOf(element: UByte): Int {\n return storage.indexOf(element.toByte())\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.indexOf(element: UShort): Int {\n return storage.indexOf(element.toShort())\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.indexOfFirst(predicate: (UInt) -> Boolean): Int {\n return storage.indexOfFirst { predicate(it.toUInt()) }\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.indexOfFirst(predicate: (ULong) -> Boolean): Int {\n return storage.indexOfFirst { predicate(it.toULong()) }\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.indexOfFirst(predicate: (UByte) -> Boolean): Int {\n return storage.indexOfFirst { predicate(it.toUByte()) }\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.indexOfFirst(predicate: (UShort) -> Boolean): Int {\n return storage.indexOfFirst { predicate(it.toUShort()) }\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.indexOfLast(predicate: (UInt) -> Boolean): Int {\n return storage.indexOfLast { predicate(it.toUInt()) }\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.indexOfLast(predicate: (ULong) -> Boolean): Int {\n return storage.indexOfLast { predicate(it.toULong()) }\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.indexOfLast(predicate: (UByte) -> Boolean): Int {\n return storage.indexOfLast { predicate(it.toUByte()) }\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.indexOfLast(predicate: (UShort) -> Boolean): Int {\n return storage.indexOfLast { predicate(it.toUShort()) }\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.last(): UInt {\n return storage.last().toUInt()\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.last(): ULong {\n return storage.last().toULong()\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.last(): UByte {\n return storage.last().toUByte()\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.last(): UShort {\n return storage.last().toUShort()\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.last(predicate: (UInt) -> Boolean): UInt {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.last(predicate: (ULong) -> Boolean): ULong {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.last(predicate: (UByte) -> Boolean): UByte {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.last(predicate: (UShort) -> Boolean): UShort {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.lastIndexOf(element: UInt): Int {\n return storage.lastIndexOf(element.toInt())\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.lastIndexOf(element: ULong): Int {\n return storage.lastIndexOf(element.toLong())\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.lastIndexOf(element: UByte): Int {\n return storage.lastIndexOf(element.toByte())\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.lastIndexOf(element: UShort): Int {\n return storage.lastIndexOf(element.toShort())\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.lastOrNull(): UInt? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.lastOrNull(): ULong? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.lastOrNull(): UByte? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.lastOrNull(): UShort? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.lastOrNull(predicate: (UInt) -> Boolean): UInt? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.lastOrNull(predicate: (ULong) -> Boolean): ULong? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.lastOrNull(predicate: (UByte) -> Boolean): UByte? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.lastOrNull(predicate: (UShort) -> Boolean): UShort? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.random(): UInt {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.random(): ULong {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.random(): UByte {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.random(): UShort {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.random(random: Random): UInt {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.random(random: Random): ULong {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.random(random: Random): UByte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.random(random: Random): UShort {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.single(): UInt {\n return storage.single().toUInt()\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.single(): ULong {\n return storage.single().toULong()\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.single(): UByte {\n return storage.single().toUByte()\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.single(): UShort {\n return storage.single().toUShort()\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.single(predicate: (UInt) -> Boolean): UInt {\n var single: UInt? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as UInt\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.single(predicate: (ULong) -> Boolean): ULong {\n var single: ULong? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as ULong\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.single(predicate: (UByte) -> Boolean): UByte {\n var single: UByte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as UByte\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.single(predicate: (UShort) -> Boolean): UShort {\n var single: UShort? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as UShort\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.singleOrNull(): UInt? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.singleOrNull(): ULong? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.singleOrNull(): UByte? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.singleOrNull(): UShort? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.singleOrNull(predicate: (UInt) -> Boolean): UInt? {\n var single: UInt? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.singleOrNull(predicate: (ULong) -> Boolean): ULong? {\n var single: ULong? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.singleOrNull(predicate: (UByte) -> Boolean): UByte? {\n var single: UByte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.singleOrNull(predicate: (UShort) -> Boolean): UShort? {\n var single: UShort? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.dropLastWhile(predicate: (UInt) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.dropLastWhile(predicate: (ULong) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.dropLastWhile(predicate: (UByte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.dropLastWhile(predicate: (UShort) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.dropWhile(predicate: (UInt) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.dropWhile(predicate: (ULong) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.dropWhile(predicate: (UByte) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.dropWhile(predicate: (UShort) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.filter(predicate: (UInt) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.filter(predicate: (ULong) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.filter(predicate: (UByte) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.filter(predicate: (UShort) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.filterIndexed(predicate: (index: Int, UInt) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.filterIndexed(predicate: (index: Int, ULong) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.filterIndexed(predicate: (index: Int, UByte) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.filterIndexed(predicate: (index: Int, UShort) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.filterIndexedTo(destination: C, predicate: (index: Int, UInt) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.filterIndexedTo(destination: C, predicate: (index: Int, ULong) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.filterIndexedTo(destination: C, predicate: (index: Int, UByte) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.filterIndexedTo(destination: C, predicate: (index: Int, UShort) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.filterNot(predicate: (UInt) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.filterNot(predicate: (ULong) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.filterNot(predicate: (UByte) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.filterNot(predicate: (UShort) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.filterNotTo(destination: C, predicate: (UInt) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.filterNotTo(destination: C, predicate: (ULong) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.filterNotTo(destination: C, predicate: (UByte) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.filterNotTo(destination: C, predicate: (UShort) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.filterTo(destination: C, predicate: (UInt) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.filterTo(destination: C, predicate: (ULong) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.filterTo(destination: C, predicate: (UByte) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.filterTo(destination: C, predicate: (UShort) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sliceArray(indices: Collection): UIntArray {\n return UIntArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sliceArray(indices: Collection): ULongArray {\n return ULongArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sliceArray(indices: Collection): UByteArray {\n return UByteArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sliceArray(indices: Collection): UShortArray {\n return UShortArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sliceArray(indices: IntRange): UIntArray {\n return UIntArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sliceArray(indices: IntRange): ULongArray {\n return ULongArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sliceArray(indices: IntRange): UByteArray {\n return UByteArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sliceArray(indices: IntRange): UShortArray {\n return UShortArray(storage.sliceArray(indices))\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n if (count++ == n)\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.takeLastWhile(predicate: (UInt) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.takeLastWhile(predicate: (ULong) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.takeLastWhile(predicate: (UByte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.takeLastWhile(predicate: (UShort) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.takeWhile(predicate: (UInt) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.takeWhile(predicate: (ULong) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.takeWhile(predicate: (UByte) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.takeWhile(predicate: (UShort) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reverse(): Unit {\n storage.reverse()\n}\n\n/**\n * Reverses elements in the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reverse(): Unit {\n storage.reverse()\n}\n\n/**\n * Reverses elements in the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reverse(): Unit {\n storage.reverse()\n}\n\n/**\n * Reverses elements in the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reverse(): Unit {\n storage.reverse()\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reversedArray(): UIntArray {\n return UIntArray(storage.reversedArray())\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reversedArray(): ULongArray {\n return ULongArray(storage.reversedArray())\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reversedArray(): UByteArray {\n return UByteArray(storage.reversedArray())\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reversedArray(): UShortArray {\n return UShortArray(storage.reversedArray())\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sorted(): List {\n return copyOf().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sorted(): List {\n return copyOf().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sorted(): List {\n return copyOf().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sorted(): List {\n return copyOf().apply { sort() }.asList()\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sortedArray(): UIntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sortedArray(): ULongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sortedArray(): UByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sortedArray(): UShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sortedArrayDescending(): UIntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sortedArrayDescending(): ULongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sortedArrayDescending(): UByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sortedArrayDescending(): UShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns an array of type [ByteArray], which is a view of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.asByteArray(): ByteArray {\n return storage\n}\n\n/**\n * Returns an array of type [IntArray], which is a view of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.asIntArray(): IntArray {\n return storage\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun UIntArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun ULongArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun UByteArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic expect fun UShortArray.asList(): List\n\n/**\n * Returns an array of type [LongArray], which is a view of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.asLongArray(): LongArray {\n return storage\n}\n\n/**\n * Returns an array of type [ShortArray], which is a view of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.asShortArray(): ShortArray {\n return storage\n}\n\n/**\n * Returns an array of type [UByteArray], which is a view of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.asUByteArray(): UByteArray {\n return UByteArray(this)\n}\n\n/**\n * Returns an array of type [UIntArray], which is a view of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.asUIntArray(): UIntArray {\n return UIntArray(this)\n}\n\n/**\n * Returns an array of type [ULongArray], which is a view of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.asULongArray(): ULongArray {\n return ULongArray(this)\n}\n\n/**\n * Returns an array of type [UShortArray], which is a view of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.asUShortArray(): UShortArray {\n return UShortArray(this)\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UIntArray.contentEquals(other: UIntArray): Boolean {\n return storage.contentEquals(other.storage)\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULongArray.contentEquals(other: ULongArray): Boolean {\n return storage.contentEquals(other.storage)\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UByteArray.contentEquals(other: UByteArray): Boolean {\n return storage.contentEquals(other.storage)\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UShortArray.contentEquals(other: UShortArray): Boolean {\n return storage.contentEquals(other.storage)\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.contentHashCode(): Int {\n return storage.contentHashCode()\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.contentHashCode(): Int {\n return storage.contentHashCode()\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.contentHashCode(): Int {\n return storage.contentHashCode()\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.contentHashCode(): Int {\n return storage.contentHashCode()\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.contentToString(): String {\n return joinToString(\", \", \"[\", \"]\")\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.contentToString(): String {\n return joinToString(\", \", \"[\", \"]\")\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.contentToString(): String {\n return joinToString(\", \", \"[\", \"]\")\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.contentToString(): String {\n return joinToString(\", \", \"[\", \"]\")\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.copyInto(destination: UIntArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): UIntArray {\n storage.copyInto(destination.storage, destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.copyInto(destination: ULongArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ULongArray {\n storage.copyInto(destination.storage, destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.copyInto(destination: UByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): UByteArray {\n storage.copyInto(destination.storage, destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.copyInto(destination: UShortArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): UShortArray {\n storage.copyInto(destination.storage, destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.copyOf(): UIntArray {\n return UIntArray(storage.copyOf())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.copyOf(): ULongArray {\n return ULongArray(storage.copyOf())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.copyOf(): UByteArray {\n return UByteArray(storage.copyOf())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.copyOf(): UShortArray {\n return UShortArray(storage.copyOf())\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.copyOf(newSize: Int): UIntArray {\n return UIntArray(storage.copyOf(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.copyOf(newSize: Int): ULongArray {\n return ULongArray(storage.copyOf(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.copyOf(newSize: Int): UByteArray {\n return UByteArray(storage.copyOf(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.copyOf(newSize: Int): UShortArray {\n return UShortArray(storage.copyOf(newSize))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.copyOfRange(fromIndex: Int, toIndex: Int): UIntArray {\n return UIntArray(storage.copyOfRange(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.copyOfRange(fromIndex: Int, toIndex: Int): ULongArray {\n return ULongArray(storage.copyOfRange(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.copyOfRange(fromIndex: Int, toIndex: Int): UByteArray {\n return UByteArray(storage.copyOfRange(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.copyOfRange(fromIndex: Int, toIndex: Int): UShortArray {\n return UShortArray(storage.copyOfRange(fromIndex, toIndex))\n}\n\n/**\n * Returns the range of valid indices for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val UIntArray.indices: IntRange\n get() = storage.indices\n\n/**\n * Returns the range of valid indices for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val ULongArray.indices: IntRange\n get() = storage.indices\n\n/**\n * Returns the range of valid indices for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val UByteArray.indices: IntRange\n get() = storage.indices\n\n/**\n * Returns the range of valid indices for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val UShortArray.indices: IntRange\n get() = storage.indices\n\n/**\n * Returns the last valid index for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val UIntArray.lastIndex: Int\n get() = storage.lastIndex\n\n/**\n * Returns the last valid index for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val ULongArray.lastIndex: Int\n get() = storage.lastIndex\n\n/**\n * Returns the last valid index for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val UByteArray.lastIndex: Int\n get() = storage.lastIndex\n\n/**\n * Returns the last valid index for the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline val UShortArray.lastIndex: Int\n get() = storage.lastIndex\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.plus(element: UInt): UIntArray {\n return UIntArray(storage + element.toInt())\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.plus(element: ULong): ULongArray {\n return ULongArray(storage + element.toLong())\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.plus(element: UByte): UByteArray {\n return UByteArray(storage + element.toByte())\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.plus(element: UShort): UShortArray {\n return UShortArray(storage + element.toShort())\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun UIntArray.plus(elements: Collection): UIntArray {\n var index = size\n val result = storage.copyOf(size + elements.size)\n for (element in elements) result[index++] = element.toInt()\n return UIntArray(result)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun ULongArray.plus(elements: Collection): ULongArray {\n var index = size\n val result = storage.copyOf(size + elements.size)\n for (element in elements) result[index++] = element.toLong()\n return ULongArray(result)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun UByteArray.plus(elements: Collection): UByteArray {\n var index = size\n val result = storage.copyOf(size + elements.size)\n for (element in elements) result[index++] = element.toByte()\n return UByteArray(result)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun UShortArray.plus(elements: Collection): UShortArray {\n var index = size\n val result = storage.copyOf(size + elements.size)\n for (element in elements) result[index++] = element.toShort()\n return UShortArray(result)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntArray.plus(elements: UIntArray): UIntArray {\n return UIntArray(storage + elements.storage)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongArray.plus(elements: ULongArray): ULongArray {\n return ULongArray(storage + elements.storage)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UByteArray.plus(elements: UByteArray): UByteArray {\n return UByteArray(storage + elements.storage)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UShortArray.plus(elements: UShortArray): UShortArray {\n return UShortArray(storage + elements.storage)\n}\n\n/**\n * Sorts the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.sort(): Unit {\n if (size > 1) sortArray(this)\n}\n\n/**\n * Sorts the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.sort(): Unit {\n if (size > 1) sortArray(this)\n}\n\n/**\n * Sorts the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.sort(): Unit {\n if (size > 1) sortArray(this)\n}\n\n/**\n * Sorts the array in-place.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.sort(): Unit {\n if (size > 1) sortArray(this)\n}\n\n/**\n * Returns an array of type [ByteArray], which is a copy of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.toByteArray(): ByteArray {\n return storage.copyOf()\n}\n\n/**\n * Returns an array of type [IntArray], which is a copy of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.toIntArray(): IntArray {\n return storage.copyOf()\n}\n\n/**\n * Returns an array of type [LongArray], which is a copy of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.toLongArray(): LongArray {\n return storage.copyOf()\n}\n\n/**\n * Returns an array of type [ShortArray], which is a copy of this array where each element is a signed reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.toShortArray(): ShortArray {\n return storage.copyOf()\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.toTypedArray(): Array {\n return Array(size) { index -> this[index] }\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.toTypedArray(): Array {\n return Array(size) { index -> this[index] }\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.toTypedArray(): Array {\n return Array(size) { index -> this[index] }\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.toTypedArray(): Array {\n return Array(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of UByte containing all of the elements of this generic array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.toUByteArray(): UByteArray {\n return UByteArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of type [UByteArray], which is a copy of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.toUByteArray(): UByteArray {\n return UByteArray(this.copyOf())\n}\n\n/**\n * Returns an array of UInt containing all of the elements of this generic array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.toUIntArray(): UIntArray {\n return UIntArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of type [UIntArray], which is a copy of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.toUIntArray(): UIntArray {\n return UIntArray(this.copyOf())\n}\n\n/**\n * Returns an array of ULong containing all of the elements of this generic array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.toULongArray(): ULongArray {\n return ULongArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of type [ULongArray], which is a copy of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.toULongArray(): ULongArray {\n return ULongArray(this.copyOf())\n}\n\n/**\n * Returns an array of UShort containing all of the elements of this generic array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.toUShortArray(): UShortArray {\n return UShortArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of type [UShortArray], which is a copy of this array where each element is an unsigned reinterpretation\n * of the corresponding element of this array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.toUShortArray(): UShortArray {\n return UShortArray(this.copyOf())\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.flatMap(transform: (UInt) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.flatMap(transform: (ULong) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.flatMap(transform: (UByte) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.flatMap(transform: (UShort) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.flatMapTo(destination: C, transform: (UInt) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.flatMapTo(destination: C, transform: (ULong) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.flatMapTo(destination: C, transform: (UByte) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.flatMapTo(destination: C, transform: (UShort) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.groupBy(keySelector: (UInt) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.groupBy(keySelector: (ULong) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.groupBy(keySelector: (UByte) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.groupBy(keySelector: (UShort) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.groupBy(keySelector: (UInt) -> K, valueTransform: (UInt) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.groupBy(keySelector: (ULong) -> K, valueTransform: (ULong) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.groupBy(keySelector: (UByte) -> K, valueTransform: (UByte) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.groupBy(keySelector: (UShort) -> K, valueTransform: (UShort) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> UIntArray.groupByTo(destination: M, keySelector: (UInt) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> ULongArray.groupByTo(destination: M, keySelector: (ULong) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> UByteArray.groupByTo(destination: M, keySelector: (UByte) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> UShortArray.groupByTo(destination: M, keySelector: (UShort) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> UIntArray.groupByTo(destination: M, keySelector: (UInt) -> K, valueTransform: (UInt) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> ULongArray.groupByTo(destination: M, keySelector: (ULong) -> K, valueTransform: (ULong) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> UByteArray.groupByTo(destination: M, keySelector: (UByte) -> K, valueTransform: (UByte) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun >> UShortArray.groupByTo(destination: M, keySelector: (UShort) -> K, valueTransform: (UShort) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.map(transform: (UInt) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.map(transform: (ULong) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.map(transform: (UByte) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.map(transform: (UShort) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.mapIndexed(transform: (index: Int, UInt) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.mapIndexed(transform: (index: Int, ULong) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.mapIndexed(transform: (index: Int, UByte) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.mapIndexed(transform: (index: Int, UShort) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.mapIndexedTo(destination: C, transform: (index: Int, UInt) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.mapIndexedTo(destination: C, transform: (index: Int, ULong) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.mapIndexedTo(destination: C, transform: (index: Int, UByte) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.mapIndexedTo(destination: C, transform: (index: Int, UShort) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.mapTo(destination: C, transform: (UInt) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.mapTo(destination: C, transform: (ULong) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.mapTo(destination: C, transform: (UByte) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.mapTo(destination: C, transform: (UShort) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] of [IndexedValue] for each element of the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.all(predicate: (UInt) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.all(predicate: (ULong) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.all(predicate: (UByte) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.all(predicate: (UShort) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.any(): Boolean {\n return storage.any()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.any(): Boolean {\n return storage.any()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.any(): Boolean {\n return storage.any()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.any(): Boolean {\n return storage.any()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.any(predicate: (UInt) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.any(predicate: (ULong) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.any(predicate: (UByte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.any(predicate: (UShort) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.count(predicate: (UInt) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.count(predicate: (ULong) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.count(predicate: (UByte) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.count(predicate: (UShort) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.fold(initial: R, operation: (acc: R, UInt) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.fold(initial: R, operation: (acc: R, ULong) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.fold(initial: R, operation: (acc: R, UByte) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.fold(initial: R, operation: (acc: R, UShort) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.foldIndexed(initial: R, operation: (index: Int, acc: R, UInt) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.foldIndexed(initial: R, operation: (index: Int, acc: R, ULong) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.foldIndexed(initial: R, operation: (index: Int, acc: R, UByte) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.foldIndexed(initial: R, operation: (index: Int, acc: R, UShort) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.foldRight(initial: R, operation: (UInt, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.foldRight(initial: R, operation: (ULong, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.foldRight(initial: R, operation: (UByte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.foldRight(initial: R, operation: (UShort, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.foldRightIndexed(initial: R, operation: (index: Int, UInt, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.foldRightIndexed(initial: R, operation: (index: Int, ULong, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.foldRightIndexed(initial: R, operation: (index: Int, UByte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.foldRightIndexed(initial: R, operation: (index: Int, UShort, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.forEach(action: (UInt) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.forEach(action: (ULong) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.forEach(action: (UByte) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.forEach(action: (UShort) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.forEachIndexed(action: (index: Int, UInt) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.forEachIndexed(action: (index: Int, ULong) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.forEachIndexed(action: (index: Int, UByte) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.forEachIndexed(action: (index: Int, UShort) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.max(): UInt? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.max(): ULong? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.max(): UByte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.max(): UShort? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.maxBy(selector: (UInt) -> R): UInt? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.maxBy(selector: (ULong) -> R): ULong? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.maxBy(selector: (UByte) -> R): UByte? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.maxBy(selector: (UShort) -> R): UShort? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.maxWith(comparator: Comparator): UInt? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.maxWith(comparator: Comparator): ULong? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.maxWith(comparator: Comparator): UByte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.maxWith(comparator: Comparator): UShort? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.min(): UInt? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.min(): ULong? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.min(): UByte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.min(): UShort? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UIntArray.minBy(selector: (UInt) -> R): UInt? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > ULongArray.minBy(selector: (ULong) -> R): ULong? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UByteArray.minBy(selector: (UByte) -> R): UByte? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun > UShortArray.minBy(selector: (UShort) -> R): UShort? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntArray.minWith(comparator: Comparator): UInt? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongArray.minWith(comparator: Comparator): ULong? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByteArray.minWith(comparator: Comparator): UByte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShortArray.minWith(comparator: Comparator): UShort? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.none(predicate: (UInt) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.none(predicate: (ULong) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.none(predicate: (UByte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.none(predicate: (UShort) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduce(operation: (acc: UInt, UInt) -> UInt): UInt {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduce(operation: (acc: ULong, ULong) -> ULong): ULong {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduce(operation: (acc: UByte, UByte) -> UByte): UByte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduce(operation: (acc: UShort, UShort) -> UShort): UShort {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceIndexed(operation: (index: Int, acc: UInt, UInt) -> UInt): UInt {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceIndexed(operation: (index: Int, acc: ULong, ULong) -> ULong): ULong {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceIndexed(operation: (index: Int, acc: UByte, UByte) -> UByte): UByte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceIndexed(operation: (index: Int, acc: UShort, UShort) -> UShort): UShort {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceRight(operation: (UInt, acc: UInt) -> UInt): UInt {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceRight(operation: (ULong, acc: ULong) -> ULong): ULong {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceRight(operation: (UByte, acc: UByte) -> UByte): UByte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceRight(operation: (UShort, acc: UShort) -> UShort): UShort {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.reduceRightIndexed(operation: (index: Int, UInt, acc: UInt) -> UInt): UInt {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.reduceRightIndexed(operation: (index: Int, ULong, acc: ULong) -> ULong): ULong {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.reduceRightIndexed(operation: (index: Int, UByte, acc: UByte) -> UByte): UByte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.reduceRightIndexed(operation: (index: Int, UShort, acc: UShort) -> UShort): UShort {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumBy(selector: (UInt) -> UInt): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumBy(selector: (ULong) -> UInt): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumBy(selector: (UByte) -> UInt): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumBy(selector: (UShort) -> UInt): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sumByDouble(selector: (UInt) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sumByDouble(selector: (ULong) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sumByDouble(selector: (UByte) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sumByDouble(selector: (UShort) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UIntArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULongArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UByteArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UShortArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.zip(other: Array, transform: (a: UInt, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.zip(other: Array, transform: (a: ULong, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.zip(other: Array, transform: (a: UByte, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.zip(other: Array, transform: (a: UShort, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UIntArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULongArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UByteArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UShortArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.zip(other: Iterable, transform: (a: UInt, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.zip(other: Iterable, transform: (a: ULong, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.zip(other: Iterable, transform: (a: UByte, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.zip(other: Iterable, transform: (a: UShort, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UIntArray.zip(other: UIntArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULongArray.zip(other: ULongArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UByteArray.zip(other: UByteArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UShortArray.zip(other: UShortArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.zip(other: UIntArray, transform: (a: UInt, b: UInt) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.zip(other: ULongArray, transform: (a: ULong, b: ULong) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.zip(other: UByteArray, transform: (a: UByte, b: UByte) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.zip(other: UShortArray, transform: (a: UShort, b: UShort) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.sum(): ULong {\n var sum: ULong = 0uL\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfUByte\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfUShort\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Array.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntArray.sum(): UInt {\n return storage.sum().toUInt()\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongArray.sum(): ULong {\n return storage.sum().toULong()\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray.sum(): UInt {\n return sumBy { it.toUInt() }\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UShortArray.sum(): UInt {\n return sumBy { it.toUInt() }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"UCollectionsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns an array of UByte containing all of the elements of this collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Collection.toUByteArray(): UByteArray {\n val result = UByteArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of UInt containing all of the elements of this collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Collection.toUIntArray(): UIntArray {\n val result = UIntArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of ULong containing all of the elements of this collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Collection.toULongArray(): ULongArray {\n val result = ULongArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of UShort containing all of the elements of this collection.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Collection.toUShortArray(): UShortArray {\n val result = UShortArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Iterable.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Iterable.sum(): ULong {\n var sum: ULong = 0uL\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfUByte\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Iterable.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfUShort\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Iterable.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"UComparisonsKt\")\n\npackage kotlin.comparisons\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: UInt, b: UInt): UInt {\n return if (a >= b) a else b\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: ULong, b: ULong): ULong {\n return if (a >= b) a else b\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: UByte, b: UByte): UByte {\n return if (a >= b) a else b\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun maxOf(a: UShort, b: UShort): UShort {\n return if (a >= b) a else b\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun maxOf(a: UInt, b: UInt, c: UInt): UInt {\n return maxOf(a, maxOf(b, c))\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun maxOf(a: ULong, b: ULong, c: ULong): ULong {\n return maxOf(a, maxOf(b, c))\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun maxOf(a: UByte, b: UByte, c: UByte): UByte {\n return maxOf(a, maxOf(b, c))\n}\n\n/**\n * Returns the greater of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun maxOf(a: UShort, b: UShort, c: UShort): UShort {\n return maxOf(a, maxOf(b, c))\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: UInt, b: UInt): UInt {\n return if (a <= b) a else b\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: ULong, b: ULong): ULong {\n return if (a <= b) a else b\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: UByte, b: UByte): UByte {\n return if (a <= b) a else b\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun minOf(a: UShort, b: UShort): UShort {\n return if (a <= b) a else b\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun minOf(a: UInt, b: UInt, c: UInt): UInt {\n return minOf(a, minOf(b, c))\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun minOf(a: ULong, b: ULong, c: ULong): ULong {\n return minOf(a, minOf(b, c))\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun minOf(a: UByte, b: UByte, c: UByte): UByte {\n return minOf(a, minOf(b, c))\n}\n\n/**\n * Returns the smaller of three values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun minOf(a: UShort, b: UShort, c: UShort): UShort {\n return minOf(a, minOf(b, c))\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"URangesKt\")\n\npackage kotlin.ranges\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns a random element from this range.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UIntRange.random(): UInt {\n return random(Random)\n}\n\n/**\n * Returns a random element from this range.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ULongRange.random(): ULong {\n return random(Random)\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntRange.random(random: Random): UInt {\n try {\n return random.nextUInt(this)\n } catch(e: IllegalArgumentException) {\n throw NoSuchElementException(e.message)\n }\n}\n\n/**\n * Returns a random element from this range using the specified source of randomness.\n * \n * @throws IllegalArgumentException if this range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongRange.random(random: Random): ULong {\n try {\n return random.nextULong(this)\n } catch(e: IllegalArgumentException) {\n throw NoSuchElementException(e.message)\n }\n}\n\n/**\n * Returns `true` if this range contains the specified [element].\n * \n * Always returns `false` if the [element] is `null`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun UIntRange.contains(element: UInt?): Boolean {\n return element != null && contains(element)\n}\n\n/**\n * Returns `true` if this range contains the specified [element].\n * \n * Always returns `false` if the [element] is `null`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline operator fun ULongRange.contains(element: ULong?): Boolean {\n return element != null && contains(element)\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun UIntRange.contains(value: UByte): Boolean {\n return contains(value.toUInt())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun ULongRange.contains(value: UByte): Boolean {\n return contains(value.toULong())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun ULongRange.contains(value: UInt): Boolean {\n return contains(value.toULong())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun UIntRange.contains(value: ULong): Boolean {\n return (value shr UInt.SIZE_BITS) == 0uL && contains(value.toUInt())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun UIntRange.contains(value: UShort): Boolean {\n return contains(value.toUInt())\n}\n\n/**\n * Checks if the specified [value] belongs to this range.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic operator fun ULongRange.contains(value: UShort): Boolean {\n return contains(value.toULong())\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UByte.downTo(to: UByte): UIntProgression {\n return UIntProgression.fromClosedRange(this.toUInt(), to.toUInt(), -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UInt.downTo(to: UInt): UIntProgression {\n return UIntProgression.fromClosedRange(this, to, -1)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULong.downTo(to: ULong): ULongProgression {\n return ULongProgression.fromClosedRange(this, to, -1L)\n}\n\n/**\n * Returns a progression from this value down to the specified [to] value with the step -1.\n * \n * The [to] value should be less than or equal to `this` value.\n * If the [to] value is greater than `this` value the returned progression is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UShort.downTo(to: UShort): UIntProgression {\n return UIntProgression.fromClosedRange(this.toUInt(), to.toUInt(), -1)\n}\n\n/**\n * Returns a progression that goes over the same range in the opposite direction with the same step.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UIntProgression.reversed(): UIntProgression {\n return UIntProgression.fromClosedRange(last, first, -step)\n}\n\n/**\n * Returns a progression that goes over the same range in the opposite direction with the same step.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULongProgression.reversed(): ULongProgression {\n return ULongProgression.fromClosedRange(last, first, -step)\n}\n\n/**\n * Returns a progression that goes over the same range with the given step.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UIntProgression.step(step: Int): UIntProgression {\n checkStepIsPositive(step > 0, step)\n return UIntProgression.fromClosedRange(first, last, if (this.step > 0) step else -step)\n}\n\n/**\n * Returns a progression that goes over the same range with the given step.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULongProgression.step(step: Long): ULongProgression {\n checkStepIsPositive(step > 0, step)\n return ULongProgression.fromClosedRange(first, last, if (this.step > 0) step else -step)\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UByte.until(to: UByte): UIntRange {\n if (to <= UByte.MIN_VALUE) return UIntRange.EMPTY\n return this.toUInt() .. (to - 1u).toUInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UInt.until(to: UInt): UIntRange {\n if (to <= UInt.MIN_VALUE) return UIntRange.EMPTY\n return this .. (to - 1u).toUInt()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun ULong.until(to: ULong): ULongRange {\n if (to <= ULong.MIN_VALUE) return ULongRange.EMPTY\n return this .. (to - 1u).toULong()\n}\n\n/**\n * Returns a range from this value up to but excluding the specified [to] value.\n * \n * If the [to] value is less than or equal to `this` value, then the returned range is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic infix fun UShort.until(to: UShort): UIntRange {\n if (to <= UShort.MIN_VALUE) return UIntRange.EMPTY\n return this.toUInt() .. (to - 1u).toUInt()\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeastUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UInt.coerceAtLeast(minimumValue: UInt): UInt {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeastUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULong.coerceAtLeast(minimumValue: ULong): ULong {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeastUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByte.coerceAtLeast(minimumValue: UByte): UByte {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not less than the specified [minimumValue].\n * \n * @return this value if it's greater than or equal to the [minimumValue] or the [minimumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtLeastUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShort.coerceAtLeast(minimumValue: UShort): UShort {\n return if (this < minimumValue) minimumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMostUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UInt.coerceAtMost(maximumValue: UInt): UInt {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMostUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULong.coerceAtMost(maximumValue: ULong): ULong {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMostUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByte.coerceAtMost(maximumValue: UByte): UByte {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value is not greater than the specified [maximumValue].\n * \n * @return this value if it's less than or equal to the [maximumValue] or the [maximumValue] otherwise.\n * \n * @sample samples.comparisons.ComparableOps.coerceAtMostUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShort.coerceAtMost(maximumValue: UShort): UShort {\n return if (this > maximumValue) maximumValue else this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceInUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UInt.coerceIn(minimumValue: UInt, maximumValue: UInt): UInt {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceInUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULong.coerceIn(minimumValue: ULong, maximumValue: ULong): ULong {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceInUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UByte.coerceIn(minimumValue: UByte, maximumValue: UByte): UByte {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified range [minimumValue]..[maximumValue].\n * \n * @return this value if it's in the range, or [minimumValue] if this value is less than [minimumValue], or [maximumValue] if this value is greater than [maximumValue].\n * \n * @sample samples.comparisons.ComparableOps.coerceInUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UShort.coerceIn(minimumValue: UShort, maximumValue: UShort): UShort {\n if (minimumValue > maximumValue) throw IllegalArgumentException(\"Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.\")\n if (this < minimumValue) return minimumValue\n if (this > maximumValue) return maximumValue\n return this\n}\n\n/**\n * Ensures that this value lies in the specified [range].\n * \n * @return this value if it's in the [range], or `range.start` if this value is less than `range.start`, or `range.endInclusive` if this value is greater than `range.endInclusive`.\n * \n * @sample samples.comparisons.ComparableOps.coerceInUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun UInt.coerceIn(range: ClosedRange): UInt {\n if (range is ClosedFloatingPointRange) {\n return this.coerceIn(range)\n }\n if (range.isEmpty()) throw IllegalArgumentException(\"Cannot coerce value to an empty range: $range.\")\n return when {\n this < range.start -> range.start\n this > range.endInclusive -> range.endInclusive\n else -> this\n }\n}\n\n/**\n * Ensures that this value lies in the specified [range].\n * \n * @return this value if it's in the [range], or `range.start` if this value is less than `range.start`, or `range.endInclusive` if this value is greater than `range.endInclusive`.\n * \n * @sample samples.comparisons.ComparableOps.coerceInUnsigned\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULong.coerceIn(range: ClosedRange): ULong {\n if (range is ClosedFloatingPointRange) {\n return this.coerceIn(range)\n }\n if (range.isEmpty()) throw IllegalArgumentException(\"Cannot coerce value to an empty range: $range.\")\n return when {\n this < range.start -> range.start\n this > range.endInclusive -> range.endInclusive\n else -> this\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"USequencesKt\")\n\npackage kotlin.sequences\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Sequence.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Sequence.sum(): ULong {\n var sum: ULong = 0uL\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfUByte\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Sequence.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the sequence.\n *\n * The operation is _terminal_.\n */\n@kotlin.jvm.JvmName(\"sumOfUShort\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Sequence.sum(): UInt {\n var sum: UInt = 0u\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2015 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin.collections\n\nimport kotlin.internal.PlatformDependent\n\n/**\n * Classes that inherit from this interface can be represented as a sequence of elements that can\n * be iterated over.\n * @param T the type of element being iterated over. The iterator is covariant on its element type.\n */\npublic interface Iterable {\n /**\n * Returns an iterator over the elements of this object.\n */\n public operator fun iterator(): Iterator\n}\n\n/**\n * Classes that inherit from this interface can be represented as a sequence of elements that can\n * be iterated over and that supports removing elements during iteration.\n * @param T the type of element being iterated over. The mutable iterator is invariant on its element type.\n */\npublic interface MutableIterable : Iterable {\n /**\n * Returns an iterator over the elements of this sequence that supports removing elements during iteration.\n */\n override fun iterator(): MutableIterator\n}\n\n/**\n * A generic collection of elements. Methods in this interface support only read-only access to the collection;\n * read/write access is supported through the [MutableCollection] interface.\n * @param E the type of elements contained in the collection. The collection is covariant on its element type.\n */\npublic interface Collection : Iterable {\n // Query Operations\n /**\n * Returns the size of the collection.\n */\n public val size: Int\n\n /**\n * Returns `true` if the collection is empty (contains no elements), `false` otherwise.\n */\n public fun isEmpty(): Boolean\n\n /**\n * Checks if the specified element is contained in this collection.\n */\n public operator fun contains(element: @UnsafeVariance E): Boolean\n\n override fun iterator(): Iterator\n\n // Bulk Operations\n /**\n * Checks if all elements in the specified collection are contained in this collection.\n */\n public fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean\n}\n\n/**\n * A generic collection of elements that supports adding and removing elements.\n *\n * @param E the type of elements contained in the collection. The mutable collection is invariant on its element type.\n */\npublic interface MutableCollection : Collection, MutableIterable {\n // Query Operations\n override fun iterator(): MutableIterator\n\n // Modification Operations\n /**\n * Adds the specified element to the collection.\n *\n * @return `true` if the element has been added, `false` if the collection does not support duplicates\n * and the element is already contained in the collection.\n */\n public fun add(element: E): Boolean\n\n /**\n * Removes a single instance of the specified element from this\n * collection, if it is present.\n *\n * @return `true` if the element has been successfully removed; `false` if it was not present in the collection.\n */\n public fun remove(element: E): Boolean\n\n // Bulk Modification Operations\n /**\n * Adds all of the elements of the specified collection to this collection.\n *\n * @return `true` if any of the specified elements was added to the collection, `false` if the collection was not modified.\n */\n public fun addAll(elements: Collection): Boolean\n\n /**\n * Removes all of this collection's elements that are also contained in the specified collection.\n *\n * @return `true` if any of the specified elements was removed from the collection, `false` if the collection was not modified.\n */\n public fun removeAll(elements: Collection): Boolean\n\n /**\n * Retains only the elements in this collection that are contained in the specified collection.\n *\n * @return `true` if any element was removed from the collection, `false` if the collection was not modified.\n */\n public fun retainAll(elements: Collection): Boolean\n\n /**\n * Removes all elements from this collection.\n */\n public fun clear(): Unit\n}\n\n/**\n * A generic ordered collection of elements. Methods in this interface support only read-only access to the list;\n * read/write access is supported through the [MutableList] interface.\n * @param E the type of elements contained in the list. The list is covariant on its element type.\n */\npublic interface List : Collection {\n // Query Operations\n\n override val size: Int\n override fun isEmpty(): Boolean\n override fun contains(element: @UnsafeVariance E): Boolean\n override fun iterator(): Iterator\n\n // Bulk Operations\n override fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean\n\n // Positional Access Operations\n /**\n * Returns the element at the specified index in the list.\n */\n public operator fun get(index: Int): E\n\n // Search Operations\n /**\n * Returns the index of the first occurrence of the specified element in the list, or -1 if the specified\n * element is not contained in the list.\n */\n public fun indexOf(element: @UnsafeVariance E): Int\n\n /**\n * Returns the index of the last occurrence of the specified element in the list, or -1 if the specified\n * element is not contained in the list.\n */\n public fun lastIndexOf(element: @UnsafeVariance E): Int\n\n // List Iterators\n /**\n * Returns a list iterator over the elements in this list (in proper sequence).\n */\n public fun listIterator(): ListIterator\n\n /**\n * Returns a list iterator over the elements in this list (in proper sequence), starting at the specified [index].\n */\n public fun listIterator(index: Int): ListIterator\n\n // View\n /**\n * Returns a view of the portion of this list between the specified [fromIndex] (inclusive) and [toIndex] (exclusive).\n * The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa.\n *\n * Structural changes in the base list make the behavior of the view undefined.\n */\n public fun subList(fromIndex: Int, toIndex: Int): List\n}\n\n/**\n * A generic ordered collection of elements that supports adding and removing elements.\n * @param E the type of elements contained in the list. The mutable list is invariant on its element type.\n */\npublic interface MutableList : List, MutableCollection {\n // Modification Operations\n /**\n * Adds the specified element to the end of this list.\n *\n * @return `true` because the list is always modified as the result of this operation.\n */\n override fun add(element: E): Boolean\n\n override fun remove(element: E): Boolean\n\n // Bulk Modification Operations\n /**\n * Adds all of the elements of the specified collection to the end of this list.\n *\n * The elements are appended in the order they appear in the [elements] collection.\n *\n * @return `true` if the list was changed as the result of the operation.\n */\n override fun addAll(elements: Collection): Boolean\n\n /**\n * Inserts all of the elements of the specified collection [elements] into this list at the specified [index].\n *\n * @return `true` if the list was changed as the result of the operation.\n */\n public fun addAll(index: Int, elements: Collection): Boolean\n\n override fun removeAll(elements: Collection): Boolean\n override fun retainAll(elements: Collection): Boolean\n override fun clear(): Unit\n\n // Positional Access Operations\n /**\n * Replaces the element at the specified position in this list with the specified element.\n *\n * @return the element previously at the specified position.\n */\n public operator fun set(index: Int, element: E): E\n\n /**\n * Inserts an element into the list at the specified [index].\n */\n public fun add(index: Int, element: E): Unit\n\n /**\n * Removes an element at the specified [index] from the list.\n *\n * @return the element that has been removed.\n */\n public fun removeAt(index: Int): E\n\n // List Iterators\n override fun listIterator(): MutableListIterator\n\n override fun listIterator(index: Int): MutableListIterator\n\n // View\n override fun subList(fromIndex: Int, toIndex: Int): MutableList\n}\n\n/**\n * A generic unordered collection of elements that does not support duplicate elements.\n * Methods in this interface support only read-only access to the set;\n * read/write access is supported through the [MutableSet] interface.\n * @param E the type of elements contained in the set. The set is covariant on its element type.\n */\npublic interface Set : Collection {\n // Query Operations\n\n override val size: Int\n override fun isEmpty(): Boolean\n override fun contains(element: @UnsafeVariance E): Boolean\n override fun iterator(): Iterator\n\n // Bulk Operations\n override fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean\n}\n\n/**\n * A generic unordered collection of elements that does not support duplicate elements, and supports\n * adding and removing elements.\n * @param E the type of elements contained in the set. The mutable set is invariant on its element type.\n */\npublic interface MutableSet : Set, MutableCollection {\n // Query Operations\n override fun iterator(): MutableIterator\n\n // Modification Operations\n\n /**\n * Adds the specified element to the set.\n *\n * @return `true` if the element has been added, `false` if the element is already contained in the set.\n */\n override fun add(element: E): Boolean\n\n override fun remove(element: E): Boolean\n\n // Bulk Modification Operations\n\n override fun addAll(elements: Collection): Boolean\n override fun removeAll(elements: Collection): Boolean\n override fun retainAll(elements: Collection): Boolean\n override fun clear(): Unit\n}\n\n/**\n * A collection that holds pairs of objects (keys and values) and supports efficiently retrieving\n * the value corresponding to each key. Map keys are unique; the map holds only one value for each key.\n * Methods in this interface support only read-only access to the map; read-write access is supported through\n * the [MutableMap] interface.\n * @param K the type of map keys. The map is invariant on its key type, as it\n * can accept key as a parameter (of [containsKey] for example) and return it in [keys] set.\n * @param V the type of map values. The map is covariant on its value type.\n */\npublic interface Map {\n // Query Operations\n /**\n * Returns the number of key/value pairs in the map.\n */\n public val size: Int\n\n /**\n * Returns `true` if the map is empty (contains no elements), `false` otherwise.\n */\n public fun isEmpty(): Boolean\n\n /**\n * Returns `true` if the map contains the specified [key].\n */\n public fun containsKey(key: K): Boolean\n\n /**\n * Returns `true` if the map maps one or more keys to the specified [value].\n */\n public fun containsValue(value: @UnsafeVariance V): Boolean\n\n /**\n * Returns the value corresponding to the given [key], or `null` if such a key is not present in the map.\n */\n public operator fun get(key: K): V?\n\n /**\n * Returns the value corresponding to the given [key], or [defaultValue] if such a key is not present in the map.\n *\n * @since JDK 1.8\n */\n @SinceKotlin(\"1.1\")\n @PlatformDependent\n public fun getOrDefault(key: K, defaultValue: @UnsafeVariance V): V {\n // See default implementation in JDK sources\n return null as V\n }\n\n // Views\n /**\n * Returns a read-only [Set] of all keys in this map.\n */\n public val keys: Set\n\n /**\n * Returns a read-only [Collection] of all values in this map. Note that this collection may contain duplicate values.\n */\n public val values: Collection\n\n /**\n * Returns a read-only [Set] of all key/value pairs in this map.\n */\n public val entries: Set>\n\n /**\n * Represents a key/value pair held by a [Map].\n */\n public interface Entry {\n /**\n * Returns the key of this key/value pair.\n */\n public val key: K\n\n /**\n * Returns the value of this key/value pair.\n */\n public val value: V\n }\n}\n\n/**\n * A modifiable collection that holds pairs of objects (keys and values) and supports efficiently retrieving\n * the value corresponding to each key. Map keys are unique; the map holds only one value for each key.\n * @param K the type of map keys. The map is invariant on its key type.\n * @param V the type of map values. The mutable map is invariant on its value type.\n */\npublic interface MutableMap : Map {\n // Modification Operations\n /**\n * Associates the specified [value] with the specified [key] in the map.\n *\n * @return the previous value associated with the key, or `null` if the key was not present in the map.\n */\n public fun put(key: K, value: V): V?\n\n /**\n * Removes the specified key and its corresponding value from this map.\n *\n * @return the previous value associated with the key, or `null` if the key was not present in the map.\n */\n public fun remove(key: K): V?\n\n /**\n * Removes the entry for the specified key only if it is mapped to the specified value.\n *\n * @return true if entry was removed\n */\n @SinceKotlin(\"1.1\")\n @PlatformDependent\n public fun remove(key: K, value: V): Boolean {\n // See default implementation in JDK sources\n return true\n }\n\n // Bulk Modification Operations\n /**\n * Updates this map with key/value pairs from the specified map [from].\n */\n public fun putAll(from: Map): Unit\n\n /**\n * Removes all elements from this map.\n */\n public fun clear(): Unit\n\n // Views\n /**\n * Returns a [MutableSet] of all keys in this map.\n */\n override val keys: MutableSet\n\n /**\n * Returns a [MutableCollection] of all values in this map. Note that this collection may contain duplicate values.\n */\n override val values: MutableCollection\n\n /**\n * Returns a [MutableSet] of all key/value pairs in this map.\n */\n override val entries: MutableSet>\n\n /**\n * Represents a key/value pair held by a [MutableMap].\n */\n public interface MutableEntry : Map.Entry {\n /**\n * Changes the value associated with the key of this entry.\n *\n * @return the previous value corresponding to the key.\n */\n public fun setValue(newValue: V): V\n }\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.collections\n\n/** An iterator over a sequence of values of type `Byte`. */\npublic abstract class ByteIterator : Iterator {\n override final fun next() = nextByte()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextByte(): Byte\n}\n\n/** An iterator over a sequence of values of type `Char`. */\npublic abstract class CharIterator : Iterator {\n override final fun next() = nextChar()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextChar(): Char\n}\n\n/** An iterator over a sequence of values of type `Short`. */\npublic abstract class ShortIterator : Iterator {\n override final fun next() = nextShort()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextShort(): Short\n}\n\n/** An iterator over a sequence of values of type `Int`. */\npublic abstract class IntIterator : Iterator {\n override final fun next() = nextInt()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextInt(): Int\n}\n\n/** An iterator over a sequence of values of type `Long`. */\npublic abstract class LongIterator : Iterator {\n override final fun next() = nextLong()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextLong(): Long\n}\n\n/** An iterator over a sequence of values of type `Float`. */\npublic abstract class FloatIterator : Iterator {\n override final fun next() = nextFloat()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextFloat(): Float\n}\n\n/** An iterator over a sequence of values of type `Double`. */\npublic abstract class DoubleIterator : Iterator {\n override final fun next() = nextDouble()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextDouble(): Double\n}\n\n/** An iterator over a sequence of values of type `Boolean`. */\npublic abstract class BooleanIterator : Iterator {\n override final fun next() = nextBoolean()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextBoolean(): Boolean\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.ranges\n\n/**\n * An iterator over a progression of values of type `Char`.\n * @property step the number by which the value is incremented on each step.\n */\ninternal class CharProgressionIterator(first: Char, last: Char, val step: Int) : CharIterator() {\n private val finalElement = last.toInt()\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private var next = if (hasNext) first.toInt() else finalElement\n\n override fun hasNext(): Boolean = hasNext\n\n override fun nextChar(): Char {\n val value = next\n if (value == finalElement) {\n if (!hasNext) throw kotlin.NoSuchElementException()\n hasNext = false\n }\n else {\n next += step\n }\n return value.toChar()\n }\n}\n\n/**\n * An iterator over a progression of values of type `Int`.\n * @property step the number by which the value is incremented on each step.\n */\ninternal class IntProgressionIterator(first: Int, last: Int, val step: Int) : IntIterator() {\n private val finalElement = last\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private var next = if (hasNext) first else finalElement\n\n override fun hasNext(): Boolean = hasNext\n\n override fun nextInt(): Int {\n val value = next\n if (value == finalElement) {\n if (!hasNext) throw kotlin.NoSuchElementException()\n hasNext = false\n }\n else {\n next += step\n }\n return value\n }\n}\n\n/**\n * An iterator over a progression of values of type `Long`.\n * @property step the number by which the value is incremented on each step.\n */\ninternal class LongProgressionIterator(first: Long, last: Long, val step: Long) : LongIterator() {\n private val finalElement = last\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private var next = if (hasNext) first else finalElement\n\n override fun hasNext(): Boolean = hasNext\n\n override fun nextLong(): Long {\n val value = next\n if (value == finalElement) {\n if (!hasNext) throw kotlin.NoSuchElementException()\n hasNext = false\n }\n else {\n next += step\n }\n return value\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.ranges\n\nimport kotlin.internal.getProgressionLastElement\n\n/**\n * A progression of values of type `Char`.\n */\npublic open class CharProgression\n internal constructor\n (\n start: Char,\n endInclusive: Char,\n step: Int\n ) : Iterable {\n init {\n if (step == 0) throw kotlin.IllegalArgumentException(\"Step must be non-zero.\")\n if (step == Int.MIN_VALUE) throw kotlin.IllegalArgumentException(\"Step must be greater than Int.MIN_VALUE to avoid overflow on negation.\")\n }\n\n /**\n * The first element in the progression.\n */\n public val first: Char = start\n\n /**\n * The last element in the progression.\n */\n public val last: Char = getProgressionLastElement(start.toInt(), endInclusive.toInt(), step).toChar()\n\n /**\n * The step of the progression.\n */\n public val step: Int = step\n\n override fun iterator(): CharIterator = CharProgressionIterator(first, last, step)\n\n /** Checks if the progression is empty. */\n public open fun isEmpty(): Boolean = if (step > 0) first > last else first < last\n\n override fun equals(other: Any?): Boolean =\n other is CharProgression && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last && step == other.step)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (31 * first.toInt() + last.toInt()) + step)\n\n override fun toString(): String = if (step > 0) \"$first..$last step $step\" else \"$first downTo $last step ${-step}\"\n\n companion object {\n /**\n * Creates CharProgression within the specified bounds of a closed range.\n\n * The progression starts with the [rangeStart] value and goes toward the [rangeEnd] value not excluding it, with the specified [step].\n * In order to go backwards the [step] must be negative.\n *\n * [step] must be greater than `Int.MIN_VALUE` and not equal to zero.\n */\n public fun fromClosedRange(rangeStart: Char, rangeEnd: Char, step: Int): CharProgression = CharProgression(rangeStart, rangeEnd, step)\n }\n}\n\n/**\n * A progression of values of type `Int`.\n */\npublic open class IntProgression\n internal constructor\n (\n start: Int,\n endInclusive: Int,\n step: Int\n ) : Iterable {\n init {\n if (step == 0) throw kotlin.IllegalArgumentException(\"Step must be non-zero.\")\n if (step == Int.MIN_VALUE) throw kotlin.IllegalArgumentException(\"Step must be greater than Int.MIN_VALUE to avoid overflow on negation.\")\n }\n\n /**\n * The first element in the progression.\n */\n public val first: Int = start\n\n /**\n * The last element in the progression.\n */\n public val last: Int = getProgressionLastElement(start.toInt(), endInclusive.toInt(), step).toInt()\n\n /**\n * The step of the progression.\n */\n public val step: Int = step\n\n override fun iterator(): IntIterator = IntProgressionIterator(first, last, step)\n\n /** Checks if the progression is empty. */\n public open fun isEmpty(): Boolean = if (step > 0) first > last else first < last\n\n override fun equals(other: Any?): Boolean =\n other is IntProgression && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last && step == other.step)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (31 * first + last) + step)\n\n override fun toString(): String = if (step > 0) \"$first..$last step $step\" else \"$first downTo $last step ${-step}\"\n\n companion object {\n /**\n * Creates IntProgression within the specified bounds of a closed range.\n\n * The progression starts with the [rangeStart] value and goes toward the [rangeEnd] value not excluding it, with the specified [step].\n * In order to go backwards the [step] must be negative.\n *\n * [step] must be greater than `Int.MIN_VALUE` and not equal to zero.\n */\n public fun fromClosedRange(rangeStart: Int, rangeEnd: Int, step: Int): IntProgression = IntProgression(rangeStart, rangeEnd, step)\n }\n}\n\n/**\n * A progression of values of type `Long`.\n */\npublic open class LongProgression\n internal constructor\n (\n start: Long,\n endInclusive: Long,\n step: Long\n ) : Iterable {\n init {\n if (step == 0L) throw kotlin.IllegalArgumentException(\"Step must be non-zero.\")\n if (step == Long.MIN_VALUE) throw kotlin.IllegalArgumentException(\"Step must be greater than Long.MIN_VALUE to avoid overflow on negation.\")\n }\n\n /**\n * The first element in the progression.\n */\n public val first: Long = start\n\n /**\n * The last element in the progression.\n */\n public val last: Long = getProgressionLastElement(start.toLong(), endInclusive.toLong(), step).toLong()\n\n /**\n * The step of the progression.\n */\n public val step: Long = step\n\n override fun iterator(): LongIterator = LongProgressionIterator(first, last, step)\n\n /** Checks if the progression is empty. */\n public open fun isEmpty(): Boolean = if (step > 0) first > last else first < last\n\n override fun equals(other: Any?): Boolean =\n other is LongProgression && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last && step == other.step)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (31 * (first xor (first ushr 32)) + (last xor (last ushr 32))) + (step xor (step ushr 32))).toInt()\n\n override fun toString(): String = if (step > 0) \"$first..$last step $step\" else \"$first downTo $last step ${-step}\"\n\n companion object {\n /**\n * Creates LongProgression within the specified bounds of a closed range.\n\n * The progression starts with the [rangeStart] value and goes toward the [rangeEnd] value not excluding it, with the specified [step].\n * In order to go backwards the [step] must be negative.\n *\n * [step] must be greater than `Long.MIN_VALUE` and not equal to zero.\n */\n public fun fromClosedRange(rangeStart: Long, rangeEnd: Long, step: Long): LongProgression = LongProgression(rangeStart, rangeEnd, step)\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.ranges\n\n/**\n * Represents a range of values (for example, numbers or characters).\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/ranges.html) for more information.\n */\npublic interface ClosedRange> {\n /**\n * The minimum value in the range.\n */\n public val start: T\n\n /**\n * The maximum value in the range (inclusive).\n */\n public val endInclusive: T\n\n /**\n * Checks whether the specified [value] belongs to the range.\n */\n public operator fun contains(value: T): Boolean = value >= start && value <= endInclusive\n\n /**\n * Checks whether the range is empty.\n */\n public fun isEmpty(): Boolean = start > endInclusive\n}\n","/*\n * Copyright 2010-2015 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin\n\n/**\n * The type with only one value: the `Unit` object. This type corresponds to the `void` type in Java.\n */\npublic object Unit {\n override fun toString() = \"kotlin.Unit\"\n}\n","/*\n * Copyright 2010-2015 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin.annotation\n\nimport kotlin.annotation.AnnotationTarget.*\n\n/**\n * Contains the list of code elements which are the possible annotation targets\n */\npublic enum class AnnotationTarget {\n /** Class, interface or object, annotation class is also included */\n CLASS,\n /** Annotation class only */\n ANNOTATION_CLASS,\n /** Generic type parameter (unsupported yet) */\n TYPE_PARAMETER,\n /** Property */\n PROPERTY,\n /** Field, including property's backing field */\n FIELD,\n /** Local variable */\n LOCAL_VARIABLE,\n /** Value parameter of a function or a constructor */\n VALUE_PARAMETER,\n /** Constructor only (primary or secondary) */\n CONSTRUCTOR,\n /** Function (constructors are not included) */\n FUNCTION,\n /** Property getter only */\n PROPERTY_GETTER,\n /** Property setter only */\n PROPERTY_SETTER,\n /** Type usage */\n TYPE,\n /** Any expression */\n EXPRESSION,\n /** File */\n FILE,\n /** Type alias */\n @SinceKotlin(\"1.1\")\n TYPEALIAS\n}\n\n/**\n * Contains the list of possible annotation's retentions.\n *\n * Determines how an annotation is stored in binary output.\n */\npublic enum class AnnotationRetention {\n /** Annotation isn't stored in binary output */\n SOURCE,\n /** Annotation is stored in binary output, but invisible for reflection */\n BINARY,\n /** Annotation is stored in binary output and visible for reflection (default retention) */\n RUNTIME\n}\n\n/**\n * This meta-annotation indicates the kinds of code elements which are possible targets of an annotation.\n *\n * If the target meta-annotation is not present on an annotation declaration, the annotation is applicable to the following elements:\n * [CLASS], [PROPERTY], [FIELD], [LOCAL_VARIABLE], [VALUE_PARAMETER], [CONSTRUCTOR], [FUNCTION], [PROPERTY_GETTER], [PROPERTY_SETTER].\n *\n * @property allowedTargets list of allowed annotation targets\n */\n@Target(AnnotationTarget.ANNOTATION_CLASS)\n@MustBeDocumented\npublic annotation class Target(vararg val allowedTargets: AnnotationTarget)\n\n/**\n * This meta-annotation determines whether an annotation is stored in binary output and visible for reflection. By default, both are true.\n *\n * @property value necessary annotation retention (RUNTIME, BINARY or SOURCE)\n */\n@Target(AnnotationTarget.ANNOTATION_CLASS)\npublic annotation class Retention(val value: AnnotationRetention = AnnotationRetention.RUNTIME)\n\n/**\n * This meta-annotation determines that an annotation is applicable twice or more on a single code element\n */\n@Target(AnnotationTarget.ANNOTATION_CLASS)\npublic annotation class Repeatable\n\n/**\n * This meta-annotation determines that an annotation is a part of public API and therefore should be included in the generated\n * documentation for the element to which the annotation is applied.\n */\n@Target(AnnotationTarget.ANNOTATION_CLASS)\npublic annotation class MustBeDocumented\n","/*\n * Copyright 2010-2016 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin.internal\n\n/**\n * Specifies that the corresponding type parameter is not used for unsafe operations such as casts or 'is' checks\n * That means it's completely safe to use generic types as argument for such parameter.\n */\n@Target(AnnotationTarget.TYPE_PARAMETER)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class PureReifiable\n\n/**\n * Specifies that the corresponding built-in method exists depending on platform.\n * Current implementation for JVM looks whether method with same JVM descriptor exists in the module JDK.\n * For example MutableMap.remove(K, V) available only if corresponding\n * method 'java/util/Map.remove(Ljava/lang/Object;Ljava/lang/Object;)Z' is defined in JDK (i.e. for major versions >= 8)\n */\n@Target(AnnotationTarget.FUNCTION)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class PlatformDependent\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.internal\n\n// a mod b (in arithmetical sense)\nprivate fun mod(a: Int, b: Int): Int {\n val mod = a % b\n return if (mod >= 0) mod else mod + b\n}\n\nprivate fun mod(a: Long, b: Long): Long {\n val mod = a % b\n return if (mod >= 0) mod else mod + b\n}\n\n// (a - b) mod c\nprivate fun differenceModulo(a: Int, b: Int, c: Int): Int {\n return mod(mod(a, c) - mod(b, c), c)\n}\n\nprivate fun differenceModulo(a: Long, b: Long, c: Long): Long {\n return mod(mod(a, c) - mod(b, c), c)\n}\n\n/**\n * Calculates the final element of a bounded arithmetic progression, i.e. the last element of the progression which is in the range\n * from [start] to [end] in case of a positive [step], or from [end] to [start] in case of a negative\n * [step].\n *\n * No validation on passed parameters is performed. The given parameters should satisfy the condition:\n *\n * - either `step > 0` and `start <= end`,\n * - or `step < 0` and `start >= end`.\n *\n * @param start first element of the progression\n * @param end ending bound for the progression\n * @param step increment, or difference of successive elements in the progression\n * @return the final element of the progression\n * @suppress\n */\n@PublishedApi\ninternal fun getProgressionLastElement(start: Int, end: Int, step: Int): Int = when {\n step > 0 -> if (start >= end) end else end - differenceModulo(end, start, step)\n step < 0 -> if (start <= end) end else end + differenceModulo(start, end, -step)\n else -> throw kotlin.IllegalArgumentException(\"Step is zero.\")\n}\n\n/**\n * Calculates the final element of a bounded arithmetic progression, i.e. the last element of the progression which is in the range\n * from [start] to [end] in case of a positive [step], or from [end] to [start] in case of a negative\n * [step].\n *\n * No validation on passed parameters is performed. The given parameters should satisfy the condition:\n *\n * - either `step > 0` and `start <= end`,\n * - or `step < 0` and `start >= end`.\n *\n * @param start first element of the progression\n * @param end ending bound for the progression\n * @param step increment, or difference of successive elements in the progression\n * @return the final element of the progression\n * @suppress\n */\n@PublishedApi\ninternal fun getProgressionLastElement(start: Long, end: Long, step: Long): Long = when {\n step > 0 -> if (start >= end) end else end - differenceModulo(end, start, step)\n step < 0 -> if (start <= end) end else end + differenceModulo(start, end, -step)\n else -> throw kotlin.IllegalArgumentException(\"Step is zero.\")\n}\n","/*\n * Copyright 2010-2015 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin.reflect\n\n/**\n * Represents a parameter passed to a function or a property getter/setter,\n * including `this` and extension receiver parameters.\n */\npublic interface KParameter : KAnnotatedElement {\n /**\n * 0-based index of this parameter in the parameter list of its containing callable.\n */\n public val index: Int\n\n /**\n * Name of this parameter as it was declared in the source code,\n * or `null` if the parameter has no name or its name is not available at runtime.\n * Examples of nameless parameters include `this` instance for member functions,\n * extension receiver for extension functions or properties, parameters of Java methods\n * compiled without the debug information, and others.\n */\n public val name: String?\n\n /**\n * Type of this parameter. For a `vararg` parameter, this is the type of the corresponding array,\n * not the individual element.\n */\n public val type: KType\n\n /**\n * Kind of this parameter.\n */\n public val kind: Kind\n\n /**\n * Kind represents a particular position of the parameter declaration in the source code,\n * such as an instance, an extension receiver parameter or a value parameter.\n */\n public enum class Kind {\n /** Instance required to make a call to the member, or an outer class instance for an inner class constructor. */\n INSTANCE,\n\n /** Extension receiver of an extension function or property. */\n EXTENSION_RECEIVER,\n\n /** Ordinary named value parameter. */\n VALUE,\n }\n\n /**\n * `true` if this parameter is optional and can be omitted when making a call via [KCallable.callBy], or `false` otherwise.\n *\n * A parameter is optional in any of the two cases:\n * 1. The default value is provided at the declaration of this parameter.\n * 2. The parameter is declared in a member function and one of the corresponding parameters in the super functions is optional.\n */\n public val isOptional: Boolean\n\n /**\n * `true` if this parameter is `vararg`.\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/functions.html#variable-number-of-arguments-varargs)\n * for more information.\n */\n @SinceKotlin(\"1.1\")\n public val isVararg: Boolean\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.reflect\n\n/**\n * Represents a type. Type is usually either a class with optional type arguments,\n * or a type parameter of some declaration, plus nullability.\n */\npublic interface KType : KAnnotatedElement {\n /**\n * The declaration of the classifier used in this type.\n * For example, in the type `List` the classifier would be the [KClass] instance for [List].\n *\n * Returns `null` if this type is not denotable in Kotlin, for example if it is an intersection type.\n */\n @SinceKotlin(\"1.1\")\n public val classifier: KClassifier?\n\n /**\n * Type arguments passed for the parameters of the classifier in this type.\n * For example, in the type `Array` the only type argument is `out Number`.\n *\n * In case this type is based on an inner class, the returned list contains the type arguments provided for the innermost class first,\n * then its outer class, and so on.\n * For example, in the type `Outer.Inner` the returned list is `[C, D, A, B]`.\n */\n @SinceKotlin(\"1.1\")\n public val arguments: List\n\n /**\n * `true` if this type was marked nullable in the source code.\n *\n * For Kotlin types, it means that `null` value is allowed to be represented by this type.\n * In practice it means that the type was declared with a question mark at the end.\n * For non-Kotlin types, it means the type or the symbol which was declared with this type\n * is annotated with a runtime-retained nullability annotation such as [javax.annotation.Nullable].\n *\n * Note that even if [isMarkedNullable] is false, values of the type can still be `null`.\n * This may happen if it is a type of the type parameter with a nullable upper bound:\n *\n * ```\n * fun foo(t: T) {\n * // isMarkedNullable == false for t's type, but t can be null here when T = \"Any?\"\n * }\n * ```\n */\n public val isMarkedNullable: Boolean\n}\n\n/**\n * Represents a type projection. Type projection is usually the argument to another type in a type usage.\n * For example, in the type `Array`, `out Number` is the covariant projection of the type represented by the class `Number`.\n *\n * Type projection is either the star projection, or an entity consisting of a specific type plus optional variance.\n *\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/generics.html#type-projections)\n * for more information.\n */\n@SinceKotlin(\"1.1\")\npublic data class KTypeProjection constructor(\n /**\n * The use-site variance specified in the projection, or `null` if this is a star projection.\n */\n public val variance: KVariance?,\n /**\n * The type specified in the projection, or `null` if this is a star projection.\n */\n public val type: KType?\n) {\n public companion object {\n /**\n * Star projection, denoted by the `*` character.\n * For example, in the type `KClass<*>`, `*` is the star projection.\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/generics.html#star-projections)\n * for more information.\n */\n public val STAR: KTypeProjection = KTypeProjection(null, null)\n\n /**\n * Creates an invariant projection of a given type. Invariant projection is just the type itself,\n * without any use-site variance modifiers applied to it.\n * For example, in the type `Set`, `String` is an invariant projection of the type represented by the class `String`.\n */\n public fun invariant(type: KType): KTypeProjection =\n KTypeProjection(KVariance.INVARIANT, type)\n\n /**\n * Creates a contravariant projection of a given type, denoted by the `in` modifier applied to a type.\n * For example, in the type `MutableList`, `in Number` is a contravariant projection of the type of class `Number`.\n */\n public fun contravariant(type: KType): KTypeProjection =\n KTypeProjection(KVariance.IN, type)\n\n /**\n * Creates a covariant projection of a given type, denoted by the `out` modifier applied to a type.\n * For example, in the type `Array`, `out Number` is a covariant projection of the type of class `Number`.\n */\n public fun covariant(type: KType): KTypeProjection =\n KTypeProjection(KVariance.OUT, type)\n }\n}\n","/*\n * Copyright 2010-2016 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin.reflect\n\n/**\n * Represents variance applied to a type parameter on the declaration site (*declaration-site variance*),\n * or to a type in a projection (*use-site variance*).\n *\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/generics.html#variance)\n * for more information.\n *\n * @see [KTypeParameter.variance]\n * @see [KTypeProjection]\n */\n@SinceKotlin(\"1.1\")\nenum class KVariance {\n /**\n * The affected type parameter or type is *invariant*, which means it has no variance applied to it.\n */\n INVARIANT,\n\n /**\n * The affected type parameter or type is *contravariant*. Denoted by the `in` modifier in the source code.\n */\n IN,\n\n /**\n * The affected type parameter or type is *covariant*. Denoted by the `out` modifier in the source code.\n */\n OUT,\n}\n","/*\n * Copyright 2010-2016 JetBrains s.r.o.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\npackage kotlin.reflect\n\n/**\n * Visibility is an aspect of a Kotlin declaration regulating where that declaration is accessible in the source code.\n * Visibility can be changed with one of the following modifiers: `public`, `protected`, `internal`, `private`.\n *\n * Note that some Java visibilities such as package-private and protected (which also gives access to items from the same package)\n * cannot be represented in Kotlin, so there's no [KVisibility] value corresponding to them.\n *\n * See the [Kotlin language documentation](https://kotlinlang.org/docs/reference/visibility-modifiers.html)\n * for more information.\n */\n@SinceKotlin(\"1.1\")\nenum class KVisibility {\n /**\n * Visibility of declarations marked with the `public` modifier, or with no modifier at all.\n */\n PUBLIC,\n\n /**\n * Visibility of declarations marked with the `protected` modifier.\n */\n PROTECTED,\n\n /**\n * Visibility of declarations marked with the `internal` modifier.\n */\n INTERNAL,\n\n /**\n * Visibility of declarations marked with the `private` modifier.\n */\n PRIVATE,\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@JsName(\"arrayIterator\")\ninternal fun arrayIterator(array: dynamic, type: String?) = when (type) {\n null -> {\n val arr: Array = array\n object : Iterator {\n var index = 0\n override fun hasNext() = index < arr.size\n override fun next() = if (index < arr.size) arr[index++] else throw NoSuchElementException(\"$index\")\n }\n }\n \"BooleanArray\" -> booleanArrayIterator(array)\n \"ByteArray\" -> byteArrayIterator(array)\n \"ShortArray\" -> shortArrayIterator(array)\n \"CharArray\" -> charArrayIterator(array)\n \"IntArray\" -> intArrayIterator(array)\n \"LongArray\" -> longArrayIterator(array)\n \"FloatArray\" -> floatArrayIterator(array)\n \"DoubleArray\" -> doubleArrayIterator(array)\n else -> throw IllegalStateException(\"Unsupported type argument for arrayIterator: $type\")\n}\n\n@JsName(\"booleanArrayIterator\")\ninternal fun booleanArrayIterator(array: BooleanArray) = object : BooleanIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextBoolean() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"byteArrayIterator\")\ninternal fun byteArrayIterator(array: ByteArray) = object : ByteIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextByte() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"shortArrayIterator\")\ninternal fun shortArrayIterator(array: ShortArray) = object : ShortIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextShort() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"charArrayIterator\")\ninternal fun charArrayIterator(array: CharArray) = object : CharIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextChar() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"intArrayIterator\")\ninternal fun intArrayIterator(array: IntArray) = object : IntIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextInt() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"floatArrayIterator\")\ninternal fun floatArrayIterator(array: FloatArray) = object : FloatIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextFloat() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"doubleArrayIterator\")\ninternal fun doubleArrayIterator(array: DoubleArray) = object : DoubleIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextDouble() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"longArrayIterator\")\ninternal fun longArrayIterator(array: LongArray) = object : LongIterator() {\n var index = 0\n override fun hasNext() = index < array.size\n override fun nextLong() = if (index < array.size) array[index++] else throw NoSuchElementException(\"$index\")\n}\n\n@JsName(\"PropertyMetadata\")\ninternal class PropertyMetadata(@JsName(\"callableName\") val name: String)\n\n@JsName(\"noWhenBranchMatched\")\ninternal fun noWhenBranchMatched(): Nothing = throw NoWhenBranchMatchedException()\n\n@JsName(\"subSequence\")\ninternal fun subSequence(c: CharSequence, startIndex: Int, endIndex: Int): CharSequence {\n if (c is String) {\n return c.substring(startIndex, endIndex)\n } else {\n return c.asDynamic().`subSequence_vux9f0$`(startIndex, endIndex)\n }\n}\n\n@JsName(\"captureStack\")\ninternal fun captureStack(baseClass: JsClass, instance: Throwable) {\n if (js(\"Error\").captureStackTrace) {\n js(\"Error\").captureStackTrace(instance, instance::class.js);\n } else {\n instance.asDynamic().stack = js(\"new Error()\").stack;\n }\n}\n\n@JsName(\"newThrowable\")\ninternal fun newThrowable(message: String?, cause: Throwable?): Throwable {\n val throwable = js(\"new Error()\")\n throwable.message = if (jsTypeOf(message) == \"undefined\") {\n if (cause != null) cause.toString() else null\n } else {\n message\n }\n throwable.cause = cause\n throwable.name = \"Throwable\"\n return throwable\n}\n\n@JsName(\"BoxedChar\")\ninternal class BoxedChar(val c: Int) : Comparable {\n override fun equals(other: Any?): Boolean {\n return other is BoxedChar && c == other.c\n }\n\n override fun hashCode(): Int {\n return c\n }\n\n override fun toString(): String {\n return js(\"this.c\").unsafeCast().toString()\n }\n\n override fun compareTo(other: Int): Int {\n return js(\"this.c - other\").unsafeCast()\n }\n\n @JsName(\"valueOf\")\n public fun valueOf(): Int {\n return c\n }\n}\n\n@kotlin.internal.InlineOnly\ninternal inline fun concat(args: Array): T {\n val typed = js(\"Array\")(args.size)\n for (i in args.indices) {\n val arr = args[i]\n if (arr !is Array<*>) {\n typed[i] = js(\"[]\").slice.call(arr)\n } else {\n typed[i] = arr\n }\n }\n return js(\"[]\").concat.apply(js(\"[]\"), typed);\n}\n\n/** Concat regular Array's and TypedArray's into an Array.\n */\n@PublishedApi\n@JsName(\"arrayConcat\")\n@Suppress(\"UNUSED_PARAMETER\")\ninternal fun arrayConcat(a: T, b: T): T {\n return concat(js(\"arguments\"))\n}\n\n/** Concat primitive arrays. Main use: prepare vararg arguments.\n * For compatibility with 1.1.0 the arguments may be a mixture of Array's and TypedArray's.\n *\n * If the first argument is TypedArray (Byte-, Short-, Char-, Int-, Float-, and DoubleArray) returns a TypedArray, otherwise an Array.\n * If the first argument has the $type$ property (Boolean-, Char-, and LongArray) copy its value to result.$type$.\n * If the first argument is a regular Array without the $type$ property default to arrayConcat.\n */\n@PublishedApi\n@JsName(\"primitiveArrayConcat\")\n@Suppress(\"UNUSED_PARAMETER\")\ninternal fun primitiveArrayConcat(a: T, b: T): T {\n val args: Array = js(\"arguments\")\n if (a is Array<*> && a.asDynamic().`$type$` === undefined) {\n return concat(args)\n } else {\n var size = 0\n for (i in args.indices) {\n size += args[i].asDynamic().length as Int\n }\n val result = js(\"new a.constructor(size)\")\n kotlin.copyArrayType(a, result)\n size = 0\n for (i in args.indices) {\n val arr = args[i].asDynamic()\n for (j in 0 until arr.length) {\n result[size++] = arr[j]\n }\n }\n return result\n }\n}\n\n@JsName(\"booleanArrayOf\")\ninternal fun booleanArrayOf() = withType(\"BooleanArray\", js(\"[].slice.call(arguments)\"))\n\n@JsName(\"charArrayOf\") // The arguments have to be slice'd here because of Rhino (see KT-16974)\ninternal fun charArrayOf() = withType(\"CharArray\", js(\"new Uint16Array([].slice.call(arguments))\"))\n\n@JsName(\"longArrayOf\")\ninternal fun longArrayOf() = withType(\"LongArray\", js(\"[].slice.call(arguments)\"))\n\n@JsName(\"withType\")\n@kotlin.internal.InlineOnly\ninternal inline fun withType(type: String, array: dynamic): dynamic {\n array.`$type$` = type\n return array\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\n/**\n * Function corresponding to JavaScript's `typeof` operator\n */\n@kotlin.internal.InlineOnly\n@Suppress(\"UNUSED_PARAMETER\")\npublic inline fun jsTypeOf(a: Any?): String = js(\"typeof a\")\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:Suppress(\"UNUSED_PARAMETER\", \"NOTHING_TO_INLINE\")\n\npackage kotlin\n\n/**\n * Returns an empty array of the specified type [T].\n */\npublic inline fun emptyArray(): Array = js(\"[]\")\n\n@library\npublic fun arrayOf(vararg elements: T): Array = definedExternally\n\n@library\npublic fun doubleArrayOf(vararg elements: Double): DoubleArray = definedExternally\n\n@library\npublic fun floatArrayOf(vararg elements: Float): FloatArray = definedExternally\n\n@library\npublic fun longArrayOf(vararg elements: Long): LongArray = definedExternally\n\n@library\npublic fun intArrayOf(vararg elements: Int): IntArray = definedExternally\n\n@library\npublic fun charArrayOf(vararg elements: Char): CharArray = definedExternally\n\n@library\npublic fun shortArrayOf(vararg elements: Short): ShortArray = definedExternally\n\n@library\npublic fun byteArrayOf(vararg elements: Byte): ByteArray = definedExternally\n\n@library\npublic fun booleanArrayOf(vararg elements: Boolean): BooleanArray = definedExternally\n\n/**\n * Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].\n */\npublic actual fun lazy(initializer: () -> T): Lazy = UnsafeLazyImpl(initializer)\n\n/**\n * Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].\n *\n * The [mode] parameter is ignored. */\npublic actual fun lazy(mode: LazyThreadSafetyMode, initializer: () -> T): Lazy = UnsafeLazyImpl(initializer)\n\n/**\n * Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].\n *\n * The [lock] parameter is ignored.\n */\npublic actual fun lazy(lock: Any?, initializer: () -> T): Lazy = UnsafeLazyImpl(initializer)\n\n\ninternal fun fillFrom(src: dynamic, dst: dynamic): dynamic {\n val srcLen: Int = src.length\n val dstLen: Int = dst.length\n var index: Int = 0\n while (index < srcLen && index < dstLen) dst[index] = src[index++]\n return dst\n}\n\n\ninternal fun arrayCopyResize(source: dynamic, newSize: Int, defaultValue: Any?): dynamic {\n val result = source.slice(0, newSize)\n copyArrayType(source, result)\n var index: Int = source.length\n if (newSize > index) {\n result.length = newSize\n while (index < newSize) result[index++] = defaultValue\n }\n return result\n}\n\ninternal fun arrayPlusCollection(array: dynamic, collection: Collection): dynamic {\n val result = array.slice()\n result.length += collection.size\n copyArrayType(array, result)\n var index: Int = array.length\n for (element in collection) result[index++] = element\n return result\n}\n\ninternal fun fillFromCollection(dst: dynamic, startIndex: Int, collection: Collection): dynamic {\n var index = startIndex\n for (element in collection) dst[index++] = element\n return dst\n}\n\ninternal inline fun copyArrayType(from: dynamic, to: dynamic) {\n if (from.`$type$` !== undefined) {\n to.`$type$` = from.`$type$`\n }\n}\n\ninternal inline fun jsIsType(obj: dynamic, jsClass: dynamic) = js(\"Kotlin\").isType(obj, jsClass)","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines\n\nimport kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED\n\n@SinceKotlin(\"1.3\")\n@JsName(\"CoroutineImpl\")\ninternal abstract class CoroutineImpl(private val resultContinuation: Continuation) : Continuation {\n protected var state = 0\n protected var exceptionState = 0\n protected var result: Any? = null\n protected var exception: Throwable? = null\n protected var finallyPath: Array? = null\n\n public override val context: CoroutineContext = resultContinuation.context\n\n private var intercepted_: Continuation? = null\n\n public fun intercepted(): Continuation =\n intercepted_\n ?: (context[ContinuationInterceptor]?.interceptContinuation(this) ?: this)\n .also { intercepted_ = it }\n\n override fun resumeWith(result: Result) {\n var current = this\n var currentResult: Any? = result.getOrNull()\n var currentException: Throwable? = result.exceptionOrNull()\n\n // This loop unrolls recursion in current.resumeWith(param) to make saner and shorter stack traces on resume\n while (true) {\n with(current) {\n val completion = resultContinuation\n\n // Set result and exception fields in the current continuation\n if (currentException == null) {\n this.result = currentResult\n } else {\n state = exceptionState\n exception = currentException\n }\n\n try {\n val outcome = doResume()\n if (outcome === COROUTINE_SUSPENDED) return\n currentResult = outcome\n currentException = null\n } catch (exception: dynamic) { // Catch all exceptions\n currentResult = null\n currentException = exception.unsafeCast()\n }\n\n releaseIntercepted() // this state machine instance is terminating\n\n if (completion is CoroutineImpl) {\n // unrolling recursion via loop\n current = completion\n } else {\n // top-level completion reached -- invoke and return\n currentException?.let {\n completion.resumeWithException(it)\n } ?: completion.resume(currentResult)\n return\n }\n }\n }\n }\n\n private fun releaseIntercepted() {\n val intercepted = intercepted_\n if (intercepted != null && intercepted !== this) {\n context[ContinuationInterceptor]!!.releaseInterceptedContinuation(intercepted)\n }\n this.intercepted_ = CompletedContinuation // just in case\n }\n\n protected abstract fun doResume(): Any?\n}\n\ninternal object CompletedContinuation : Continuation {\n override val context: CoroutineContext\n get() = error(\"This continuation is already complete\")\n\n override fun resumeWith(result: Result) {\n error(\"This continuation is already complete\")\n }\n\n override fun toString(): String = \"This continuation is already complete\"\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:Suppress(\"UNCHECKED_CAST\", \"RedundantVisibilityModifier\")\n\npackage kotlin\n\nimport kotlin.contracts.*\nimport kotlin.internal.InlineOnly\nimport kotlin.jvm.JvmField\n\n/**\n * A discriminated union that encapsulates successful outcome with a value of type [T]\n * or a failure with an arbitrary [Throwable] exception.\n */\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\npublic inline class Result @PublishedApi internal constructor(\n @PublishedApi\n internal val value: Any?\n) : Serializable {\n // discovery\n\n /**\n * Returns `true` if this instance represents successful outcome.\n * In this case [isFailure] returns `false`.\n */\n public val isSuccess: Boolean get() = value !is Failure\n\n /**\n * Returns `true` if this instance represents failed outcome.\n * In this case [isSuccess] returns `false`.\n */\n public val isFailure: Boolean get() = value is Failure\n\n // value & exception retrieval\n\n /**\n * Returns the encapsulated value if this instance represents [success][Result.isSuccess] or `null`\n * if it is [failure][Result.isFailure].\n *\n * This function is shorthand for `getOrElse { null }` (see [getOrElse]) or\n * `fold(onSuccess = { it }, onFailure = { null })` (see [fold]).\n */\n @InlineOnly\n public inline fun getOrNull(): T? =\n when {\n isFailure -> null\n else -> value as T\n }\n\n /**\n * Returns the encapsulated exception if this instance represents [failure][isFailure] or `null`\n * if it is [success][isSuccess].\n *\n * This function is shorthand for `fold(onSuccess = { null }, onFailure = { it })` (see [fold]).\n */\n public fun exceptionOrNull(): Throwable? =\n when (value) {\n is Failure -> value.exception\n else -> null\n }\n\n /**\n * Returns a string `Success(v)` if this instance represents [success][Result.isSuccess]\n * where `v` is a string representation of the value or a string `Failure(x)` if\n * it is [failure][isFailure] where `x` is a string representation of the exception.\n */\n public override fun toString(): String =\n when (value) {\n is Failure -> value.toString() // \"Failure($exception)\"\n else -> \"Success($value)\"\n }\n\n // companion with constructors\n\n /**\n * Companion object for [Result] class that contains its constructor functions\n * [success] and [failure].\n */\n public companion object {\n /**\n * Returns an instance that encapsulates the given [value] as successful value.\n */\n @InlineOnly\n public inline fun success(value: T): Result =\n Result(value)\n\n /**\n * Returns an instance that encapsulates the given [exception] as failure.\n */\n @InlineOnly\n public inline fun failure(exception: Throwable): Result =\n Result(createFailure(exception))\n }\n\n internal class Failure(\n @JvmField\n val exception: Throwable\n ) : Serializable {\n override fun equals(other: Any?): Boolean = other is Failure && exception == other.exception\n override fun hashCode(): Int = exception.hashCode()\n override fun toString(): String = \"Failure($exception)\"\n }\n}\n\n/**\n * Creates an instance of internal marker [Result.Failure] class to\n * make sure that this class is not exposed in ABI.\n */\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun createFailure(exception: Throwable): Any =\n Result.Failure(exception)\n\n/**\n * Throws exception if the result is failure. This internal function minimizes\n * inlined bytecode for [getOrThrow] and makes sure that in the future we can\n * add some exception-augmenting logic here (if needed).\n */\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun Result<*>.throwOnFailure() {\n if (value is Result.Failure) throw value.exception\n}\n\n/**\n * Calls the specified function [block] and returns its encapsulated result if invocation was successful,\n * catching and encapsulating any thrown exception as a failure.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun runCatching(block: () -> R): Result {\n return try {\n Result.success(block())\n } catch (e: Throwable) {\n Result.failure(e)\n }\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns its encapsulated result\n * if invocation was successful, catching and encapsulating any thrown exception as a failure.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun T.runCatching(block: T.() -> R): Result {\n return try {\n Result.success(block())\n } catch (e: Throwable) {\n Result.failure(e)\n }\n}\n\n// -- extensions ---\n\n/**\n * Returns the encapsulated value if this instance represents [success][Result.isSuccess] or throws the encapsulated exception\n * if it is [failure][Result.isFailure].\n *\n * This function is shorthand for `getOrElse { throw it }` (see [getOrElse]).\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.getOrThrow(): T {\n throwOnFailure()\n return value as T\n}\n\n/**\n * Returns the encapsulated value if this instance represents [success][Result.isSuccess] or the\n * result of [onFailure] function for encapsulated exception if it is [failure][Result.isFailure].\n *\n * Note, that an exception thrown by [onFailure] function is rethrown by this function.\n *\n * This function is shorthand for `fold(onSuccess = { it }, onFailure = onFailure)` (see [fold]).\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.getOrElse(onFailure: (exception: Throwable) -> R): R {\n contract {\n callsInPlace(onFailure, InvocationKind.AT_MOST_ONCE)\n }\n return when (val exception = exceptionOrNull()) {\n null -> value as T\n else -> onFailure(exception)\n }\n}\n\n/**\n * Returns the encapsulated value if this instance represents [success][Result.isSuccess] or the\n * [defaultValue] if it is [failure][Result.isFailure].\n *\n * This function is shorthand for `getOrElse { defaultValue }` (see [getOrElse]).\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.getOrDefault(defaultValue: R): R {\n if (isFailure) return defaultValue\n return value as T\n}\n\n/**\n * Returns the the result of [onSuccess] for encapsulated value if this instance represents [success][Result.isSuccess]\n * or the result of [onFailure] function for encapsulated exception if it is [failure][Result.isFailure].\n *\n * Note, that an exception thrown by [onSuccess] or by [onFailure] function is rethrown by this function.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.fold(\n onSuccess: (value: T) -> R,\n onFailure: (exception: Throwable) -> R\n): R {\n contract {\n callsInPlace(onSuccess, InvocationKind.AT_MOST_ONCE)\n callsInPlace(onFailure, InvocationKind.AT_MOST_ONCE)\n }\n return when (val exception = exceptionOrNull()) {\n null -> onSuccess(value as T)\n else -> onFailure(exception)\n }\n}\n\n// transformation\n\n/**\n * Returns the encapsulated result of the given [transform] function applied to encapsulated value\n * if this instance represents [success][Result.isSuccess] or the\n * original encapsulated exception if it is [failure][Result.isFailure].\n *\n * Note, that an exception thrown by [transform] function is rethrown by this function.\n * See [mapCatching] for an alternative that encapsulates exceptions.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.map(transform: (value: T) -> R): Result {\n contract {\n callsInPlace(transform, InvocationKind.AT_MOST_ONCE)\n }\n return when {\n isSuccess -> Result.success(transform(value as T))\n else -> Result(value)\n }\n}\n\n/**\n * Returns the encapsulated result of the given [transform] function applied to encapsulated value\n * if this instance represents [success][Result.isSuccess] or the\n * original encapsulated exception if it is [failure][Result.isFailure].\n *\n * Any exception thrown by [transform] function is caught, encapsulated as a failure and returned by this function.\n * See [map] for an alternative that rethrows exceptions.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.mapCatching(transform: (value: T) -> R): Result {\n return when {\n isSuccess -> runCatching { transform(value as T) }\n else -> Result(value)\n }\n}\n\n/**\n * Returns the encapsulated result of the given [transform] function applied to encapsulated exception\n * if this instance represents [failure][Result.isFailure] or the\n * original encapsulated value if it is [success][Result.isSuccess].\n *\n * Note, that an exception thrown by [transform] function is rethrown by this function.\n * See [recoverCatching] for an alternative that encapsulates exceptions.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.recover(transform: (exception: Throwable) -> R): Result {\n contract {\n callsInPlace(transform, InvocationKind.AT_MOST_ONCE)\n }\n return when (val exception = exceptionOrNull()) {\n null -> this\n else -> Result.success(transform(exception))\n }\n}\n\n/**\n * Returns the encapsulated result of the given [transform] function applied to encapsulated exception\n * if this instance represents [failure][Result.isFailure] or the\n * original encapsulated value if it is [success][Result.isSuccess].\n *\n * Any exception thrown by [transform] function is caught, encapsulated as a failure and returned by this function.\n * See [recover] for an alternative that rethrows exceptions.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.recoverCatching(transform: (exception: Throwable) -> R): Result {\n val value = value // workaround for inline classes BE bug\n return when (val exception = exceptionOrNull()) {\n null -> this\n else -> runCatching { transform(exception) }\n }\n}\n\n// \"peek\" onto value/exception and pipe\n\n/**\n * Performs the given [action] on encapsulated exception if this instance represents [failure][Result.isFailure].\n * Returns the original `Result` unchanged.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.onFailure(action: (exception: Throwable) -> Unit): Result {\n contract {\n callsInPlace(action, InvocationKind.AT_MOST_ONCE)\n }\n exceptionOrNull()?.let { action(it) }\n return this\n}\n\n/**\n * Performs the given [action] on encapsulated value if this instance represents [success][Result.isSuccess].\n * Returns the original `Result` unchanged.\n */\n@InlineOnly\n@SinceKotlin(\"1.3\")\npublic inline fun Result.onSuccess(action: (value: T) -> Unit): Result {\n contract {\n callsInPlace(action, InvocationKind.AT_MOST_ONCE)\n }\n if (isSuccess) action(value as T)\n return this\n}\n\n// -------------------\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines\n\nimport kotlin.coroutines.intrinsics.*\nimport kotlin.internal.InlineOnly\n\n/**\n * Interface representing a continuation after a suspension point that returns a value of type `T`.\n */\n@SinceKotlin(\"1.3\")\npublic interface Continuation {\n /**\n * The context of the coroutine that corresponds to this continuation.\n */\n public val context: CoroutineContext\n\n /**\n * Resumes the execution of the corresponding coroutine passing a successful or failed [result] as the\n * return value of the last suspension point.\n */\n public fun resumeWith(result: Result)\n}\n\n/**\n * Classes and interfaces marked with this annotation are restricted when used as receivers for extension\n * `suspend` functions. These `suspend` extensions can only invoke other member or extension `suspend` functions on this particular\n * receiver and are restricted from calling arbitrary suspension functions.\n */\n@SinceKotlin(\"1.3\")\n@Target(AnnotationTarget.CLASS)\n@Retention(AnnotationRetention.BINARY)\npublic annotation class RestrictsSuspension\n\n/**\n * Resumes the execution of the corresponding coroutine passing [value] as the return value of the last suspension point.\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic inline fun Continuation.resume(value: T): Unit =\n resumeWith(Result.success(value))\n\n/**\n * Resumes the execution of the corresponding coroutine so that the [exception] is re-thrown right after the\n * last suspension point.\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic inline fun Continuation.resumeWithException(exception: Throwable): Unit =\n resumeWith(Result.failure(exception))\n\n\n/**\n * Creates a [Continuation] instance with the given [context] and implementation of [resumeWith] method.\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic inline fun Continuation(\n context: CoroutineContext,\n crossinline resumeWith: (Result) -> Unit\n): Continuation =\n object : Continuation {\n override val context: CoroutineContext\n get() = context\n\n override fun resumeWith(result: Result) =\n resumeWith(result)\n }\n\n/**\n * Creates a coroutine without a receiver and with result type [T].\n * This function creates a new, fresh instance of suspendable computation every time it is invoked.\n *\n * To start executing the created coroutine, invoke `resume(Unit)` on the returned [Continuation] instance.\n * The [completion] continuation is invoked when the coroutine completes with a result or an exception.\n * Subsequent invocation of any resume function on the resulting continuation will produce an [IllegalStateException].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"UNCHECKED_CAST\")\npublic fun (suspend () -> T).createCoroutine(\n completion: Continuation\n): Continuation =\n SafeContinuation(createCoroutineUnintercepted(completion).intercepted(), COROUTINE_SUSPENDED)\n\n/**\n * Creates a coroutine with receiver type [R] and result type [T].\n * This function creates a new, fresh instance of suspendable computation every time it is invoked.\n *\n * To start executing the created coroutine, invoke `resume(Unit)` on the returned [Continuation] instance.\n * The [completion] continuation is invoked when the coroutine completes with a result or an exception.\n * Subsequent invocation of any resume function on the resulting continuation will produce an [IllegalStateException].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"UNCHECKED_CAST\")\npublic fun (suspend R.() -> T).createCoroutine(\n receiver: R,\n completion: Continuation\n): Continuation =\n SafeContinuation(createCoroutineUnintercepted(receiver, completion).intercepted(), COROUTINE_SUSPENDED)\n\n/**\n * Starts a coroutine without a receiver and with result type [T].\n * This function creates and starts a new, fresh instance of suspendable computation every time it is invoked.\n * The [completion] continuation is invoked when the coroutine completes with a result or an exception.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"UNCHECKED_CAST\")\npublic fun (suspend () -> T).startCoroutine(\n completion: Continuation\n) {\n createCoroutineUnintercepted(completion).intercepted().resume(Unit)\n}\n\n/**\n * Starts a coroutine with receiver type [R] and result type [T].\n * This function creates and starts a new, fresh instance of suspendable computation every time it is invoked.\n * The [completion] continuation is invoked when the coroutine completes with a result or an exception.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"UNCHECKED_CAST\")\npublic fun (suspend R.() -> T).startCoroutine(\n receiver: R,\n completion: Continuation\n) {\n createCoroutineUnintercepted(receiver, completion).intercepted().resume(Unit)\n}\n\n/**\n * Obtains the current continuation instance inside suspend functions and suspends\n * the currently running coroutine.\n *\n * In this function both [Continuation.resume] and [Continuation.resumeWithException] can be used either synchronously in\n * the same stack-frame where the suspension function is run or asynchronously later in the same thread or\n * from a different thread of execution. Subsequent invocation of any resume function will produce an [IllegalStateException].\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic suspend inline fun suspendCoroutine(crossinline block: (Continuation) -> Unit): T =\n suspendCoroutineUninterceptedOrReturn { c: Continuation ->\n val safe = SafeContinuation(c.intercepted())\n block(safe)\n safe.getOrThrow()\n }\n\n/**\n * Returns the context of the current coroutine.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"WRONG_MODIFIER_TARGET\")\n@InlineOnly\npublic suspend inline val coroutineContext: CoroutineContext\n get() {\n throw NotImplementedError(\"Implemented as intrinsic\")\n }\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines.intrinsics\n\nimport kotlin.coroutines.*\nimport kotlin.internal.InlineOnly\n\n/**\n * Starts an unintercepted coroutine without a receiver and with result type [T] and executes it until its first suspension.\n * Returns the result of the coroutine or throws its exception if it does not suspend or [COROUTINE_SUSPENDED] if it suspends.\n * In the latter case, the [completion] continuation is invoked when the coroutine completes with a result or an exception.\n *\n * The coroutine is started directly in the invoker's thread without going through the [ContinuationInterceptor] that might\n * be present in the completion's [CoroutineContext]. It is the invoker's responsibility to ensure that a proper invocation\n * context is established.\n *\n * This function is designed to be used from inside of [suspendCoroutineUninterceptedOrReturn] to resume the execution of the suspended\n * coroutine using a reference to the suspending function.\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic actual inline fun (suspend () -> T).startCoroutineUninterceptedOrReturn(\n completion: Continuation\n): Any? = this.asDynamic()(completion, false)\n\n/**\n * Starts an unintercepted coroutine with receiver type [R] and result type [T] and executes it until its first suspension.\n * Returns the result of the coroutine or throws its exception if it does not suspend or [COROUTINE_SUSPENDED] if it suspends.\n * In the latter case, the [completion] continuation is invoked when the coroutine completes with a result or an exception.\n *\n * The coroutine is started directly in the invoker's thread without going through the [ContinuationInterceptor] that might\n * be present in the completion's [CoroutineContext]. It is the invoker's responsibility to ensure that a proper invocation\n * context is established.\n *\n * This function is designed to be used from inside of [suspendCoroutineUninterceptedOrReturn] to resume the execution of the suspended\n * coroutine using a reference to the suspending function.\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic actual inline fun (suspend R.() -> T).startCoroutineUninterceptedOrReturn(\n receiver: R,\n completion: Continuation\n): Any? = this.asDynamic()(receiver, completion, false)\n\n\n/**\n * Creates unintercepted coroutine without receiver and with result type [T].\n * This function creates a new, fresh instance of suspendable computation every time it is invoked.\n *\n * To start executing the created coroutine, invoke `resume(Unit)` on the returned [Continuation] instance.\n * The [completion] continuation is invoked when coroutine completes with result or exception.\n *\n * This function returns unintercepted continuation.\n * Invocation of `resume(Unit)` starts coroutine immediately in the invoker's call stack without going through the\n * [ContinuationInterceptor] that might be present in the completion's [CoroutineContext].\n * It is the invoker's responsibility to ensure that a proper invocation context is established.\n * Note that [completion] of this function may get invoked in an arbitrary context.\n *\n * [Continuation.intercepted] can be used to acquire the intercepted continuation.\n * Invocation of `resume(Unit)` on intercepted continuation guarantees that execution of\n * both the coroutine and [completion] happens in the invocation context established by\n * [ContinuationInterceptor].\n *\n * Repeated invocation of any resume function on the resulting continuation corrupts the\n * state machine of the coroutine and may result in arbitrary behaviour or exception.\n */\n@SinceKotlin(\"1.3\")\npublic actual fun (suspend () -> T).createCoroutineUnintercepted(\n completion: Continuation\n): Continuation =\n // Kotlin/JS suspend lambdas have an extra parameter `suspended`\n if (this.asDynamic().length == 2) {\n // When `suspended` is true the continuation is created, but not executed\n this.asDynamic()(completion, true)\n } else {\n createCoroutineFromSuspendFunction(completion) {\n this.asDynamic()(completion)\n }\n }\n\n/**\n * Creates unintercepted coroutine with receiver type [R] and result type [T].\n * This function creates a new, fresh instance of suspendable computation every time it is invoked.\n *\n * To start executing the created coroutine, invoke `resume(Unit)` on the returned [Continuation] instance.\n * The [completion] continuation is invoked when coroutine completes with result or exception.\n *\n * This function returns unintercepted continuation.\n * Invocation of `resume(Unit)` starts coroutine immediately in the invoker's call stack without going through the\n * [ContinuationInterceptor] that might be present in the completion's [CoroutineContext].\n * It is the invoker's responsibility to ensure that a proper invocation context is established.\n * Note that [completion] of this function may get invoked in an arbitrary context.\n *\n * [Continuation.intercepted] can be used to acquire the intercepted continuation.\n * Invocation of `resume(Unit)` on intercepted continuation guarantees that execution of\n * both the coroutine and [completion] happens in the invocation context established by\n * [ContinuationInterceptor].\n *\n * Repeated invocation of any resume function on the resulting continuation corrupts the\n * state machine of the coroutine and may result in arbitrary behaviour or exception.\n */\n@SinceKotlin(\"1.3\")\npublic actual fun (suspend R.() -> T).createCoroutineUnintercepted(\n receiver: R,\n completion: Continuation\n): Continuation =\n // Kotlin/JS suspend lambdas have an extra parameter `suspended`\n if (this.asDynamic().length == 3) {\n // When `suspended` is true the continuation is created, but not executed\n this.asDynamic()(receiver, completion, true)\n } else {\n createCoroutineFromSuspendFunction(completion) {\n this.asDynamic()(receiver, completion)\n }\n }\n\n/**\n * Intercepts this continuation with [ContinuationInterceptor].\n *\n * This function shall be used on the immediate result of [createCoroutineUnintercepted] or [suspendCoroutineUninterceptedOrReturn],\n * in which case it checks for [ContinuationInterceptor] in the continuation's [context][Continuation.context],\n * invokes [ContinuationInterceptor.interceptContinuation], caches and returns the result.\n *\n * If this function is invoked on other [Continuation] instances it returns `this` continuation unchanged.\n */\n@SinceKotlin(\"1.3\")\npublic actual fun Continuation.intercepted(): Continuation =\n (this as? CoroutineImpl)?.intercepted() ?: this\n\n\nprivate inline fun createCoroutineFromSuspendFunction(\n completion: Continuation,\n crossinline block: () -> Any?\n): Continuation {\n @Suppress(\"UNCHECKED_CAST\")\n return object : CoroutineImpl(completion as Continuation) {\n override fun doResume(): Any? {\n exception?.let { throw it }\n return block()\n }\n }\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license\n * that can be found in the license/LICENSE.txt file.\n */\n\n\n@file:Suppress(\"UNUSED_PARAMETER\")\n\npackage kotlin.js\n\n@kotlin.internal.InlineOnly\ninternal inline fun jsDeleteProperty(obj: Any, property: Any) {\n js(\"delete obj[property]\")\n}\n\n@kotlin.internal.InlineOnly\ninternal inline fun jsBitwiseOr(lhs: Any?, rhs: Any?): Int =\n js(\"lhs | rhs\").unsafeCast()","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.js.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Reverses elements in the list in-place.\n */\npublic actual fun MutableList.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.js.*\n\n/**\n * Returns a character at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this char sequence.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun CharSequence.elementAt(index: Int): Char {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, length: $length}\") }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.js.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun UIntArray.elementAt(index: Int): UInt {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun ULongArray.elementAt(index: Int): ULong {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun UByteArray.elementAt(index: Int): UByte {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun UShortArray.elementAt(index: Int): UShort {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun UIntArray.asList(): List {\n return object : AbstractList(), RandomAccess {\n override val size: Int get() = this@asList.size\n override fun isEmpty(): Boolean = this@asList.isEmpty()\n override fun contains(element: UInt): Boolean = this@asList.contains(element)\n override fun get(index: Int): UInt {\n AbstractList.checkElementIndex(index, size)\n return this@asList[index]\n }\n override fun indexOf(element: UInt): Int {\n if ((element as Any?) !is UInt) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: UInt): Int {\n if ((element as Any?) !is UInt) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun ULongArray.asList(): List {\n return object : AbstractList(), RandomAccess {\n override val size: Int get() = this@asList.size\n override fun isEmpty(): Boolean = this@asList.isEmpty()\n override fun contains(element: ULong): Boolean = this@asList.contains(element)\n override fun get(index: Int): ULong {\n AbstractList.checkElementIndex(index, size)\n return this@asList[index]\n }\n override fun indexOf(element: ULong): Int {\n if ((element as Any?) !is ULong) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: ULong): Int {\n if ((element as Any?) !is ULong) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun UByteArray.asList(): List {\n return object : AbstractList(), RandomAccess {\n override val size: Int get() = this@asList.size\n override fun isEmpty(): Boolean = this@asList.isEmpty()\n override fun contains(element: UByte): Boolean = this@asList.contains(element)\n override fun get(index: Int): UByte {\n AbstractList.checkElementIndex(index, size)\n return this@asList[index]\n }\n override fun indexOf(element: UByte): Int {\n if ((element as Any?) !is UByte) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: UByte): Int {\n if ((element as Any?) !is UByte) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic actual fun UShortArray.asList(): List {\n return object : AbstractList(), RandomAccess {\n override val size: Int get() = this@asList.size\n override fun isEmpty(): Boolean = this@asList.isEmpty()\n override fun contains(element: UShort): Boolean = this@asList.contains(element)\n override fun get(index: Int): UShort {\n AbstractList.checkElementIndex(index, size)\n return this@asList[index]\n }\n override fun indexOf(element: UShort): Int {\n if ((element as Any?) !is UShort) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: UShort): Int {\n if ((element as Any?) !is UShort) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n","@file: Suppress(\"DEPRECATION\")\npackage jquery.ui\n\n\n//jquery UI\nimport jquery.JQuery\nimport kotlin.js.Json\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.buttonset(): JQuery = asDynamic().buttonset()\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.dialog(): JQuery = asDynamic().dialog()\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.dialog(params: Json): JQuery = asDynamic().dialog(params)\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.dialog(mode: String, param: String): Any? = asDynamic().dialog(mode, param)\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.dialog(mode: String): JQuery = asDynamic().dialog(mode)\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.dialog(mode: String, param: String, value: Any?): JQuery = asDynamic().dialog(mode, param, value)\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.button(): JQuery = asDynamic().button()\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.accordion(): JQuery = asDynamic().accordion()\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.draggable(params: Json): JQuery = asDynamic().draggable(params)\n\n@Deprecated(\"Use declarations from 'https://bintray.com/kotlin/js-externals/kotlin-js-jquery' package instead.\")\npublic inline fun JQuery.selectable(): JQuery = asDynamic().selectable()\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\nimport kotlin.annotation.AnnotationTarget.*\n\n@Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR, VALUE_PARAMETER, PROPERTY_GETTER, PROPERTY_SETTER)\n@Deprecated(\"Use `external` modifier instead\", level = DeprecationLevel.ERROR)\npublic annotation class native(public val name: String = \"\")\n\n@Target(FUNCTION)\n@Deprecated(\"Use inline extension function with body using dynamic\")\npublic annotation class nativeGetter\n\n@Target(FUNCTION)\n@Deprecated(\"Use inline extension function with body using dynamic\")\npublic annotation class nativeSetter\n\n@Target(FUNCTION)\n@Deprecated(\"Use inline extension function with body using dynamic\")\npublic annotation class nativeInvoke\n\n@Target(CLASS, FUNCTION, PROPERTY)\ninternal annotation class library(public val name: String = \"\")\n\n@Target(CLASS)\ninternal annotation class marker\n\n/**\n * Gives a declaration (a function, a property or a class) specific name in JavaScript.\n *\n * This may be useful in the following cases:\n *\n * * There are two functions for which the compiler gives same name in JavaScript, you can\n * mark one with `@JsName(...)` to prevent the compiler from reporting error.\n * * You are writing a JavaScript library in Kotlin. The compiler produces mangled names\n * for functions with parameters, which is unnatural for usual JavaScript developer.\n * You can put `@JsName(...)` on functions you want to be available from JavaScript.\n * * For some reason you want to rename declaration, e.g. there's common term in JavaScript\n * for a concept provided by the declaration, which in uncommon in Kotlin.\n *\n * Example:\n *\n * ``` kotlin\n * class Person(val name: String) {\n * fun hello() {\n * println(\"Hello $name!\")\n * }\n *\n * @JsName(\"helloWithGreeting\")\n * fun hello(greeting: String) {\n * println(\"$greeting $name!\")\n * }\n * }\n * ```\n *\n * @property name the name which compiler uses both for declaration itself and for all references to the declaration.\n * It's required to denote a valid JavaScript identifier.\n *\n */\n@Retention(AnnotationRetention.BINARY)\n@Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR, PROPERTY_GETTER, PROPERTY_SETTER)\npublic actual annotation class JsName(actual val name: String)\n\n/**\n * Denotes an `external` declaration that must be imported from native JavaScript library.\n *\n * The compiler produces the code relevant for the target module system, for example, in case of CommonJS,\n * it will import the declaration via the `require(...)` function.\n *\n * The annotation can be used on top-level external declarations (classes, properties, functions) and files.\n * In case of file (which can't be `external`) the following rule applies: all the declarations in\n * the file must be `external`. By applying `@JsModule(...)` on a file you tell the compiler to import a JavaScript object\n * that contain all the declarations from the file.\n *\n * Example:\n *\n * ``` kotlin\n * @JsModule(\"jquery\")\n * external abstract class JQuery() {\n * // some declarations here\n * }\n *\n * @JsModule(\"jquery\")\n * external fun JQuery(element: Element): JQuery\n * ```\n *\n * @property import name of a module to import declaration from.\n * It is not interpreted by the Kotlin compiler, it's passed as is directly to the target module system.\n *\n * @see JsNonModule\n */\n@Retention(AnnotationRetention.BINARY)\n@Target(CLASS, PROPERTY, FUNCTION, FILE)\npublic annotation class JsModule(val import: String)\n\n/**\n * Denotes an `external` declaration that can be used without module system.\n *\n * By default, an `external` declaration is available regardless your target module system.\n * However, by applying [JsModule] annotation you can make a declaration unavailable to *plain* module system.\n * Some JavaScript libraries are distributed both as a standalone downloadable piece of JavaScript and as a module available\n * as an npm package.\n * To tell the Kotlin compiler to accept both cases, you can augment [JsModule] with the `@JsNonModule` annotation.\n *\n * For example:\n *\n * ``` kotlin\n * @JsModule(\"jquery\")\n * @JsNonModule\n * @JsName(\"$\")\n * external abstract class JQuery() {\n * // some declarations here\n * }\n *\n * @JsModule(\"jquery\")\n * @JsNonModule\n * @JsName(\"$\")\n * external fun JQuery(element: Element): JQuery\n * ```\n *\n * @see JsModule\n */\n@Retention(AnnotationRetention.BINARY)\n@Target(CLASS, PROPERTY, FUNCTION, FILE)\npublic annotation class JsNonModule\n\n/**\n * Adds prefix to `external` declarations in a source file.\n *\n * JavaScript does not have concept of packages (namespaces). They are usually emulated by nested objects.\n * The compiler turns references to `external` declarations either to plain unprefixed names (in case of *plain* modules)\n * or to plain imports.\n * However, if a JavaScript library provides its declarations in packages, you won't be satisfied with this.\n * You can tell the compiler to generate additional prefix before references to `external` declarations using the `@JsQualifier(...)`\n * annotation.\n *\n * Note that a file marked with the `@JsQualifier(...)` annotation can't contain non-`external` declarations.\n *\n * Example:\n *\n * ```\n * @file:JsQualifier(\"my.jsPackageName\")\n * package some.kotlinPackage\n *\n * external fun foo(x: Int)\n *\n * external fun bar(): String\n * ```\n *\n * @property value the qualifier to add to the declarations in the generated code.\n * It must be a sequence of valid JavaScript identifiers separated by the `.` character.\n * Examples of valid qualifiers are: `foo`, `bar.Baz`, `_.$0.f`.\n *\n * @see JsModule\n */\n@Retention(AnnotationRetention.BINARY)\n@Target(AnnotationTarget.FILE)\npublic annotation class JsQualifier(val value: String)","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.jvm\n\n// these are used in common generated code in stdlib\n\n// TODO: find how to deprecate these ones\n\n@Target(AnnotationTarget.FIELD)\n@Retention(AnnotationRetention.SOURCE)\npublic actual annotation class Volatile\n\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)\n@Retention(AnnotationRetention.SOURCE)\npublic actual annotation class Synchronized\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the [MutableCollection] interface.\n *\n * @param E the type of elements contained in the collection. The collection is invariant on its element type.\n */\npublic actual abstract class AbstractMutableCollection protected actual constructor() : AbstractCollection(), MutableCollection {\n\n actual abstract override fun add(element: E): Boolean\n\n actual override fun remove(element: E): Boolean {\n val iterator = iterator()\n while (iterator.hasNext()) {\n if (iterator.next() == element) {\n iterator.remove()\n return true\n }\n }\n return false\n }\n\n actual override fun addAll(elements: Collection): Boolean {\n var modified = false\n for (element in elements) {\n if (add(element)) modified = true\n }\n return modified\n }\n\n actual override fun removeAll(elements: Collection): Boolean = (this as MutableIterable).removeAll { it in elements }\n actual override fun retainAll(elements: Collection): Boolean = (this as MutableIterable).removeAll { it !in elements }\n\n actual override fun clear(): Unit {\n val iterator = this.iterator()\n while (iterator.hasNext()) {\n iterator.next()\n iterator.remove()\n }\n }\n\n open fun toJSON(): Any = this.toArray()\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT AbstractList\n * Copyright 2007 Google Inc.\n*/\n\n\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the [MutableList] interface.\n *\n * @param E the type of elements contained in the list. The list is invariant on its element type.\n */\npublic actual abstract class AbstractMutableList protected actual constructor() : AbstractMutableCollection(), MutableList {\n protected var modCount: Int = 0\n\n abstract override fun add(index: Int, element: E): Unit\n abstract override fun removeAt(index: Int): E\n abstract override fun set(index: Int, element: E): E\n\n /**\n * Adds the specified element to the end of this list.\n *\n * @return `true` because the list is always modified as the result of this operation.\n */\n actual override fun add(element: E): Boolean {\n add(size, element)\n return true\n }\n\n actual override fun addAll(index: Int, elements: Collection): Boolean {\n var _index = index\n var changed = false\n for (e in elements) {\n add(_index++, e)\n changed = true\n }\n return changed\n }\n\n actual override fun clear() {\n removeRange(0, size)\n }\n\n actual override fun removeAll(elements: Collection): Boolean = removeAll { it in elements }\n actual override fun retainAll(elements: Collection): Boolean = removeAll { it !in elements }\n\n\n actual override fun iterator(): MutableIterator = IteratorImpl()\n\n actual override fun contains(element: E): Boolean = indexOf(element) >= 0\n\n actual override fun indexOf(element: E): Int {\n for (index in 0..lastIndex) {\n if (get(index) == element) {\n return index\n }\n }\n return -1\n }\n\n actual override fun lastIndexOf(element: E): Int {\n for (index in lastIndex downTo 0) {\n if (get(index) == element) {\n return index\n }\n }\n return -1\n }\n\n actual override fun listIterator(): MutableListIterator = listIterator(0)\n actual override fun listIterator(index: Int): MutableListIterator = ListIteratorImpl(index)\n\n\n actual override fun subList(fromIndex: Int, toIndex: Int): MutableList = SubList(this, fromIndex, toIndex)\n\n /**\n * Removes the range of elements from this list starting from [fromIndex] and ending with but not including [toIndex].\n */\n protected open fun removeRange(fromIndex: Int, toIndex: Int) {\n val iterator = listIterator(fromIndex)\n repeat(toIndex - fromIndex) {\n iterator.next()\n iterator.remove()\n }\n }\n\n /**\n * Compares this list with another list instance with the ordered structural equality.\n *\n * @return true, if [other] instance is a [List] of the same size, which contains the same elements in the same order.\n */\n override fun equals(other: Any?): Boolean {\n if (other === this) return true\n if (other !is List<*>) return false\n\n return AbstractList.orderedEquals(this, other)\n }\n\n /**\n * Returns the hash code value for this list.\n */\n override fun hashCode(): Int = AbstractList.orderedHashCode(this)\n\n\n private open inner class IteratorImpl : MutableIterator {\n /** the index of the item that will be returned on the next call to [next]`()` */\n protected var index = 0\n /** the index of the item that was returned on the previous call to [next]`()`\n * or [ListIterator.previous]`()` (for `ListIterator`),\n * -1 if no such item exists\n */\n protected var last = -1\n\n override fun hasNext(): Boolean = index < size\n\n override fun next(): E {\n if (!hasNext()) throw NoSuchElementException()\n last = index++\n return get(last)\n }\n\n override fun remove() {\n check(last != -1) { \"Call next() or previous() before removing element from the iterator.\" }\n\n removeAt(last)\n index = last\n last = -1\n }\n }\n\n /**\n * Implementation of `MutableListIterator` for abstract lists.\n */\n private inner class ListIteratorImpl(index: Int) : IteratorImpl(), MutableListIterator {\n\n init {\n AbstractList.checkPositionIndex(index, this@AbstractMutableList.size)\n this.index = index\n }\n\n override fun hasPrevious(): Boolean = index > 0\n\n override fun nextIndex(): Int = index\n\n override fun previous(): E {\n if (!hasPrevious()) throw NoSuchElementException()\n\n last = --index\n return get(last)\n }\n\n override fun previousIndex(): Int = index - 1\n\n override fun add(element: E) {\n add(index, element)\n index++\n last = -1\n }\n\n override fun set(element: E) {\n check(last != -1) { \"Call next() or previous() before updating element value with the iterator.\" }\n this@AbstractMutableList[last] = element\n }\n }\n\n private class SubList(private val list: AbstractMutableList, private val fromIndex: Int, toIndex: Int) : AbstractMutableList(), RandomAccess {\n private var _size: Int = 0\n\n init {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, list.size)\n this._size = toIndex - fromIndex\n }\n\n override fun add(index: Int, element: E) {\n AbstractList.checkPositionIndex(index, _size)\n\n list.add(fromIndex + index, element)\n _size++\n }\n\n override fun get(index: Int): E {\n AbstractList.checkElementIndex(index, _size)\n\n return list[fromIndex + index]\n }\n\n override fun removeAt(index: Int): E {\n AbstractList.checkElementIndex(index, _size)\n\n val result = list.removeAt(fromIndex + index)\n _size--\n return result\n }\n\n override fun set(index: Int, element: E): E {\n AbstractList.checkElementIndex(index, _size)\n\n return list.set(fromIndex + index, element)\n }\n\n override val size: Int get() = _size\n }\n\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT AbstractMap\n * Copyright 2007 Google Inc.\n */\n\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the [MutableMap] interface.\n *\n * The implementor is required to implement [entries] property, which should return mutable set of map entries, and [put] function.\n *\n * @param K the type of map keys. The map is invariant on its key type.\n * @param V the type of map values. The map is invariant on its value type.\n */\npublic actual abstract class AbstractMutableMap protected actual constructor() : AbstractMap(), MutableMap {\n\n /**\n * A mutable [Map.Entry] shared by several [Map] implementations.\n */\n internal open class SimpleEntry(override val key: K, value: V) : MutableMap.MutableEntry {\n constructor(entry: Map.Entry) : this(entry.key, entry.value)\n\n private var _value = value\n\n override val value: V get() = _value\n\n override fun setValue(newValue: V): V {\n val oldValue = this._value\n this._value = newValue\n return oldValue\n }\n\n override fun hashCode(): Int = entryHashCode(this)\n override fun toString(): String = entryToString(this)\n override fun equals(other: Any?): Boolean = entryEquals(this, other)\n\n }\n\n actual override fun clear() {\n entries.clear()\n }\n\n private var _keys: MutableSet? = null\n actual override val keys: MutableSet\n get() {\n if (_keys == null) {\n _keys = object : AbstractMutableSet() {\n override fun add(element: K): Boolean = throw UnsupportedOperationException(\"Add is not supported on keys\")\n override fun clear() {\n this@AbstractMutableMap.clear()\n }\n\n override operator fun contains(element: K): Boolean = containsKey(element)\n\n override operator fun iterator(): MutableIterator {\n val entryIterator = entries.iterator()\n return object : MutableIterator {\n override fun hasNext(): Boolean = entryIterator.hasNext()\n override fun next(): K = entryIterator.next().key\n override fun remove() = entryIterator.remove()\n }\n }\n\n override fun remove(element: K): Boolean {\n if (containsKey(element)) {\n this@AbstractMutableMap.remove(element)\n return true\n }\n return false\n }\n\n override val size: Int get() = this@AbstractMutableMap.size\n }\n }\n return _keys!!\n }\n\n actual abstract override fun put(key: K, value: V): V?\n\n actual override fun putAll(from: Map) {\n for ((key, value) in from) {\n put(key, value)\n }\n }\n\n private var _values: MutableCollection? = null\n actual override val values: MutableCollection\n get() {\n if (_values == null) {\n _values = object : AbstractMutableCollection() {\n override fun add(element: V): Boolean = throw UnsupportedOperationException(\"Add is not supported on values\")\n override fun clear() = this@AbstractMutableMap.clear()\n\n override operator fun contains(element: V): Boolean = containsValue(element)\n\n override operator fun iterator(): MutableIterator {\n val entryIterator = entries.iterator()\n return object : MutableIterator {\n override fun hasNext(): Boolean = entryIterator.hasNext()\n override fun next(): V = entryIterator.next().value\n override fun remove() = entryIterator.remove()\n }\n }\n\n override val size: Int get() = this@AbstractMutableMap.size\n\n // TODO: should we implement them this way? Currently it's unspecified in JVM\n override fun equals(other: Any?): Boolean {\n if (this === other) return true\n if (other !is Collection<*>) return false\n return AbstractList.orderedEquals(this, other)\n }\n\n override fun hashCode(): Int = AbstractList.orderedHashCode(this)\n }\n }\n return _values!!\n }\n\n actual override fun remove(key: K): V? {\n val iter = entries.iterator()\n while (iter.hasNext()) {\n val entry = iter.next()\n val k = entry.key\n if (key == k) {\n val value = entry.value\n iter.remove()\n return value\n }\n }\n return null\n }\n\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the [MutableSet] interface.\n *\n * @param E the type of elements contained in the set. The set is invariant on its element type.\n */\npublic actual abstract class AbstractMutableSet protected actual constructor() : AbstractMutableCollection(), MutableSet {\n\n /**\n * Compares this set with another set instance with the unordered structural equality.\n *\n * @return `true`, if [other] instance is a [Set] of the same size, all elements of which are contained in this set.\n */\n override fun equals(other: Any?): Boolean {\n if (other === this) return true\n if (other !is Set<*>) return false\n return AbstractSet.setEquals(this, other)\n }\n\n /**\n * Returns the hash code value for this set.\n */\n override fun hashCode(): Int = AbstractSet.unorderedHashCode(this)\n\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n/**\n * Provides a [MutableList] implementation, which uses a resizable array as its backing storage.\n *\n * This implementation doesn't provide a way to manage capacity, as backing JS array is resizeable itself.\n * There is no speed advantage to pre-allocating array sizes in JavaScript, so this implementation does not include any of the\n * capacity and \"growth increment\" concepts.\n */\npublic actual open class ArrayList internal constructor(private var array: Array) : AbstractMutableList(), MutableList, RandomAccess {\n\n /**\n * Creates an empty [ArrayList].\n */\n public actual constructor() : this(emptyArray()) {}\n\n /**\n * Creates an empty [ArrayList].\n * @param initialCapacity initial capacity (ignored)\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n public actual constructor(initialCapacity: Int = 0) : this(emptyArray()) {}\n\n /**\n * Creates an [ArrayList] filled from the [elements] collection.\n */\n public actual constructor(elements: Collection) : this(elements.toTypedArray()) {}\n\n /** Does nothing in this ArrayList implementation. */\n public actual fun trimToSize() {}\n\n /** Does nothing in this ArrayList implementation. */\n public actual fun ensureCapacity(minCapacity: Int) {}\n\n actual override val size: Int get() = array.size\n @Suppress(\"UNCHECKED_CAST\")\n actual override fun get(index: Int): E = array[rangeCheck(index)] as E\n actual override fun set(index: Int, element: E): E {\n rangeCheck(index)\n @Suppress(\"UNCHECKED_CAST\")\n return array[index].apply { array[index] = element } as E\n }\n\n actual override fun add(element: E): Boolean {\n array.asDynamic().push(element)\n modCount++\n return true\n }\n\n actual override fun add(index: Int, element: E): Unit {\n array.asDynamic().splice(insertionRangeCheck(index), 0, element)\n modCount++\n }\n\n actual override fun addAll(elements: Collection): Boolean {\n if (elements.isEmpty()) return false\n\n array += elements.toTypedArray()\n modCount++\n return true\n }\n\n actual override fun addAll(index: Int, elements: Collection): Boolean {\n insertionRangeCheck(index)\n\n if (index == size) return addAll(elements)\n if (elements.isEmpty()) return false\n when (index) {\n size -> return addAll(elements)\n 0 -> array = elements.toTypedArray() + array\n else -> array = array.copyOfRange(0, index).asDynamic().concat(elements.toTypedArray(), array.copyOfRange(index, size))\n }\n\n modCount++\n return true\n }\n\n actual override fun removeAt(index: Int): E {\n rangeCheck(index)\n modCount++\n return if (index == lastIndex)\n array.asDynamic().pop()\n else\n array.asDynamic().splice(index, 1)[0]\n }\n\n actual override fun remove(element: E): Boolean {\n for (index in array.indices) {\n if (array[index] == element) {\n array.asDynamic().splice(index, 1)\n modCount++\n return true\n }\n }\n return false\n }\n\n override fun removeRange(fromIndex: Int, toIndex: Int) {\n modCount++\n array.asDynamic().splice(fromIndex, toIndex - fromIndex)\n }\n\n actual override fun clear() {\n array = emptyArray()\n modCount++\n }\n\n\n actual override fun indexOf(element: E): Int = array.indexOf(element)\n\n actual override fun lastIndexOf(element: E): Int = array.lastIndexOf(element)\n\n override fun toString() = arrayToString(array)\n override fun toArray(): Array = js(\"[]\").slice.call(array)\n\n\n private fun rangeCheck(index: Int) = index.apply {\n AbstractList.checkElementIndex(index, size)\n }\n\n private fun insertionRangeCheck(index: Int) = index.apply {\n AbstractList.checkPositionIndex(index, size)\n }\n}","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\ninternal fun sortArrayWith(array: Array, comparison: (T, T) -> Int) {\n if (getStableSortingIsSupported()) {\n array.asDynamic().sort(comparison)\n } else {\n mergeSort(array.unsafeCast>(), 0, array.lastIndex, Comparator(comparison))\n }\n}\n\ninternal fun sortArrayWith(array: Array, comparator: Comparator) {\n if (getStableSortingIsSupported()) {\n val comparison = { a: T, b: T -> comparator.compare(a, b) }\n array.asDynamic().sort(comparison)\n } else {\n mergeSort(array.unsafeCast>(), 0, array.lastIndex, comparator)\n }\n}\n\ninternal fun > sortArray(array: Array) {\n if (getStableSortingIsSupported()) {\n val comparison = { a: T, b: T -> a.compareTo(b) }\n array.asDynamic().sort(comparison)\n } else {\n mergeSort(array.unsafeCast>(), 0, array.lastIndex, naturalOrder())\n }\n}\n\nprivate var _stableSortingIsSupported: Boolean? = null\nprivate fun getStableSortingIsSupported(): Boolean {\n _stableSortingIsSupported?.let { return it }\n _stableSortingIsSupported = false\n\n val array = js(\"[]\").unsafeCast>()\n // known implementations may use stable sort for arrays of up to 512 elements\n // so we create slightly more elements to test stability\n for (index in 0 until 600) array.asDynamic().push(index)\n val comparison = { a: Int, b: Int -> (a and 3) - (b and 3) }\n array.asDynamic().sort(comparison)\n for (index in 1 until array.size) {\n val a = array[index - 1]\n val b = array[index]\n if ((a and 3) == (b and 3) && a >= b) return false\n }\n _stableSortingIsSupported = true\n return true\n}\n\n\nprivate fun mergeSort(array: Array, start: Int, endInclusive: Int, comparator: Comparator) {\n val buffer = arrayOfNulls(array.size).unsafeCast>()\n val result = mergeSort(array, buffer, start, endInclusive, comparator)\n if (result !== array) {\n result.forEachIndexed { i, v -> array[i] = v }\n }\n}\n\n// Both start and end are inclusive indices.\nprivate fun mergeSort(array: Array, buffer: Array, start: Int, end: Int, comparator: Comparator): Array {\n if (start == end) {\n return array\n }\n\n val median = (start + end) / 2\n val left = mergeSort(array, buffer, start, median, comparator)\n val right = mergeSort(array, buffer, median + 1, end, comparator)\n\n val target = if (left === buffer) array else buffer\n\n // Merge.\n var leftIndex = start\n var rightIndex = median + 1\n for (i in start..end) {\n when {\n leftIndex <= median && rightIndex <= end -> {\n val leftValue = left[leftIndex]\n val rightValue = right[rightIndex]\n\n if (comparator.compare(leftValue, rightValue) <= 0) {\n target[i] = leftValue\n leftIndex++\n } else {\n target[i] = rightValue\n rightIndex++\n }\n }\n leftIndex <= median -> {\n target[i] = left[leftIndex]\n leftIndex++\n }\n else /* rightIndex <= end */ -> {\n target[i] = right[rightIndex]\n rightIndex++\n }\n }\n }\n\n return target\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n\n@UseExperimental(ExperimentalUnsignedTypes::class)\n@SinceKotlin(\"1.3\")\n@kotlin.js.JsName(\"contentDeepHashCodeImpl\")\ninternal fun Array.contentDeepHashCodeImpl(): Int {\n var result = 1\n for (element in this) {\n val elementHash = when {\n element == null -> 0\n js(\"Kotlin\").isArrayish(element) -> (element.unsafeCast>()).contentDeepHashCodeImpl()\n\n element is UByteArray -> element.contentHashCode()\n element is UShortArray -> element.contentHashCode()\n element is UIntArray -> element.contentHashCode()\n element is ULongArray -> element.contentHashCode()\n\n else -> element.hashCode()\n }\n\n result = 31 * result + elementHash\n }\n return result\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\ninternal interface EqualityComparator {\n /**\n * Subclasses must override to return a value indicating\n * whether or not two keys or values are equal.\n */\n abstract fun equals(value1: Any?, value2: Any?): Boolean\n\n /**\n * Subclasses must override to return the hash code of a given key.\n */\n abstract fun getHashCode(value: Any?): Int\n\n\n object HashCode : EqualityComparator {\n override fun equals(value1: Any?, value2: Any?): Boolean = value1 == value2\n\n override fun getHashCode(value: Any?): Int = value?.hashCode() ?: 0\n }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT AbstractHashMap\n * Copyright 2008 Google Inc.\n */\n\npackage kotlin.collections\n\nimport kotlin.collections.MutableMap.MutableEntry\n\n/**\n * Hash table based implementation of the [MutableMap] interface.\n *\n * This implementation makes no guarantees regarding the order of enumeration of [keys], [values] and [entries] collections.\n */\npublic actual open class HashMap : AbstractMutableMap, MutableMap {\n\n private inner class EntrySet : AbstractMutableSet>() {\n\n override fun add(element: MutableEntry): Boolean = throw UnsupportedOperationException(\"Add is not supported on entries\")\n override fun clear() {\n this@HashMap.clear()\n }\n\n override operator fun contains(element: MutableEntry): Boolean = containsEntry(element)\n\n override operator fun iterator(): MutableIterator> = internalMap.iterator()\n\n override fun remove(element: MutableEntry): Boolean {\n if (contains(element)) {\n this@HashMap.remove(element.key)\n return true\n }\n return false\n }\n\n override val size: Int get() = this@HashMap.size\n }\n\n\n /**\n * Internal implementation of the map: either string-based or hashcode-based.\n */\n private val internalMap: InternalMap\n\n private val equality: EqualityComparator\n\n internal constructor(internalMap: InternalMap) : super() {\n this.internalMap = internalMap\n this.equality = internalMap.equality\n }\n\n /**\n * Constructs an empty [HashMap] instance.\n */\n actual constructor() : this(InternalHashCodeMap(EqualityComparator.HashCode))\n\n /**\n * Constructs an empty [HashMap] instance.\n *\n * @param initialCapacity the initial capacity (ignored)\n * @param loadFactor the load factor (ignored)\n *\n * @throws IllegalArgumentException if the initial capacity or load factor are negative\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n actual constructor(initialCapacity: Int, loadFactor: Float = 0.0f) : this() {\n // This implementation of HashMap has no need of load factors or capacities.\n require(initialCapacity >= 0) { \"Negative initial capacity: $initialCapacity\" }\n require(loadFactor >= 0) { \"Non-positive load factor: $loadFactor\" }\n }\n\n actual constructor(initialCapacity: Int) : this(initialCapacity, 0.0f)\n\n\n /**\n * Constructs an instance of [HashMap] filled with the contents of the specified [original] map.\n */\n actual constructor(original: Map) : this() {\n this.putAll(original)\n }\n\n actual override fun clear() {\n internalMap.clear()\n// structureChanged(this)\n }\n\n actual override fun containsKey(key: K): Boolean = internalMap.contains(key)\n\n actual override fun containsValue(value: V): Boolean = internalMap.any { equality.equals(it.value, value) }\n\n private var _entries: MutableSet>? = null\n actual override val entries: MutableSet>\n get() {\n if (_entries == null) {\n _entries = createEntrySet()\n }\n return _entries!!\n }\n\n protected open fun createEntrySet(): MutableSet> = EntrySet()\n\n actual override operator fun get(key: K): V? = internalMap.get(key)\n\n actual override fun put(key: K, value: V): V? = internalMap.put(key, value)\n\n actual override fun remove(key: K): V? = internalMap.remove(key)\n\n actual override val size: Int get() = internalMap.size\n\n}\n\n/**\n * Constructs the specialized implementation of [HashMap] with [String] keys, which stores the keys as properties of\n * JS object without hashing them.\n */\npublic fun stringMapOf(vararg pairs: Pair): HashMap {\n return HashMap(InternalStringMap(EqualityComparator.HashCode)).apply { putAll(pairs) }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT HashSet\n * Copyright 2008 Google Inc.\n */\n\npackage kotlin.collections\n\n/**\n * The implementation of the [MutableSet] interface, backed by a [HashMap] instance.\n */\npublic actual open class HashSet : AbstractMutableSet, MutableSet {\n\n private val map: HashMap\n\n /**\n * Constructs a new empty [HashSet].\n */\n actual constructor() {\n map = HashMap()\n }\n\n /**\n * Constructs a new [HashSet] filled with the elements of the specified collection.\n */\n actual constructor(elements: Collection) {\n map = HashMap(elements.size)\n addAll(elements)\n }\n\n /**\n * Constructs a new empty [HashSet].\n *\n * @param initialCapacity the initial capacity (ignored)\n * @param loadFactor the load factor (ignored)\n *\n * @throws IllegalArgumentException if the initial capacity or load factor are negative\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n actual constructor(initialCapacity: Int, loadFactor: Float = 0.0f) {\n map = HashMap(initialCapacity, loadFactor)\n }\n\n actual constructor(initialCapacity: Int) : this(initialCapacity, 0.0f)\n\n /**\n * Protected constructor to specify the underlying map. This is used by\n * LinkedHashSet.\n\n * @param map underlying map to use.\n */\n internal constructor(map: HashMap) {\n this.map = map\n }\n\n actual override fun add(element: E): Boolean {\n val old = map.put(element, this)\n return old == null\n }\n\n actual override fun clear() {\n map.clear()\n }\n\n// public override fun clone(): Any {\n// return HashSet(this)\n// }\n\n actual override operator fun contains(element: E): Boolean = map.containsKey(element)\n\n actual override fun isEmpty(): Boolean = map.isEmpty()\n\n actual override fun iterator(): MutableIterator = map.keys.iterator()\n\n actual override fun remove(element: E): Boolean = map.remove(element) != null\n\n actual override val size: Int get() = map.size\n\n}\n\n/**\n * Creates a new instance of the specialized implementation of [HashSet] with the specified [String] elements,\n * which elements the keys as properties of JS object without hashing them.\n */\npublic fun stringSetOf(vararg elements: String): HashSet {\n return HashSet(stringMapOf()).apply { addAll(elements) }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT InternalHashCodeMap\n * Copyright 2008 Google Inc.\n */\n\npackage kotlin.collections\n\nimport kotlin.collections.MutableMap.MutableEntry\nimport kotlin.collections.AbstractMutableMap.SimpleEntry\n\n/**\n * A simple wrapper around JavaScriptObject to provide [java.util.Map]-like semantics for any\n * key type.\n *\n *\n * Implementation notes:\n *\n *\n * A key's hashCode is the index in backingMap which should contain that key. Since several keys may\n * have the same hash, each value in hashCodeMap is actually an array containing all entries whose\n * keys share the same hash.\n */\ninternal class InternalHashCodeMap(override val equality: EqualityComparator) : InternalMap {\n\n private var backingMap: dynamic = createJsMap()\n override var size: Int = 0\n private set\n\n override fun put(key: K, value: V): V? {\n val hashCode = equality.getHashCode(key)\n val chainOrEntry = getChainOrEntryOrNull(hashCode)\n if (chainOrEntry == null) {\n // This is a new chain, put it to the map.\n backingMap[hashCode] = SimpleEntry(key, value)\n } else {\n if (chainOrEntry !is Array<*>) {\n // It is an entry\n val entry: SimpleEntry = chainOrEntry\n if (equality.equals(entry.key, key)) {\n return entry.setValue(value)\n } else {\n backingMap[hashCode] = arrayOf(entry, SimpleEntry(key, value))\n size++\n return null\n }\n } else {\n // Chain already exists, perhaps key also exists.\n val chain: Array> = chainOrEntry\n val entry = chain.findEntryInChain(key)\n if (entry != null) {\n return entry.setValue(value)\n }\n chain.asDynamic().push(SimpleEntry(key, value))\n }\n }\n size++\n// structureChanged(host)\n return null\n }\n\n override fun remove(key: K): V? {\n val hashCode = equality.getHashCode(key)\n val chainOrEntry = getChainOrEntryOrNull(hashCode) ?: return null\n if (chainOrEntry !is Array<*>) {\n val entry: MutableEntry = chainOrEntry\n if (equality.equals(entry.key, key)) {\n jsDeleteProperty(backingMap, hashCode)\n size--\n return entry.value\n } else {\n return null\n }\n } else {\n val chain: Array> = chainOrEntry\n for (index in chain.indices) {\n val entry = chain[index]\n if (equality.equals(key, entry.key)) {\n if (chain.size == 1) {\n chain.asDynamic().length = 0\n // remove the whole array\n jsDeleteProperty(backingMap, hashCode)\n } else {\n // splice out the entry we're removing\n chain.asDynamic().splice(index, 1)\n }\n size--\n// structureChanged(host)\n return entry.value\n }\n }\n }\n return null\n }\n\n override fun clear() {\n backingMap = createJsMap()\n size = 0\n }\n\n override fun contains(key: K): Boolean = getEntry(key) != null\n\n override fun get(key: K): V? = getEntry(key)?.value\n\n private fun getEntry(key: K): MutableEntry? {\n val chainOrEntry = getChainOrEntryOrNull(equality.getHashCode(key)) ?: return null\n if (chainOrEntry !is Array<*>) {\n val entry: MutableEntry = chainOrEntry\n if (equality.equals(entry.key, key)) {\n return entry\n } else {\n return null\n }\n } else {\n val chain: Array> = chainOrEntry\n return chain.findEntryInChain(key)\n }\n }\n\n private fun Array>.findEntryInChain(key: K): MutableEntry? =\n firstOrNull { entry -> equality.equals(entry.key, key) }\n\n override fun iterator(): MutableIterator> {\n\n return object : MutableIterator> {\n var state = -1 // -1 not ready, 0 - ready, 1 - done\n\n val keys: Array = js(\"Object\").keys(backingMap)\n var keyIndex = -1\n\n var chainOrEntry: dynamic = null\n var isChain = false\n var itemIndex = -1\n var lastEntry: MutableEntry? = null\n\n private fun computeNext(): Int {\n if (chainOrEntry != null && isChain) {\n val chainSize: Int = chainOrEntry.unsafeCast>>().size\n if (++itemIndex < chainSize)\n return 0\n }\n\n if (++keyIndex < keys.size) {\n chainOrEntry = backingMap[keys[keyIndex]]\n isChain = chainOrEntry is Array<*>\n itemIndex = 0\n return 0\n } else {\n chainOrEntry = null\n return 1\n }\n }\n\n override fun hasNext(): Boolean {\n if (state == -1)\n state = computeNext()\n return state == 0\n }\n\n override fun next(): MutableEntry {\n if (!hasNext()) throw NoSuchElementException()\n val lastEntry = if (isChain) {\n chainOrEntry.unsafeCast>>()[itemIndex]\n } else {\n chainOrEntry.unsafeCast>()\n }\n this.lastEntry = lastEntry\n state = -1\n return lastEntry\n }\n\n override fun remove() {\n checkNotNull(lastEntry)\n this@InternalHashCodeMap.remove(lastEntry!!.key)\n lastEntry = null\n // the chain being iterated just got modified by InternalHashCodeMap.remove\n itemIndex--\n }\n }\n }\n\n private fun getChainOrEntryOrNull(hashCode: Int): dynamic {\n val chainOrEntry = backingMap[hashCode]\n return if (chainOrEntry === undefined) null else chainOrEntry\n }\n\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n/**\n * The common interface of [InternalStringMap] and [InternalHashCodeMap].\n */\ninternal interface InternalMap : MutableIterable> {\n val equality: EqualityComparator\n val size: Int\n operator fun contains(key: K): Boolean\n operator fun get(key: K): V?\n\n fun put(key: K, value: V): V?\n fun remove(key: K): V?\n fun clear(): Unit\n\n fun createJsMap(): dynamic {\n val result = js(\"Object.create(null)\")\n // force to switch object representation to dictionary mode\n result[\"foo\"] = 1\n jsDeleteProperty(result, \"foo\")\n return result\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT InternalStringMap\n * Copyright 2008 Google Inc.\n */\npackage kotlin.collections\n\nimport kotlin.collections.MutableMap.MutableEntry\n\n/**\n * A simple wrapper around JavaScript Map for key type is string.\n *\n * Though this map is instantiated only with K=String, the K type is not fixed to String statically,\n * because we want to have it erased to Any? in order not to generate type-safe override bridges for\n * [get], [contains], [remove] etc, if they ever are generated.\n */\ninternal class InternalStringMap(override val equality: EqualityComparator) : InternalMap {\n\n private var backingMap: dynamic = createJsMap()\n override var size: Int = 0\n private set\n\n// /**\n// * A mod count to track 'value' replacements in map to ensure that the 'value' that we have in the\n// * iterator entry is guaranteed to be still correct.\n// * This is to optimize for the common scenario where the values are not modified during\n// * iterations where the entries are never stale.\n// */\n// private var valueMod: Int = 0\n\n override operator fun contains(key: K): Boolean {\n if (key !is String) return false\n return backingMap[key] !== undefined\n }\n\n override operator fun get(key: K): V? {\n if (key !is String) return null\n val value = backingMap[key]\n return if (value !== undefined) value.unsafeCast() else null\n }\n\n\n override fun put(key: K, value: V): V? {\n require(key is String)\n val oldValue = backingMap[key]\n backingMap[key] = value\n\n if (oldValue === undefined) {\n size++\n// structureChanged(host)\n return null\n } else {\n// valueMod++\n return oldValue.unsafeCast()\n }\n }\n\n override fun remove(key: K): V? {\n if (key !is String) return null\n val value = backingMap[key]\n if (value !== undefined) {\n jsDeleteProperty(backingMap, key)\n size--\n// structureChanged(host)\n return value.unsafeCast()\n } else {\n// valueMod++\n return null\n }\n }\n\n\n override fun clear() {\n backingMap = createJsMap()\n size = 0\n }\n\n\n override fun iterator(): MutableIterator> {\n return object : MutableIterator> {\n private val keys: Array = js(\"Object\").keys(backingMap)\n private val iterator = keys.iterator()\n private var lastKey: String? = null\n\n override fun hasNext(): Boolean = iterator.hasNext()\n\n override fun next(): MutableEntry {\n val key = iterator.next()\n lastKey = key\n @Suppress(\"UNCHECKED_CAST\")\n return newMapEntry(key as K)\n }\n\n override fun remove() {\n @Suppress(\"UNCHECKED_CAST\")\n this@InternalStringMap.remove(checkNotNull(lastKey) as K)\n }\n }\n }\n\n private fun newMapEntry(key: K): MutableEntry = object : MutableEntry {\n override val key: K get() = key\n override val value: V get() = this@InternalStringMap[key].unsafeCast()\n\n override fun setValue(newValue: V): V = this@InternalStringMap.put(key, newValue).unsafeCast()\n\n override fun hashCode(): Int = AbstractMap.entryHashCode(this)\n override fun toString(): String = AbstractMap.entryToString(this)\n override fun equals(other: Any?): Boolean = AbstractMap.entryEquals(this, other)\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT LinkedHashMap\n * Copyright 2008 Google Inc.\n */\npackage kotlin.collections\n\nimport kotlin.collections.MutableMap.MutableEntry\n\n/**\n * Hash table based implementation of the [MutableMap] interface, which additionally preserves the insertion order\n * of entries during the iteration.\n *\n * The insertion order is preserved by maintaining a doubly-linked list of all of its entries.\n */\npublic actual open class LinkedHashMap : HashMap, MutableMap {\n\n /**\n * The entry we use includes next/prev pointers for a doubly-linked circular\n * list with a head node. This reduces the special cases we have to deal with\n * in the list operations.\n\n * Note that we duplicate the key from the underlying hash map so we can find\n * the eldest entry. The alternative would have been to modify HashMap so more\n * of the code was directly usable here, but this would have added some\n * overhead to HashMap, or to reimplement most of the HashMap code here with\n * small modifications. Paying a small storage cost only if you use\n * LinkedHashMap and minimizing code size seemed like a better tradeoff\n */\n private class ChainEntry(key: K, value: V) : AbstractMutableMap.SimpleEntry(key, value) {\n internal var next: ChainEntry? = null\n internal var prev: ChainEntry? = null\n }\n\n private inner class EntrySet : AbstractMutableSet>() {\n\n private inner class EntryIterator : MutableIterator> {\n // The last entry that was returned from this iterator.\n private var last: ChainEntry? = null\n\n // The next entry to return from this iterator.\n private var next: ChainEntry? = null\n\n init {\n next = head\n// recordLastKnownStructure(map, this)\n }\n\n override fun hasNext(): Boolean {\n return next !== null\n }\n\n override fun next(): MutableEntry {\n// checkStructuralChange(map, this)\n if (!hasNext()) throw NoSuchElementException()\n\n val current = next!!\n last = current\n next = current.next.takeIf { it !== head }\n return current\n }\n\n override fun remove() {\n check(last != null)\n// checkStructuralChange(map, this)\n\n last!!.remove()\n map.remove(last!!.key)\n// recordLastKnownStructure(map, this)\n last = null\n }\n }\n\n override fun add(element: MutableEntry): Boolean = throw UnsupportedOperationException(\"Add is not supported on entries\")\n override fun clear() {\n this@LinkedHashMap.clear()\n }\n\n override operator fun contains(element: MutableEntry): Boolean = containsEntry(element)\n\n override operator fun iterator(): MutableIterator> = EntryIterator()\n\n override fun remove(element: MutableEntry): Boolean {\n if (contains(element)) {\n this@LinkedHashMap.remove(element.key)\n return true\n }\n return false\n }\n\n override val size: Int get() = this@LinkedHashMap.size\n }\n\n\n /*\n * The head of the insert order chain, which is a doubly-linked circular\n * list.\n *\n * The most recently inserted node is at the end of the chain, ie.\n * chain.prev.\n */\n private var head: ChainEntry? = null\n\n /**\n * Add this node to the end of the chain.\n */\n private fun ChainEntry.addToEnd() {\n // This entry is not in the list.\n check(next == null && prev == null)\n\n val _head = head\n if (_head == null) {\n head = this\n next = this\n prev = this\n } else {\n // Chain is valid.\n val _tail = checkNotNull(_head.prev)\n // Update me.\n prev = _tail\n next = _head\n // Update my new siblings: current head and old tail\n _head.prev = this\n _tail.next = this\n }\n }\n\n /**\n * Remove this node from the chain it is a part of.\n */\n private fun ChainEntry.remove() {\n if (this.next === this) {\n // if this is single element, remove head\n head = null\n } else {\n if (head === this) {\n // if this is first element, move head to next\n head = next\n }\n next!!.prev = prev\n prev!!.next = next\n }\n next = null\n prev = null\n }\n\n /*\n * The hashmap that keeps track of our entries and the chain. Note that we\n * duplicate the key here to eliminate changes to HashMap and minimize the\n * code here, at the expense of additional space.\n */\n private val map: HashMap>\n\n /**\n * Constructs an empty [LinkedHashMap] instance.\n */\n actual constructor() : super() {\n map = HashMap>()\n }\n\n internal constructor(backingMap: HashMap) : super() {\n @Suppress(\"UNCHECKED_CAST\") // expected to work due to erasure\n map = backingMap as HashMap>\n }\n\n /**\n * Constructs an empty [LinkedHashMap] instance.\n *\n * @param initialCapacity the initial capacity (ignored)\n * @param loadFactor the load factor (ignored)\n *\n * @throws IllegalArgumentException if the initial capacity or load factor are negative\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n actual constructor(initialCapacity: Int, loadFactor: Float = 0.0f) : super(initialCapacity, loadFactor) {\n map = HashMap>()\n }\n\n actual constructor(initialCapacity: Int) : this(initialCapacity, 0.0f)\n\n /**\n * Constructs an instance of [LinkedHashMap] filled with the contents of the specified [original] map.\n */\n actual constructor(original: Map) {\n map = HashMap>()\n this.putAll(original)\n }\n\n actual override fun clear() {\n map.clear()\n head = null\n }\n\n\n// override fun clone(): Any {\n// return LinkedHashMap(this)\n// }\n\n\n actual override fun containsKey(key: K): Boolean = map.containsKey(key)\n\n actual override fun containsValue(value: V): Boolean {\n var node: ChainEntry = head ?: return false\n do {\n if (node.value == value) {\n return true\n }\n node = node.next!!\n } while (node !== head)\n return false\n }\n\n\n override fun createEntrySet(): MutableSet> = EntrySet()\n\n actual override operator fun get(key: K): V? = map.get(key)?.value\n\n actual override fun put(key: K, value: V): V? {\n val old = map.get(key)\n if (old == null) {\n val newEntry = ChainEntry(key, value)\n map.put(key, newEntry)\n newEntry.addToEnd()\n return null\n } else {\n return old.setValue(value)\n }\n }\n\n actual override fun remove(key: K): V? {\n val entry = map.remove(key)\n if (entry != null) {\n entry.remove()\n return entry.value\n }\n return null\n }\n\n actual override val size: Int get() = map.size\n\n}\n\n/**\n * Constructs the specialized implementation of [LinkedHashMap] with [String] keys, which stores the keys as properties of\n * JS object without hashing them.\n */\npublic fun linkedStringMapOf(vararg pairs: Pair): LinkedHashMap {\n return LinkedHashMap(stringMapOf()).apply { putAll(pairs) }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT LinkedHashSet\n * Copyright 2008 Google Inc.\n */\n\npackage kotlin.collections\n\n/**\n * The implementation of the [MutableSet] interface, backed by a [LinkedHashMap] instance.\n *\n * This implementation preserves the insertion order of elements during the iteration.\n */\npublic actual open class LinkedHashSet : HashSet, MutableSet {\n\n internal constructor(map: LinkedHashMap) : super(map)\n\n /**\n * Constructs a new empty [LinkedHashSet].\n */\n actual constructor() : super(LinkedHashMap())\n\n /**\n * Constructs a new [LinkedHashSet] filled with the elements of the specified collection.\n */\n actual constructor(elements: Collection) : super(LinkedHashMap()) {\n addAll(elements)\n }\n\n /**\n * Constructs a new empty [LinkedHashSet].\n *\n * @param initialCapacity the initial capacity (ignored)\n * @param loadFactor the load factor (ignored)\n *\n * @throws IllegalArgumentException if the initial capacity or load factor are negative\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n actual constructor(initialCapacity: Int, loadFactor: Float = 0.0f) : super(LinkedHashMap(initialCapacity, loadFactor))\n\n actual constructor(initialCapacity: Int) : this(initialCapacity, 0.0f)\n\n// public override fun clone(): Any {\n// return LinkedHashSet(this)\n// }\n\n}\n\n/**\n * Creates a new instance of the specialized implementation of [LinkedHashSet] with the specified [String] elements,\n * which elements the keys as properties of JS object without hashing them.\n */\npublic fun linkedStringSetOf(vararg elements: String): LinkedHashSet {\n return LinkedHashSet(linkedStringMapOf()).apply { addAll(elements) }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\nimport kotlin.contracts.*\n\n\n@Deprecated(\"Do not use Synchronized annotation in pure Kotlin/JS code\", level = DeprecationLevel.ERROR)\npublic typealias Synchronized = kotlin.jvm.Synchronized\n\n@Deprecated(\"Do not use Volatile annotation in pure Kotlin/JS code\", level = DeprecationLevel.ERROR)\npublic typealias Volatile = kotlin.jvm.Volatile\n\n@kotlin.internal.InlineOnly\npublic actual inline fun synchronized(lock: Any, block: () -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.io\n\ninternal abstract class BaseOutput {\n open fun println() {\n print(\"\\n\")\n }\n\n open fun println(message: Any?) {\n print(message)\n println()\n }\n\n abstract fun print(message: Any?)\n\n open fun flush() {}\n}\n\n/** JsName used to make the declaration available outside of module to test it */\n@JsName(\"NodeJsOutput\")\ninternal class NodeJsOutput(val outputStream: dynamic) : BaseOutput() {\n override fun print(message: Any?) {\n // TODO: Using local variable because of bug in block decomposition lowering in IR backend\n val messageString = String(message)\n outputStream.write(messageString)\n }\n}\n\n/** JsName used to make the declaration available outside of module to test it */\n@JsName(\"OutputToConsoleLog\")\ninternal class OutputToConsoleLog : BaseOutput() {\n override fun print(message: Any?) {\n console.log(message)\n }\n\n override fun println(message: Any?) {\n console.log(message)\n }\n\n override fun println() {\n console.log(\"\")\n }\n}\n\n/** JsName used to make the declaration available outside of module to test it and use at try.kotl.in */\n@JsName(\"BufferedOutput\")\ninternal open class BufferedOutput : BaseOutput() {\n var buffer = \"\"\n\n override fun print(message: Any?) {\n buffer += String(message)\n }\n\n override fun flush() {\n buffer = \"\"\n }\n}\n\n/** JsName used to make the declaration available outside of module to test it */\n@JsName(\"BufferedOutputToConsoleLog\")\ninternal class BufferedOutputToConsoleLog : BufferedOutput() {\n override fun print(message: Any?) {\n var s = String(message)\n val i = s.lastIndexOf('\\n')\n if (i >= 0) {\n buffer += s.substring(0, i)\n flush()\n s = s.substring(i + 1)\n }\n buffer += s\n }\n\n override fun flush() {\n console.log(buffer)\n buffer = \"\"\n }\n}\n\n/** JsName used to make the declaration available outside of module to test it and use at try.kotl.in */\n@JsName(\"output\")\ninternal var output = run {\n val isNode: Boolean = js(\"typeof process !== 'undefined' && process.versions && !!process.versions.node\")\n if (isNode) NodeJsOutput(js(\"process.stdout\")) else BufferedOutputToConsoleLog()\n}\n\n@kotlin.internal.InlineOnly\nprivate inline fun String(value: Any?): String = js(\"String\")(value)\n\n/** Prints the line separator to the standard output stream. */\npublic actual fun println() {\n output.println()\n}\n\n/** Prints the given [message] and the line separator to the standard output stream. */\npublic actual fun println(message: Any?) {\n output.println(message)\n}\n\n/** Prints the given [message] to the standard output stream. */\npublic actual fun print(message: Any?) {\n output.print(message)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines\n\nimport kotlin.coroutines.intrinsics.CoroutineSingletons.*\nimport kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal actual class SafeContinuation\ninternal actual constructor(\n private val delegate: Continuation,\n initialResult: Any?\n) : Continuation {\n @PublishedApi\n internal actual constructor(delegate: Continuation) : this(delegate, UNDECIDED)\n\n public actual override val context: CoroutineContext\n get() = delegate.context\n\n private var result: Any? = initialResult\n\n public actual override fun resumeWith(result: Result) {\n val cur = this.result\n when {\n cur === UNDECIDED -> {\n this.result = result.value\n }\n cur === COROUTINE_SUSPENDED -> {\n this.result = RESUMED\n delegate.resumeWith(result)\n }\n else -> throw IllegalStateException(\"Already resumed\")\n }\n }\n\n @PublishedApi\n internal actual fun getOrThrow(): Any? {\n if (result === UNDECIDED) {\n result = COROUTINE_SUSPENDED\n return COROUTINE_SUSPENDED\n }\n val result = this.result\n return when {\n result === RESUMED -> COROUTINE_SUSPENDED // already called continuation, indicate COROUTINE_SUSPENDED upstream\n result is Result.Failure -> throw result.exception\n else -> result // either COROUTINE_SUSPENDED or data\n }\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines.js.internal\n\nimport kotlin.coroutines.Continuation\nimport kotlin.coroutines.EmptyCoroutineContext\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal val EmptyContinuation = Continuation(EmptyCoroutineContext) { result ->\n result.getOrThrow()\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\n/**\n * Exposes the [Date API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) to Kotlin.\n */\n@Suppress(\"NOT_DOCUMENTED\")\npublic external class Date() {\n public constructor(milliseconds: Number)\n\n public constructor(dateString: String)\n\n public constructor(year: Int, month: Int)\n\n public constructor(year: Int, month: Int, day: Int)\n\n public constructor(year: Int, month: Int, day: Int, hour: Int)\n\n public constructor(year: Int, month: Int, day: Int, hour: Int, minute: Int)\n\n public constructor(year: Int, month: Int, day: Int, hour: Int, minute: Int, second: Int)\n\n public constructor(year: Int, month: Int, day: Int, hour: Int, minute: Int, second: Int, millisecond: Number)\n\n public fun getDate(): Int\n\n public fun getDay(): Int\n\n public fun getFullYear(): Int\n\n public fun getHours(): Int\n\n public fun getMilliseconds(): Int\n\n public fun getMinutes(): Int\n\n public fun getMonth(): Int\n\n public fun getSeconds(): Int\n\n public fun getTime(): Double\n\n public fun getTimezoneOffset(): Int\n\n public fun getUTCDate(): Int\n\n public fun getUTCDay(): Int\n\n public fun getUTCFullYear(): Int\n\n public fun getUTCHours(): Int\n\n public fun getUTCMilliseconds(): Int\n\n public fun getUTCMinutes(): Int\n\n public fun getUTCMonth(): Int\n\n public fun getUTCSeconds(): Int\n\n public fun toDateString(): String\n\n public fun toISOString(): String\n\n public fun toJSON(): Json\n\n public fun toLocaleDateString(locales: Array = definedExternally, options: LocaleOptions = definedExternally): String\n\n public fun toLocaleDateString(locales: String, options: LocaleOptions = definedExternally): String\n\n public fun toLocaleString(locales: Array = definedExternally, options: LocaleOptions = definedExternally): String\n\n public fun toLocaleString(locales: String, options: LocaleOptions = definedExternally): String\n\n public fun toLocaleTimeString(locales: Array = definedExternally, options: LocaleOptions = definedExternally): String\n\n public fun toLocaleTimeString(locales: String, options: LocaleOptions = definedExternally): String\n\n public fun toTimeString(): String\n\n public fun toUTCString(): String\n\n public companion object {\n public fun now(): Double\n\n public fun parse(dateString: String): Double\n\n public fun UTC(year: Int, month: Int): Double\n\n public fun UTC(year: Int, month: Int, day: Int): Double\n\n public fun UTC(year: Int, month: Int, day: Int, hour: Int): Double\n\n public fun UTC(year: Int, month: Int, day: Int, hour: Int, minute: Int): Double\n\n public fun UTC(year: Int, month: Int, day: Int, hour: Int, minute: Int, second: Int): Double\n\n public fun UTC(year: Int, month: Int, day: Int, hour: Int, minute: Int, second: Int, millisecond: Number): Double\n }\n\n public interface LocaleOptions {\n public var localeMatcher: String?\n\n public var timeZone: String?\n\n public var hour12: Boolean?\n\n public var formatMatcher: String?\n\n public var weekday: String?\n\n public var era: String?\n\n public var year: String?\n\n public var month: String?\n\n public var day: String?\n\n public var hour: String?\n\n public var minute: String?\n\n public var second: String?\n\n public var timeZoneName: String?\n }\n}\n\npublic inline fun dateLocaleOptions(init: Date.LocaleOptions.() -> Unit): Date.LocaleOptions {\n val result = js(\"new Object()\").unsafeCast()\n init(result)\n return result\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.dom\n\nimport org.w3c.dom.*\n\n/**\n * Creates a new element with the specified [name].\n *\n * The element is initialized with the speicifed [init] function.\n */\npublic fun Document.createElement(name: String, init: Element.() -> Unit): Element = createElement(name).apply(init)\n\n/**\n * Appends a newly created element with the specified [name] to this element.\n *\n * The element is initialized with the speicifed [init] function.\n */\npublic fun Element.appendElement(name: String, init: Element.() -> Unit): Element =\n ownerDocument!!.createElement(name, init).also { appendChild(it) }\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.dom\n\nimport org.w3c.dom.*\n\n/** Returns true if the element has the given CSS class style in its 'class' attribute */\nfun Element.hasClass(cssClass: String): Boolean = className.matches(\"\"\"(^|.*\\s+)$cssClass($|\\s+.*)\"\"\".toRegex())\n\n/**\n * Adds CSS class to element. Has no effect if all specified classes are already in class attribute of the element\n *\n * @return true if at least one class has been added\n */\nfun Element.addClass(vararg cssClasses: String): Boolean {\n val missingClasses = cssClasses.filterNot { hasClass(it) }\n if (missingClasses.isNotEmpty()) {\n val presentClasses = className.trim()\n className = buildString {\n append(presentClasses)\n if (!presentClasses.isEmpty()) {\n append(\" \")\n }\n missingClasses.joinTo(this, \" \")\n }\n return true\n }\n\n return false\n}\n\n/**\n * Removes all [cssClasses] from element. Has no effect if all specified classes are missing in class attribute of the element\n *\n * @return true if at least one class has been removed\n */\nfun Element.removeClass(vararg cssClasses: String): Boolean {\n if (cssClasses.any { hasClass(it) }) {\n val toBeRemoved = cssClasses.toSet()\n className = className.trim().split(\"\\\\s+\".toRegex()).filter { it !in toBeRemoved }.joinToString(\" \")\n return true\n }\n\n return false\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n/**\n * Converts the string into a regular expression [Regex] with the default options.\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(): Regex = Regex(this)\n\n/**\n * Converts the string into a regular expression [Regex] with the specified single [option].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(option: RegexOption): Regex = Regex(this, option)\n\n/**\n * Converts the string into a regular expression [Regex] with the specified set of [options].\n */\n@kotlin.internal.InlineOnly\npublic inline fun String.toRegex(options: Set): Regex = Regex(this, options)\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n/**\n * Builds new string by populating newly created [StringBuilder] using provided [builderAction]\n * and then converting it to [String].\n */\n@kotlin.internal.InlineOnly\npublic inline fun buildString(builderAction: StringBuilder.() -> Unit): String =\n StringBuilder().apply(builderAction).toString()\n\n/**\n * Builds new string by populating newly created [StringBuilder] initialized with the given [capacity]\n * using provided [builderAction] and then converting it to [String].\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun buildString(capacity: Int, builderAction: StringBuilder.() -> Unit): String =\n StringBuilder(capacity).apply(builderAction).toString()\n\n/**\n * Appends all arguments to the given [Appendable].\n */\npublic fun T.append(vararg value: CharSequence?): T {\n for (item in value)\n append(item)\n return this\n}\n\n/**\n * Appends all arguments to the given StringBuilder.\n */\npublic fun StringBuilder.append(vararg value: String?): StringBuilder {\n for (item in value)\n append(item)\n return this\n}\n\n/**\n * Appends all arguments to the given StringBuilder.\n */\npublic fun StringBuilder.append(vararg value: Any?): StringBuilder {\n for (item in value)\n append(item)\n return this\n}\n\n\ninternal fun Appendable.appendElement(element: T, transform: ((T) -> CharSequence)?) {\n when {\n transform != null -> append(transform(element))\n element is CharSequence? -> append(element)\n element is Char -> append(element)\n else -> append(element.toString())\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.dom\n\nimport org.w3c.dom.*\n\n/**\n * Gets a value indicating whether this node is a TEXT_NODE or a CDATA_SECTION_NODE.\n */\npublic val Node.isText: Boolean\n get() = nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE\n\n/**\n * Gets a value indicating whether this node is an [Element].\n */\npublic val Node.isElement: Boolean\n get() = nodeType == Node.ELEMENT_NODE\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage org.w3c.dom.events\n\npublic fun EventListener(handler: (Event) -> Unit): EventListener = EventListenerHandler(handler)\n\nprivate class EventListenerHandler(private val handler: (Event) -> Unit) : EventListener {\n public override fun handleEvent(event: Event) {\n handler(event)\n }\n\n public override fun toString(): String = \"EventListenerHandler($handler)\"\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage org.w3c.dom\n\npublic external interface ItemArrayLike {\n val length: Int\n fun item(index: Int): T?\n}\n\n/**\n * Returns the view of this `ItemArrayLike` collection as `List`\n */\npublic fun ItemArrayLike.asList(): List = object : AbstractList() {\n override val size: Int get() = this@asList.length\n\n override fun get(index: Int): T = when (index) {\n in 0..lastIndex -> this@asList.item(index).unsafeCast()\n else -> throw IndexOutOfBoundsException(\"index $index is not in range [0..$lastIndex]\")\n }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.dom\n\nimport org.w3c.dom.*\n\n/** Removes all the children from this node. */\npublic fun Node.clear() {\n while (hasChildNodes()) {\n removeChild(firstChild!!)\n }\n}\n\n/**\n * Creates text node and append it to the element.\n *\n * @return this element\n */\nfun Element.appendText(text: String): Element {\n appendChild(ownerDocument!!.createTextNode(text))\n return this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\n/**\n * Reinterprets this value as a value of the [dynamic type](/docs/reference/dynamic-type.html).\n */\n@kotlin.internal.InlineOnly\npublic inline fun Any?.asDynamic(): dynamic = this\n\n/**\n * Reinterprets this value as a value of the specified type [T] without any actual type checking.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Any?.unsafeCast(): @kotlin.internal.NoInfer T = this.asDynamic()\n\n/**\n * Reinterprets this `dynamic` value as a value of the specified type [T] without any actual type checking.\n */\n@kotlin.internal.DynamicExtension\n@JsName(\"unsafeCastDynamic\")\n@kotlin.internal.InlineOnly\npublic inline fun dynamic.unsafeCast(): @kotlin.internal.NoInfer T = this\n\n/**\n * Allows to iterate this `dynamic` object in the following cases:\n * - when it has an `iterator` function,\n * - when it is an array\n * - when it is an instance of [kotlin.collections.Iterable]\n */\n@kotlin.internal.DynamicExtension\npublic operator fun dynamic.iterator(): Iterator {\n val r: Any? = this\n\n return when {\n this[\"iterator\"] != null ->\n this[\"iterator\"]()\n js(\"Kotlin\").isArrayish(r) ->\n r.unsafeCast>().iterator()\n\n else ->\n (r as Iterable<*>).iterator()\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// a package is omitted to get declarations directly under the module\n\n@JsName(\"throwNPE\")\ninternal fun throwNPE(message: String) {\n throw NullPointerException(message)\n}\n\n@JsName(\"throwCCE\")\ninternal fun throwCCE() {\n throw ClassCastException(\"Illegal cast\")\n}\n\n@JsName(\"throwISE\")\ninternal fun throwISE(message: String) {\n throw IllegalStateException(message)\n}\n\n@JsName(\"throwUPAE\")\ninternal fun throwUPAE(propertyName: String) {\n throw UninitializedPropertyAccessException(\"lateinit property ${propertyName} has not been initialized\")\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\n// NOTE: Do not author your exceptions as they are written in this file, instead use this template:\n/*\npublic open class MyException : Exception {\n constructor() : super()\n constructor(message: String?) : super(message)\n constructor(message: String?, cause: Throwable?) : super(message, cause)\n constructor(cause: Throwable?) : super(cause)\n}\n*/\n\n\n// TODO: remove workarounds for KT-22053 from direct Throwable inheritors\n// TODO: remove primary constructors, make all secondary KT-22055\n\n@Suppress(\"USELESS_ELVIS_RIGHT_IS_NULL\")\npublic actual open class Error actual constructor(message: String?, cause: Throwable?) : Throwable(message, cause ?: null) {\n actual constructor() : this(null, null) {\n Error::class.js.asDynamic().call(this, null, null)\n }\n\n actual constructor(message: String?) : this(message, null) {\n Error::class.js.asDynamic().call(this, message, null)\n }\n\n actual constructor(cause: Throwable?) : this(undefined, cause) {\n Error::class.js.asDynamic().call(this, undefined, cause)\n }\n}\n\n@Suppress(\"USELESS_ELVIS_RIGHT_IS_NULL\")\npublic actual open class Exception actual constructor(message: String?, cause: Throwable?) : Throwable(message, cause ?: null) {\n actual constructor() : this(null, null) {\n Exception::class.js.asDynamic().call(this, null, null)\n }\n\n actual constructor(message: String?) : this(message, null) {\n Exception::class.js.asDynamic().call(this, message, null)\n }\n\n actual constructor(cause: Throwable?) : this(undefined, cause) {\n Exception::class.js.asDynamic().call(this, undefined, cause)\n }\n}\n\npublic actual open class RuntimeException actual constructor(message: String?, cause: Throwable?) : Exception(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n\npublic actual open class IllegalArgumentException actual constructor(message: String?, cause: Throwable?) : RuntimeException(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n\npublic actual open class IllegalStateException actual constructor(message: String?, cause: Throwable?) : RuntimeException(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n\npublic actual open class IndexOutOfBoundsException actual constructor(message: String?) : RuntimeException(message) {\n actual constructor() : this(null)\n}\n\npublic actual open class ConcurrentModificationException actual constructor(message: String?, cause: Throwable?) : RuntimeException(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n\npublic actual open class UnsupportedOperationException actual constructor(message: String?, cause: Throwable?) : RuntimeException(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n\n\npublic actual open class NumberFormatException actual constructor(message: String?) : IllegalArgumentException(message) {\n actual constructor() : this(null)\n}\n\n\npublic actual open class NullPointerException actual constructor(message: String?) : RuntimeException(message) {\n actual constructor() : this(null)\n}\n\npublic actual open class ClassCastException actual constructor(message: String?) : RuntimeException(message) {\n actual constructor() : this(null)\n}\n\npublic actual open class AssertionError private constructor(message: String?, cause: Throwable?) : Error(message, cause) {\n actual constructor() : this(null)\n constructor(message: String?) : this(message, null)\n actual constructor(message: Any?) : this(message.toString(), message as? Throwable)\n}\n\npublic actual open class NoSuchElementException actual constructor(message: String?) : RuntimeException(message) {\n actual constructor() : this(null)\n}\n\n@SinceKotlin(\"1.3\")\npublic actual open class ArithmeticException actual constructor(message: String?) : RuntimeException(message) {\n actual constructor() : this(null)\n}\n\npublic actual open class NoWhenBranchMatchedException actual constructor(message: String?, cause: Throwable?) : RuntimeException(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n\npublic actual open class UninitializedPropertyAccessException actual constructor(message: String?, cause: Throwable?) : RuntimeException(message, cause) {\n actual constructor() : this(null, null)\n actual constructor(message: String?) : this(message, null)\n actual constructor(cause: Throwable?) : this(undefined, cause)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"GroupingKt\")\n@file:kotlin.jvm.JvmMultifileClass\n\npackage kotlin.collections\n\n/**\n * Represents a source of elements with a [keyOf] function, which can be applied to each element to get its key.\n *\n * A [Grouping] structure serves as an intermediate step in group-and-fold operations:\n * they group elements by their keys and then fold each group with some aggregating operation.\n *\n * It is created by attaching `keySelector: (T) -> K` function to a source of elements.\n * To get an instance of [Grouping] use one of `groupingBy` extension functions:\n * - [Iterable.groupingBy]\n * - [Sequence.groupingBy]\n * - [Array.groupingBy]\n * - [CharSequence.groupingBy]\n *\n * For the list of group-and-fold operations available, see the [extension functions](#extension-functions) for `Grouping`.\n */\n@SinceKotlin(\"1.1\")\npublic interface Grouping {\n /** Returns an [Iterator] over the elements of the source of this grouping. */\n fun sourceIterator(): Iterator\n /** Extracts the key of an [element]. */\n fun keyOf(element: T): K\n}\n\n/**\n * Groups elements from the [Grouping] source by key and applies [operation] to the elements of each group sequentially,\n * passing the previously accumulated value and the current element as arguments, and stores the results in a new map.\n *\n * The key for each element is provided by the [Grouping.keyOf] function.\n *\n * @param operation function is invoked on each element with the following parameters:\n * - `key`: the key of the group this element belongs to;\n * - `accumulator`: the current value of the accumulator of the group, can be `null` if it's the first `element` encountered in the group;\n * - `element`: the element from the source being aggregated;\n * - `first`: indicates whether it's the first `element` encountered in the group.\n *\n * @return a [Map] associating the key of each group with the result of aggregation of the group elements.\n * @sample samples.collections.Grouping.aggregateByRadix\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Grouping.aggregate(\n operation: (key: K, accumulator: R?, element: T, first: Boolean) -> R\n): Map {\n return aggregateTo(mutableMapOf(), operation)\n}\n\n/**\n * Groups elements from the [Grouping] source by key and applies [operation] to the elements of each group sequentially,\n * passing the previously accumulated value and the current element as arguments,\n * and stores the results in the given [destination] map.\n *\n * The key for each element is provided by the [Grouping.keyOf] function.\n *\n * @param operation a function that is invoked on each element with the following parameters:\n * - `key`: the key of the group this element belongs to;\n * - `accumulator`: the current value of the accumulator of the group, can be `null` if it's the first `element` encountered in the group;\n * - `element`: the element from the source being aggregated;\n * - `first`: indicates whether it's the first `element` encountered in the group.\n *\n * If the [destination] map already has a value corresponding to some key,\n * then the elements being aggregated for that key are never considered as `first`.\n *\n * @return the [destination] map associating the key of each group with the result of aggregation of the group elements.\n * @sample samples.collections.Grouping.aggregateByRadixTo\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > Grouping.aggregateTo(\n destination: M,\n operation: (key: K, accumulator: R?, element: T, first: Boolean) -> R\n): M {\n for (e in this.sourceIterator()) {\n val key = keyOf(e)\n val accumulator = destination[key]\n destination[key] = operation(key, accumulator, e, accumulator == null && !destination.containsKey(key))\n }\n return destination\n}\n\n/**\n * Groups elements from the [Grouping] source by key and applies [operation] to the elements of each group sequentially,\n * passing the previously accumulated value and the current element as arguments, and stores the results in a new map.\n * An initial value of accumulator is provided by [initialValueSelector] function.\n *\n * @param initialValueSelector a function that provides an initial value of accumulator for each group.\n * It's invoked with parameters:\n * - `key`: the key of the group;\n * - `element`: the first element being encountered in that group.\n *\n * @param operation a function that is invoked on each element with the following parameters:\n * - `key`: the key of the group this element belongs to;\n * - `accumulator`: the current value of the accumulator of the group;\n * - `element`: the element from the source being accumulated.\n *\n * @return a [Map] associating the key of each group with the result of accumulating the group elements.\n * @sample samples.collections.Grouping.foldByEvenLengthWithComputedInitialValue\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Grouping.fold(\n initialValueSelector: (key: K, element: T) -> R,\n operation: (key: K, accumulator: R, element: T) -> R\n): Map =\n @Suppress(\"UNCHECKED_CAST\")\n aggregate { key, acc, e, first -> operation(key, if (first) initialValueSelector(key, e) else acc as R, e) }\n\n/**\n * Groups elements from the [Grouping] source by key and applies [operation] to the elements of each group sequentially,\n * passing the previously accumulated value and the current element as arguments,\n * and stores the results in the given [destination] map.\n * An initial value of accumulator is provided by [initialValueSelector] function.\n *\n * @param initialValueSelector a function that provides an initial value of accumulator for each group.\n * It's invoked with parameters:\n * - `key`: the key of the group;\n * - `element`: the first element being encountered in that group.\n *\n * If the [destination] map already has a value corresponding to some key, that value is used as an initial value of\n * the accumulator for that group and the [initialValueSelector] function is not called for that group.\n *\n * @param operation a function that is invoked on each element with the following parameters:\n * - `key`: the key of the group this element belongs to;\n * - `accumulator`: the current value of the accumulator of the group;\n * - `element`: the element from the source being accumulated.\n *\n * @return the [destination] map associating the key of each group with the result of accumulating the group elements.\n * @sample samples.collections.Grouping.foldByEvenLengthWithComputedInitialValueTo\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > Grouping.foldTo(\n destination: M,\n initialValueSelector: (key: K, element: T) -> R,\n operation: (key: K, accumulator: R, element: T) -> R\n): M =\n @Suppress(\"UNCHECKED_CAST\")\n aggregateTo(destination) { key, acc, e, first -> operation(key, if (first) initialValueSelector(key, e) else acc as R, e) }\n\n\n/**\n * Groups elements from the [Grouping] source by key and applies [operation] to the elements of each group sequentially,\n * passing the previously accumulated value and the current element as arguments, and stores the results in a new map.\n * An initial value of accumulator is the same [initialValue] for each group.\n *\n * @param operation a function that is invoked on each element with the following parameters:\n * - `accumulator`: the current value of the accumulator of the group;\n * - `element`: the element from the source being accumulated.\n *\n * @return a [Map] associating the key of each group with the result of accumulating the group elements.\n * @sample samples.collections.Grouping.foldByEvenLengthWithConstantInitialValue\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Grouping.fold(\n initialValue: R,\n operation: (accumulator: R, element: T) -> R\n): Map =\n @Suppress(\"UNCHECKED_CAST\")\n aggregate { _, acc, e, first -> operation(if (first) initialValue else acc as R, e) }\n\n/**\n * Groups elements from the [Grouping] source by key and applies [operation] to the elements of each group sequentially,\n * passing the previously accumulated value and the current element as arguments,\n * and stores the results in the given [destination] map.\n * An initial value of accumulator is the same [initialValue] for each group.\n *\n * If the [destination] map already has a value corresponding to the key of some group,\n * that value is used as an initial value of the accumulator for that group.\n *\n * @param operation a function that is invoked on each element with the following parameters:\n * - `accumulator`: the current value of the accumulator of the group;\n * - `element`: the element from the source being accumulated.\n *\n * @return the [destination] map associating the key of each group with the result of accumulating the group elements.\n * @sample samples.collections.Grouping.foldByEvenLengthWithConstantInitialValueTo\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > Grouping.foldTo(\n destination: M,\n initialValue: R,\n operation: (accumulator: R, element: T) -> R\n): M =\n @Suppress(\"UNCHECKED_CAST\")\n aggregateTo(destination) { _, acc, e, first -> operation(if (first) initialValue else acc as R, e) }\n\n\n/**\n * Groups elements from the [Grouping] source by key and applies the reducing [operation] to the elements of each group\n * sequentially starting from the second element of the group,\n * passing the previously accumulated value and the current element as arguments,\n * and stores the results in a new map.\n * An initial value of accumulator is the first element of the group.\n *\n * @param operation a function that is invoked on each subsequent element of the group with the following parameters:\n * - `key`: the key of the group this element belongs to;\n * - `accumulator`: the current value of the accumulator of the group;\n * - `element`: the element from the source being accumulated.\n *\n * @return a [Map] associating the key of each group with the result of accumulating the group elements.\n * @sample samples.collections.Grouping.reduceByMaxVowels\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Grouping.reduce(\n operation: (key: K, accumulator: S, element: T) -> S\n): Map =\n aggregate { key, acc, e, first ->\n @Suppress(\"UNCHECKED_CAST\")\n if (first) e else operation(key, acc as S, e)\n }\n\n/**\n * Groups elements from the [Grouping] source by key and applies the reducing [operation] to the elements of each group\n * sequentially starting from the second element of the group,\n * passing the previously accumulated value and the current element as arguments,\n * and stores the results in the given [destination] map.\n * An initial value of accumulator is the first element of the group.\n *\n * If the [destination] map already has a value corresponding to the key of some group,\n * that value is used as an initial value of the accumulator for that group and the first element of that group is also\n * subjected to the [operation].\n\n * @param operation a function that is invoked on each subsequent element of the group with the following parameters:\n * - `accumulator`: the current value of the accumulator of the group;\n * - `element`: the element from the source being folded;\n *\n * @return the [destination] map associating the key of each group with the result of accumulating the group elements.\n * @sample samples.collections.Grouping.reduceByMaxVowelsTo\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > Grouping.reduceTo(\n destination: M,\n operation: (key: K, accumulator: S, element: T) -> S\n): M =\n aggregateTo(destination) { key, acc, e, first ->\n @Suppress(\"UNCHECKED_CAST\")\n if (first) e else operation(key, acc as S, e)\n }\n\n\n/**\n * Groups elements from the [Grouping] source by key and counts elements in each group to the given [destination] map.\n *\n * If the [destination] map already has a value corresponding to the key of some group,\n * that value is used as an initial value of the counter for that group.\n *\n * @return the [destination] map associating the key of each group with the count of elements in the group.\n *\n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic fun > Grouping.eachCountTo(destination: M): M =\n foldTo(destination, 0) { acc, _ -> acc + 1 }\n\n/*\n/**\n * Groups elements from the [Grouping] source by key and sums values provided by the [valueSelector] function for elements in each group\n * to the given [destination] map.\n *\n *\n * If the [destination] map already has a value corresponding to the key of some group,\n * that value is used as an initial value of the sum for that group.\n *\n * @return the [destination] map associating the key of each group with the sum of elements in the group.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > Grouping.eachSumOfTo(destination: M, valueSelector: (T) -> Int): M =\n foldTo(destination, 0) { acc, e -> acc + valueSelector(e)}\n*/\n\n\n/*\n// TODO: sum by long and by double overloads\n\npublic inline fun > Grouping.sumEachByLongTo(destination: M, valueSelector: (T) -> Long): M =\n foldTo(destination, 0L) { acc, e -> acc + valueSelector(e)}\n\npublic inline fun Grouping.sumEachByLong(valueSelector: (T) -> Long): Map =\n fold(0L) { acc, e -> acc + valueSelector(e)}\n\npublic inline fun > Grouping.sumEachByDoubleTo(destination: M, valueSelector: (T) -> Double): M =\n foldTo(destination, 0.0) { acc, e -> acc + valueSelector(e)}\n\npublic inline fun Grouping.sumEachByDouble(valueSelector: (T) -> Double): Map =\n fold(0.0) { acc, e -> acc + valueSelector(e)}\n*/\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\npackage kotlin.collections\n\n/**\n * Groups elements from the [Grouping] source by key and counts elements in each group.\n *\n * @return a [Map] associating the key of each group with the count of element in the group.\n */\n@SinceKotlin(\"1.1\")\npublic actual fun Grouping.eachCount(): Map =\n fold(0) { acc, _ -> acc + 1 }\n\n/*\n/**\n * Groups elements from the [Grouping] source by key and sums values provided by the [valueSelector] function for elements in each group.\n *\n * @return a [Map] associating the key of each group with the count of element in the group.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Grouping.eachSumOf(valueSelector: (T) -> Int): Map =\n fold(0) { acc, e -> acc + valueSelector(e) }\n*/","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\n/**\n * Exposes the JavaScript [Math object](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Math) to Kotlin.\n */\n@Deprecated(\"Use top-level functions from kotlin.math package instead.\", level = DeprecationLevel.WARNING)\npublic external object Math {\n @Deprecated(\"Use kotlin.math.PI instead.\", ReplaceWith(\"PI\", \"kotlin.math.PI\"), level = DeprecationLevel.ERROR)\n public val PI: Double\n @Deprecated(\"Use Random.nextDouble instead\", ReplaceWith(\"kotlin.random.Random.nextDouble()\", \"kotlin.random.Random\"), level = DeprecationLevel.WARNING)\n public fun random(): Double\n @Deprecated(\"Use kotlin.math.abs instead.\", ReplaceWith(\"abs(value)\", \"kotlin.math.abs\"), level = DeprecationLevel.ERROR)\n public fun abs(value: Double): Double\n @Deprecated(\"Use kotlin.math.acos instead.\", ReplaceWith(\"acos(value)\", \"kotlin.math.acos\"), level = DeprecationLevel.ERROR)\n public fun acos(value: Double): Double\n @Deprecated(\"Use kotlin.math.asin instead.\", ReplaceWith(\"asin(value)\", \"kotlin.math.asin\"), level = DeprecationLevel.ERROR)\n public fun asin(value: Double): Double\n @Deprecated(\"Use kotlin.math.atan instead.\", ReplaceWith(\"atan(value)\", \"kotlin.math.atan\"), level = DeprecationLevel.ERROR)\n public fun atan(value: Double): Double\n @Deprecated(\"Use kotlin.math.atan2 instead.\", ReplaceWith(\"atan2(y, x)\", \"kotlin.math.atan2\"), level = DeprecationLevel.ERROR)\n public fun atan2(y: Double, x: Double): Double\n @Deprecated(\"Use kotlin.math.cos instead.\", ReplaceWith(\"cos(value)\", \"kotlin.math.cos\"), level = DeprecationLevel.ERROR)\n public fun cos(value: Double): Double\n @Deprecated(\"Use kotlin.math.sin instead.\", ReplaceWith(\"sin(value)\", \"kotlin.math.sin\"), level = DeprecationLevel.ERROR)\n public fun sin(value: Double): Double\n @Deprecated(\"Use kotlin.math.exp instead.\", ReplaceWith(\"exp(value)\", \"kotlin.math.exp\"), level = DeprecationLevel.ERROR)\n public fun exp(value: Double): Double\n @Deprecated(\"Use maxOf or kotlin.math.max instead\", level = DeprecationLevel.ERROR)\n public fun max(vararg values: Int): Int\n @Deprecated(\"Use maxOf or kotlin.math.max instead\", level = DeprecationLevel.ERROR)\n public fun max(vararg values: Float): Float\n @Deprecated(\"Use maxOf or kotlin.math.max instead\", level = DeprecationLevel.ERROR)\n public fun max(vararg values: Double): Double\n @Deprecated(\"Use minOf or kotlin.math.min instead\", level = DeprecationLevel.ERROR)\n public fun min(vararg values: Int): Int\n @Deprecated(\"Use minOf or kotlin.math.min instead\", level = DeprecationLevel.ERROR)\n public fun min(vararg values: Float): Float\n @Deprecated(\"Use minOf or kotlin.math.min instead\", level = DeprecationLevel.ERROR)\n public fun min(vararg values: Double): Double\n @Deprecated(\"Use kotlin.math.sqrt instead.\", ReplaceWith(\"sqrt(value)\", \"kotlin.math.sqrt\"), level = DeprecationLevel.ERROR)\n public fun sqrt(value: Double): Double\n @Deprecated(\"Use kotlin.math.tan instead.\", ReplaceWith(\"tan(value)\", \"kotlin.math.tan\"), level = DeprecationLevel.ERROR)\n public fun tan(value: Double): Double\n @Deprecated(\"Use kotlin.math.ln instead.\", ReplaceWith(\"ln(value)\", \"kotlin.math.ln\"), level = DeprecationLevel.ERROR)\n public fun log(value: Double): Double\n @Deprecated(\"Use kotlin.math.pow instead.\", ReplaceWith(\"pow(base, exp)\", \"kotlin.math.pow\"), level = DeprecationLevel.ERROR)\n public fun pow(base: Double, exp: Double): Double\n @Deprecated(\"Use kotlin.math.round instead.\", ReplaceWith(\"round(value)\", \"kotlin.math.round\"), level = DeprecationLevel.ERROR)\n public fun round(value: Number): Int\n @Deprecated(\"Use kotlin.math.floor instead.\", ReplaceWith(\"floor(value)\", \"kotlin.math.floor\"), level = DeprecationLevel.ERROR)\n public fun floor(value: Number): Int\n @Deprecated(\"Use kotlin.math.ceil instead.\", ReplaceWith(\"ceil(value)\", \"kotlin.math.ceil\"), level = DeprecationLevel.ERROR)\n public fun ceil(value: Number): Int\n\n @PublishedApi\n internal fun trunc(value: Number): Double\n @PublishedApi\n internal fun sign(value: Number): Double\n\n @PublishedApi\n internal fun sinh(value: Double): Double\n @PublishedApi\n internal fun cosh(value: Double): Double\n @PublishedApi\n internal fun tanh(value: Double): Double\n @PublishedApi\n internal fun asinh(value: Double): Double\n @PublishedApi\n internal fun acosh(value: Double): Double\n @PublishedApi\n internal fun atanh(value: Double): Double\n\n @PublishedApi\n internal fun hypot(x: Double, y: Double): Double\n\n @PublishedApi\n internal fun expm1(value: Double): Double\n\n @PublishedApi\n internal fun log10(value: Double): Double\n @PublishedApi\n internal fun log2(value: Double): Double\n @PublishedApi\n internal fun log1p(value: Double): Double\n}\n\n/**\n * Returns the smaller of two values.\n */\n@Suppress(\"DEPRECATION\")\n@Deprecated(\"Use minOf or kotlin.math.min instead\", ReplaceWith(\"minOf(a, b)\"), level = DeprecationLevel.ERROR)\npublic fun Math.min(a: Long, b: Long): Long = if (a <= b) a else b\n\n/**\n * Returns the greater of two values.\n */\n@Suppress(\"DEPRECATION\")\n@Deprecated(\"Use maxOf or kotlin.math.max instead\", ReplaceWith(\"maxOf(a, b)\"), level = DeprecationLevel.ERROR)\npublic fun Math.max(a: Long, b: Long): Long = if (a >= b) a else b\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\n/**\n * An interface for indexing access to a collection of key-value pairs, where type of key is [String] and type of value is [Any?][Any].\n */\npublic external interface Json {\n /**\n * Calls to the function will be translated to indexing operation (square brackets) on the receiver with [propertyName] as the argument.\n *\n * E.g. for next code:\n * ```kotlin\n * fun test(j: Json, p: String) = j[\"prop\"] + j.get(p)\n * ```\n *\n * will be generated:\n * ```js\n * function test(j, p) {\n * return j[\"prop\"] + j[p];\n * }\n * ```\n */\n operator fun get(propertyName: String): Any?\n\n /**\n * Calls of the function will be translated to an assignment of [value] to the receiver indexed (with square brackets/index operation) with [propertyName].\n *\n * E.g. for the following code:\n * ```kotlin\n * fun test(j: Json, p: String, newValue: Any) {\n * j[\"prop\"] = 1\n * j.set(p, newValue)\n * }\n * ```\n *\n * will be generated:\n * ```js\n * function test(j, p, newValue) {\n * j[\"prop\"] = 1;\n * j[p] = newValue;\n * }\n * }\n * ```\n */\n operator fun set(propertyName: String, value: Any?): Unit\n}\n\n/**\n * Returns a simple JavaScript object (as [Json]) using provided key-value pairs as names and values of its properties.\n */\npublic fun json(vararg pairs: Pair): Json {\n val res: dynamic = js(\"({})\")\n for ((name, value) in pairs) {\n res[name] = value\n }\n return res\n}\n\n/**\n * Adds key-value pairs from [other] to [this].\n * Returns the original receiver.\n */\npublic fun Json.add(other: Json): Json {\n val keys: Array = js(\"Object\").keys(other)\n for (key in keys) {\n if (other.asDynamic().hasOwnProperty(key)) {\n this[key] = other[key];\n }\n }\n return this\n}\n\n/**\n * Exposes the JavaScript [JSON object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) to Kotlin.\n */\n@Suppress(\"NOT_DOCUMENTED\")\npublic external object JSON {\n public fun stringify(o: Any?): String\n public fun stringify(o: Any?, replacer: ((key: String, value: Any?) -> Any?)): String\n public fun stringify(o: Any?, replacer: ((key: String, value: Any?) -> Any?)? = definedExternally, space: Int): String\n public fun stringify(o: Any?, replacer: ((key: String, value: Any?) -> Any?)? = definedExternally, space: String): String\n public fun stringify(o: Any?, replacer: Array): String\n public fun stringify(o: Any?, replacer: Array, space: Int): String\n public fun stringify(o: Any?, replacer: Array, space: String): String\n\n public fun parse(text: String): T\n public fun parse(text: String, reviver: ((key: String, value: Any?) -> Any?)): T\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n@file:Suppress(\"DEPRECATION\", \"DEPRECATION_ERROR\")\npackage kotlin.math\n\n\nimport kotlin.internal.InlineOnly\nimport kotlin.js.Math as nativeMath\n\n\n// region ================ Double Math ========================================\n\n/** Computes the sine of the angle [x] given in radians.\n *\n * Special cases:\n * - `sin(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sin(x: Double): Double = nativeMath.sin(x)\n\n/** Computes the cosine of the angle [x] given in radians.\n *\n * Special cases:\n * - `cos(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun cos(x: Double): Double = nativeMath.cos(x)\n\n/** Computes the tangent of the angle [x] given in radians.\n *\n * Special cases:\n * - `tan(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun tan(x: Double): Double = nativeMath.tan(x)\n\n/**\n * Computes the arc sine of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `asin(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun asin(x: Double): Double = nativeMath.asin(x)\n\n/**\n * Computes the arc cosine of the value [x];\n * the returned value is an angle in the range from `0.0` to `PI` radians.\n *\n * Special cases:\n * - `acos(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun acos(x: Double): Double = nativeMath.acos(x)\n\n/**\n * Computes the arc tangent of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `atan(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun atan(x: Double): Double = nativeMath.atan(x)\n\n/**\n * Returns the angle `theta` of the polar coordinates `(r, theta)` that correspond\n * to the rectangular coordinates `(x, y)` by computing the arc tangent of the value [y] / [x];\n * the returned value is an angle in the range from `-PI` to `PI` radians.\n *\n * Special cases:\n * - `atan2(0.0, 0.0)` is `0.0`\n * - `atan2(0.0, x)` is `0.0` for `x > 0` and `PI` for `x < 0`\n * - `atan2(-0.0, x)` is `-0.0` for 'x > 0` and `-PI` for `x < 0`\n * - `atan2(y, +Inf)` is `0.0` for `0 < y < +Inf` and `-0.0` for '-Inf < y < 0`\n * - `atan2(y, -Inf)` is `PI` for `0 < y < +Inf` and `-PI` for `-Inf < y < 0`\n * - `atan2(y, 0.0)` is `PI/2` for `y > 0` and `-PI/2` for `y < 0`\n * - `atan2(+Inf, x)` is `PI/2` for finite `x`y\n * - `atan2(-Inf, x)` is `-PI/2` for finite `x`\n * - `atan2(NaN, x)` and `atan2(y, NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun atan2(y: Double, x: Double): Double = nativeMath.atan2(y, x)\n\n/**\n * Computes the hyperbolic sine of the value [x].\n *\n * Special cases:\n * - `sinh(NaN)` is `NaN`\n * - `sinh(+Inf)` is `+Inf`\n * - `sinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sinh(x: Double): Double = nativeMath.sinh(x)\n\n/**\n * Computes the hyperbolic cosine of the value [x].\n *\n * Special cases:\n * - `cosh(NaN)` is `NaN`\n * - `cosh(+Inf|-Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun cosh(x: Double): Double = nativeMath.cosh(x)\n\n/**\n * Computes the hyperbolic tangent of the value [x].\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(+Inf)` is `1.0`\n * - `tanh(-Inf)` is `-1.0`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun tanh(x: Double): Double = nativeMath.tanh(x)\n\n/**\n * Computes the inverse hyperbolic sine of the value [x].\n *\n * The returned value is `y` such that `sinh(y) == x`.\n *\n * Special cases:\n * - `asinh(NaN)` is `NaN`\n * - `asinh(+Inf)` is `+Inf`\n * - `asinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun asinh(x: Double): Double = nativeMath.asinh(x)\n\n/**\n * Computes the inverse hyperbolic cosine of the value [x].\n *\n * The returned value is positive `y` such that `cosh(y) == x`.\n *\n * Special cases:\n * - `acosh(NaN)` is `NaN`\n * - `acosh(x)` is `NaN` when `x < 1`\n * - `acosh(+Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun acosh(x: Double): Double = nativeMath.acosh(x)\n\n/**\n * Computes the inverse hyperbolic tangent of the value [x].\n *\n * The returned value is `y` such that `tanh(y) == x`.\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(x)` is `NaN` when `x > 1` or `x < -1`\n * - `tanh(1.0)` is `+Inf`\n * - `tanh(-1.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun atanh(x: Double): Double = nativeMath.atanh(x)\n\n/**\n * Computes `sqrt(x^2 + y^2)` without intermediate overflow or underflow.\n *\n * Special cases:\n * - returns `+Inf` if any of arguments is infinite\n * - returns `NaN` if any of arguments is `NaN` and the other is not infinite\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun hypot(x: Double, y: Double): Double = nativeMath.hypot(x, y)\n\n/**\n * Computes the positive square root of the value [x].\n *\n * Special cases:\n * - `sqrt(x)` is `NaN` when `x < 0` or `x` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sqrt(x: Double): Double = nativeMath.sqrt(x)\n\n/**\n * Computes Euler's number `e` raised to the power of the value [x].\n *\n * Special cases:\n * - `exp(NaN)` is `NaN`\n * - `exp(+Inf)` is `+Inf`\n * - `exp(-Inf)` is `0.0`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun exp(x: Double): Double = nativeMath.exp(x)\n\n/**\n * Computes `exp(x) - 1`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `expm1(NaN)` is `NaN`\n * - `expm1(+Inf)` is `+Inf`\n * - `expm1(-Inf)` is `-1.0`\n *\n * @see [exp] function.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun expm1(x: Double): Double = nativeMath.expm1(x)\n\n/**\n * Computes the logarithm of the value [x] to the given [base].\n *\n * Special cases:\n * - `log(x, b)` is `NaN` if either `x` or `b` are `NaN`\n * - `log(x, b)` is `NaN` when `x < 0` or `b <= 0` or `b == 1.0`\n * - `log(+Inf, +Inf)` is `NaN`\n * - `log(+Inf, b)` is `+Inf` for `b > 1` and `-Inf` for `b < 1`\n * - `log(0.0, b)` is `-Inf` for `b > 1` and `+Inf` for `b > 1`\n *\n * See also logarithm functions for common fixed bases: [ln], [log10] and [log2].\n */\n@SinceKotlin(\"1.2\")\npublic actual fun log(x: Double, base: Double): Double {\n if (base <= 0.0 || base == 1.0) return Double.NaN\n return nativeMath.log(x) / nativeMath.log(base)\n}\n\n/**\n * Computes the natural logarithm (base `E`) of the value [x].\n *\n * Special cases:\n * - `ln(NaN)` is `NaN`\n * - `ln(x)` is `NaN` when `x < 0.0`\n * - `ln(+Inf)` is `+Inf`\n * - `ln(0.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun ln(x: Double): Double = nativeMath.log(x)\n\n/**\n * Computes the common logarithm (base 10) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun log10(x: Double): Double = nativeMath.log10(x)\n\n/**\n * Computes the binary logarithm (base 2) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun log2(x: Double): Double = nativeMath.log2(x)\n\n/**\n * Computes `ln(x + 1)`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `ln1p(NaN)` is `NaN`\n * - `ln1p(x)` is `NaN` where `x < -1.0`\n * - `ln1p(-1.0)` is `-Inf`\n * - `ln1p(+Inf)` is `+Inf`\n *\n * @see [ln] function\n * @see [expm1] function\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun ln1p(x: Double): Double = nativeMath.log1p(x)\n\n/**\n * Rounds the given value [x] to an integer towards positive infinity.\n\n * @return the smallest double value that is greater than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `ceil(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun ceil(x: Double): Double = nativeMath.ceil(x).unsafeCast() // TODO: Remove unsafe cast after removing public js.math\n\n/**\n * Rounds the given value [x] to an integer towards negative infinity.\n\n * @return the largest double value that is smaller than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `floor(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun floor(x: Double): Double = nativeMath.floor(x).unsafeCast()\n\n/**\n * Rounds the given value [x] to an integer towards zero.\n *\n * @return the value [x] having its fractional part truncated.\n *\n * Special cases:\n * - `truncate(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun truncate(x: Double): Double = nativeMath.trunc(x)\n\n/**\n * Rounds the given value [x] towards the closest integer with ties rounded towards even integer.\n *\n * Special cases:\n * - `round(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun round(x: Double): Double {\n if (x % 0.5 != 0.0) {\n return nativeMath.round(x).unsafeCast()\n }\n val floor = floor(x)\n return if (floor % 2 == 0.0) floor else ceil(x)\n}\n\n/**\n * Returns the absolute value of the given value [x].\n *\n * Special cases:\n * - `abs(NaN)` is `NaN`\n *\n * @see absoluteValue extension property for [Double]\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun abs(x: Double): Double = nativeMath.abs(x)\n\n/**\n * Returns the sign of the given value [x]:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `sign(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sign(x: Double): Double = nativeMath.sign(x)\n\n\n/**\n * Returns the smaller of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun min(a: Double, b: Double): Double = nativeMath.min(a, b)\n\n/**\n * Returns the greater of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun max(a: Double, b: Double): Double = nativeMath.max(a, b)\n\n// extensions\n\n/**\n * Raises this value to the power [x].\n *\n * Special cases:\n * - `b.pow(0.0)` is `1.0`\n * - `b.pow(1.0) == b`\n * - `b.pow(NaN)` is `NaN`\n * - `NaN.pow(x)` is `NaN` for `x != 0.0`\n * - `b.pow(Inf)` is `NaN` for `abs(b) == 1.0`\n * - `b.pow(x)` is `NaN` for `b < 0` and `x` is finite and not an integer\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Double.pow(x: Double): Double = nativeMath.pow(this, x)\n\n/**\n * Raises this value to the integer power [n].\n *\n * See the other overload of [pow] for details.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Double.pow(n: Int): Double = nativeMath.pow(this, n.toDouble())\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `NaN.absoluteValue` is `NaN`\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline val Double.absoluteValue: Double get() = nativeMath.abs(this)\n\n/**\n * Returns the sign of this value:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `NaN.sign` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline val Double.sign: Double get() = nativeMath.sign(this)\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n *\n * If [sign] is `NaN` the sign of the result is undefined.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Double.withSign(sign: Double): Double {\n val thisSignBit = js(\"Kotlin\").doubleSignBit(this).unsafeCast()\n val newSignBit = js(\"Kotlin\").doubleSignBit(sign).unsafeCast()\n return if (thisSignBit == newSignBit) this else -this\n}\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Double.withSign(sign: Int): Double = this.withSign(sign.toDouble())\n\n/**\n * Returns the ulp (unit in the last place) of this value.\n *\n * An ulp is a positive distance between this value and the next nearest [Double] value larger in magnitude.\n *\n * Special Cases:\n * - `NaN.ulp` is `NaN`\n * - `x.ulp` is `+Inf` when `x` is `+Inf` or `-Inf`\n * - `0.0.ulp` is `Double.MIN_VALUE`\n */\n@SinceKotlin(\"1.2\")\npublic actual val Double.ulp: Double get() = when {\n this < 0 -> (-this).ulp\n this.isNaN() || this == Double.POSITIVE_INFINITY -> this\n this == Double.MAX_VALUE -> this - this.nextDown()\n else -> this.nextUp() - this\n}\n\n/**\n * Returns the [Double] value nearest to this value in direction of positive infinity.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Double.nextUp(): Double = when {\n this.isNaN() || this == Double.POSITIVE_INFINITY -> this\n this == 0.0 -> Double.MIN_VALUE\n else -> Double.fromBits(this.toRawBits() + if (this > 0) 1 else -1)\n}\n\n/**\n * Returns the [Double] value nearest to this value in direction of negative infinity.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Double.nextDown(): Double = when {\n this.isNaN() || this == Double.NEGATIVE_INFINITY -> this\n this == 0.0 -> -Double.MIN_VALUE\n else -> Double.fromBits(this.toRawBits() + if (this > 0) -1 else 1)\n}\n\n\n/**\n * Returns the [Double] value nearest to this value in direction from this value towards the value [to].\n *\n * Special cases:\n * - `x.nextTowards(y)` is `NaN` if either `x` or `y` are `NaN`\n * - `x.nextTowards(x) == x`\n *\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Double.nextTowards(to: Double): Double = when {\n this.isNaN() || to.isNaN() -> Double.NaN\n to == this -> to\n to > this -> this.nextUp()\n else /* to < this */ -> this.nextDown()\n}\n\n\n/**\n * Rounds this [Double] value to the nearest integer and converts the result to [Int].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToInt() == Int.MAX_VALUE` when `x > Int.MAX_VALUE`\n * - `x.roundToInt() == Int.MIN_VALUE` when `x < Int.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Double.roundToInt(): Int = when {\n isNaN() -> throw IllegalArgumentException(\"Cannot round NaN value.\")\n this > Int.MAX_VALUE -> Int.MAX_VALUE\n this < Int.MIN_VALUE -> Int.MIN_VALUE\n else -> nativeMath.round(this).unsafeCast().toInt()\n}\n\n/**\n * Rounds this [Double] value to the nearest integer and converts the result to [Long].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToLong() == Long.MAX_VALUE` when `x > Long.MAX_VALUE`\n * - `x.roundToLong() == Long.MIN_VALUE` when `x < Long.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Double.roundToLong(): Long = when {\n isNaN() -> throw IllegalArgumentException(\"Cannot round NaN value.\")\n this > Long.MAX_VALUE -> Long.MAX_VALUE\n this < Long.MIN_VALUE -> Long.MIN_VALUE\n else -> nativeMath.round(this).unsafeCast().toLong()\n}\n\n// endregion\n\n\n\n// region ================ Float Math ========================================\n\n/** Computes the sine of the angle [x] given in radians.\n *\n * Special cases:\n * - `sin(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sin(x: Float): Float = nativeMath.sin(x.toDouble()).toFloat()\n\n/** Computes the cosine of the angle [x] given in radians.\n *\n * Special cases:\n * - `cos(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun cos(x: Float): Float = nativeMath.cos(x.toDouble()).toFloat()\n\n/** Computes the tangent of the angle [x] given in radians.\n *\n * Special cases:\n * - `tan(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun tan(x: Float): Float = nativeMath.tan(x.toDouble()).toFloat()\n\n/**\n * Computes the arc sine of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `asin(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun asin(x: Float): Float = nativeMath.asin(x.toDouble()).toFloat()\n\n/**\n * Computes the arc cosine of the value [x];\n * the returned value is an angle in the range from `0.0` to `PI` radians.\n *\n * Special cases:\n * - `acos(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun acos(x: Float): Float = nativeMath.acos(x.toDouble()).toFloat()\n\n/**\n * Computes the arc tangent of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `atan(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun atan(x: Float): Float = nativeMath.atan(x.toDouble()).toFloat()\n\n/**\n * Returns the angle `theta` of the polar coordinates `(r, theta)` that correspond\n * to the rectangular coordinates `(x, y)` by computing the arc tangent of the value [y] / [x];\n * the returned value is an angle in the range from `-PI` to `PI` radians.\n *\n * Special cases:\n * - `atan2(0.0, 0.0)` is `0.0`\n * - `atan2(0.0, x)` is `0.0` for `x > 0` and `PI` for `x < 0`\n * - `atan2(-0.0, x)` is `-0.0` for 'x > 0` and `-PI` for `x < 0`\n * - `atan2(y, +Inf)` is `0.0` for `0 < y < +Inf` and `-0.0` for '-Inf < y < 0`\n * - `atan2(y, -Inf)` is `PI` for `0 < y < +Inf` and `-PI` for `-Inf < y < 0`\n * - `atan2(y, 0.0)` is `PI/2` for `y > 0` and `-PI/2` for `y < 0`\n * - `atan2(+Inf, x)` is `PI/2` for finite `x`y\n * - `atan2(-Inf, x)` is `-PI/2` for finite `x`\n * - `atan2(NaN, x)` and `atan2(y, NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun atan2(y: Float, x: Float): Float = nativeMath.atan2(y.toDouble(), x.toDouble()).toFloat()\n\n/**\n * Computes the hyperbolic sine of the value [x].\n *\n * Special cases:\n * - `sinh(NaN)` is `NaN`\n * - `sinh(+Inf)` is `+Inf`\n * - `sinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sinh(x: Float): Float = nativeMath.sinh(x.toDouble()).toFloat()\n\n/**\n * Computes the hyperbolic cosine of the value [x].\n *\n * Special cases:\n * - `cosh(NaN)` is `NaN`\n * - `cosh(+Inf|-Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun cosh(x: Float): Float = nativeMath.cosh(x.toDouble()).toFloat()\n\n/**\n * Computes the hyperbolic tangent of the value [x].\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(+Inf)` is `1.0`\n * - `tanh(-Inf)` is `-1.0`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun tanh(x: Float): Float = nativeMath.tanh(x.toDouble()).toFloat()\n\n/**\n * Computes the inverse hyperbolic sine of the value [x].\n *\n * The returned value is `y` such that `sinh(y) == x`.\n *\n * Special cases:\n * - `asinh(NaN)` is `NaN`\n * - `asinh(+Inf)` is `+Inf`\n * - `asinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun asinh(x: Float): Float = nativeMath.asinh(x.toDouble()).toFloat()\n\n/**\n * Computes the inverse hyperbolic cosine of the value [x].\n *\n * The returned value is positive `y` such that `cosh(y) == x`.\n *\n * Special cases:\n * - `acosh(NaN)` is `NaN`\n * - `acosh(x)` is `NaN` when `x < 1`\n * - `acosh(+Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun acosh(x: Float): Float = nativeMath.acosh(x.toDouble()).toFloat()\n\n/**\n * Computes the inverse hyperbolic tangent of the value [x].\n *\n * The returned value is `y` such that `tanh(y) == x`.\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(x)` is `NaN` when `x > 1` or `x < -1`\n * - `tanh(1.0)` is `+Inf`\n * - `tanh(-1.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun atanh(x: Float): Float = nativeMath.atanh(x.toDouble()).toFloat()\n\n/**\n * Computes `sqrt(x^2 + y^2)` without intermediate overflow or underflow.\n *\n * Special cases:\n * - returns `+Inf` if any of arguments is infinite\n * - returns `NaN` if any of arguments is `NaN` and the other is not infinite\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun hypot(x: Float, y: Float): Float = nativeMath.hypot(x.toDouble(), y.toDouble()).toFloat()\n\n/**\n * Computes the positive square root of the value [x].\n *\n * Special cases:\n * - `sqrt(x)` is `NaN` when `x < 0` or `x` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sqrt(x: Float): Float = nativeMath.sqrt(x.toDouble()).toFloat()\n\n/**\n * Computes Euler's number `e` raised to the power of the value [x].\n *\n * Special cases:\n * - `exp(NaN)` is `NaN`\n * - `exp(+Inf)` is `+Inf`\n * - `exp(-Inf)` is `0.0`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun exp(x: Float): Float = nativeMath.exp(x.toDouble()).toFloat()\n\n/**\n * Computes `exp(x) - 1`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `expm1(NaN)` is `NaN`\n * - `expm1(+Inf)` is `+Inf`\n * - `expm1(-Inf)` is `-1.0`\n *\n * @see [exp] function.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun expm1(x: Float): Float = nativeMath.expm1(x.toDouble()).toFloat()\n\n/**\n * Computes the logarithm of the value [x] to the given [base].\n *\n * Special cases:\n * - `log(x, b)` is `NaN` if either `x` or `b` are `NaN`\n * - `log(x, b)` is `NaN` when `x < 0` or `b <= 0` or `b == 1.0`\n * - `log(+Inf, +Inf)` is `NaN`\n * - `log(+Inf, b)` is `+Inf` for `b > 1` and `-Inf` for `b < 1`\n * - `log(0.0, b)` is `-Inf` for `b > 1` and `+Inf` for `b > 1`\n *\n * See also logarithm functions for common fixed bases: [ln], [log10] and [log2].\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun log(x: Float, base: Float): Float = log(x.toDouble(), base.toDouble()).toFloat()\n\n/**\n * Computes the natural logarithm (base `E`) of the value [x].\n *\n * Special cases:\n * - `ln(NaN)` is `NaN`\n * - `ln(x)` is `NaN` when `x < 0.0`\n * - `ln(+Inf)` is `+Inf`\n * - `ln(0.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun ln(x: Float): Float = nativeMath.log(x.toDouble()).toFloat()\n\n/**\n * Computes the common logarithm (base 10) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun log10(x: Float): Float = nativeMath.log10(x.toDouble()).toFloat()\n\n/**\n * Computes the binary logarithm (base 2) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun log2(x: Float): Float = nativeMath.log2(x.toDouble()).toFloat()\n\n/**\n * Computes `ln(a + 1)`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `ln1p(NaN)` is `NaN`\n * - `ln1p(x)` is `NaN` where `x < -1.0`\n * - `ln1p(-1.0)` is `-Inf`\n * - `ln1p(+Inf)` is `+Inf`\n *\n * @see [ln] function\n * @see [expm1] function\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun ln1p(x: Float): Float = nativeMath.log1p(x.toDouble()).toFloat()\n\n/**\n * Rounds the given value [x] to an integer towards positive infinity.\n\n * @return the smallest Float value that is greater than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `ceil(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun ceil(x: Float): Float = nativeMath.ceil(x.toDouble()).toFloat()\n\n/**\n * Rounds the given value [x] to an integer towards negative infinity.\n\n * @return the largest Float value that is smaller than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `floor(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun floor(x: Float): Float = nativeMath.floor(x.toDouble()).toFloat()\n\n/**\n * Rounds the given value [x] to an integer towards zero.\n *\n * @return the value [x] having its fractional part truncated.\n *\n * Special cases:\n * - `truncate(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun truncate(x: Float): Float = truncate(x.toDouble()).toFloat()\n\n/**\n * Rounds the given value [x] towards the closest integer with ties rounded towards even integer.\n *\n * Special cases:\n * - `round(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun round(x: Float): Float = round(x.toDouble()).toFloat()\n\n\n/**\n * Returns the absolute value of the given value [x].\n *\n * Special cases:\n * - `abs(NaN)` is `NaN`\n *\n * @see absoluteValue extension property for [Float]\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun abs(x: Float): Float = nativeMath.abs(x.toDouble()).toFloat()\n\n/**\n * Returns the sign of the given value [x]:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `sign(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun sign(x: Float): Float = nativeMath.sign(x.toDouble()).toFloat()\n\n\n\n/**\n * Returns the smaller of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun min(a: Float, b: Float): Float = nativeMath.min(a, b)\n\n/**\n * Returns the greater of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun max(a: Float, b: Float): Float = nativeMath.max(a, b)\n\n// extensions\n\n\n/**\n * Raises this value to the power [x].\n *\n * Special cases:\n * - `b.pow(0.0)` is `1.0`\n * - `b.pow(1.0) == b`\n * - `b.pow(NaN)` is `NaN`\n * - `NaN.pow(x)` is `NaN` for `x != 0.0`\n * - `b.pow(Inf)` is `NaN` for `abs(b) == 1.0`\n * - `b.pow(x)` is `NaN` for `b < 0` and `x` is finite and not an integer\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Float.pow(x: Float): Float = nativeMath.pow(this.toDouble(), x.toDouble()).toFloat()\n\n/**\n * Raises this value to the integer power [n].\n *\n * See the other overload of [pow] for details.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Float.pow(n: Int): Float = nativeMath.pow(this.toDouble(), n.toDouble()).toFloat()\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `NaN.absoluteValue` is `NaN`\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline val Float.absoluteValue: Float get() = nativeMath.abs(this.toDouble()).toFloat()\n\n/**\n * Returns the sign of this value:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `NaN.sign` is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline val Float.sign: Float get() = nativeMath.sign(this.toDouble()).toFloat()\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n *\n * If [sign] is `NaN` the sign of the result is undefined.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Float.withSign(sign: Float): Float = this.toDouble().withSign(sign.toDouble()).toFloat()\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Float.withSign(sign: Int): Float = this.toDouble().withSign(sign.toDouble()).toFloat()\n\n\n/**\n * Rounds this [Float] value to the nearest integer and converts the result to [Int].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToInt() == Int.MAX_VALUE` when `x > Int.MAX_VALUE`\n * - `x.roundToInt() == Int.MIN_VALUE` when `x < Int.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Float.roundToInt(): Int = toDouble().roundToInt()\n\n/**\n * Rounds this [Float] value to the nearest integer and converts the result to [Long].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToLong() == Long.MAX_VALUE` when `x > Long.MAX_VALUE`\n * - `x.roundToLong() == Long.MIN_VALUE` when `x < Long.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun Float.roundToLong(): Long = toDouble().roundToLong()\n\n\n// endregion\n\n// region ================ Integer Math ========================================\n\n\n/**\n * Returns the absolute value of the given value [n].\n *\n * Special cases:\n * - `abs(Int.MIN_VALUE)` is `Int.MIN_VALUE` due to an overflow\n *\n * @see absoluteValue extension property for [Int]\n */\n// TODO: remove manual 'or' when KT-19290 is fixed\n@SinceKotlin(\"1.2\")\npublic actual fun abs(n: Int): Int = if (n < 0) (-n or 0) else n\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun min(a: Int, b: Int): Int = nativeMath.min(a, b)\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline fun max(a: Int, b: Int): Int = nativeMath.max(a, b)\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `Int.MIN_VALUE.absoluteValue` is `Int.MIN_VALUE` due to an overflow\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline val Int.absoluteValue: Int get() = abs(this)\n\n/**\n * Returns the sign of this value:\n * - `-1` if the value is negative,\n * - `0` if the value is zero,\n * - `1` if the value is positive\n */\n@SinceKotlin(\"1.2\")\npublic actual val Int.sign: Int get() = when {\n this < 0 -> -1\n this > 0 -> 1\n else -> 0\n}\n\n\n\n/**\n * Returns the absolute value of the given value [n].\n *\n * Special cases:\n * - `abs(Long.MIN_VALUE)` is `Long.MIN_VALUE` due to an overflow\n *\n * @see absoluteValue extension property for [Long]\n */\n@SinceKotlin(\"1.2\")\npublic actual fun abs(n: Long): Long = if (n < 0) -n else n\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.2\")\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun min(a: Long, b: Long): Long = if (a <= b) a else b\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.2\")\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun max(a: Long, b: Long): Long = if (a >= b) a else b\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `Long.MIN_VALUE.absoluteValue` is `Long.MIN_VALUE` due to an overflow\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\npublic actual inline val Long.absoluteValue: Long get() = abs(this)\n\n/**\n * Returns the sign of this value:\n * - `-1` if the value is negative,\n * - `0` if the value is zero,\n * - `1` if the value is positive\n */\n@SinceKotlin(\"1.2\")\npublic actual val Long.sign: Int get() = when {\n this < 0 -> -1\n this > 0 -> 1\n else -> 0\n}\n\n\n// endregion\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\n/**\n * Returns `true` if the specified number is a\n * Not-a-Number (NaN) value, `false` otherwise.\n */\npublic actual fun Double.isNaN(): Boolean = this != this\n\n/**\n * Returns `true` if the specified number is a\n * Not-a-Number (NaN) value, `false` otherwise.\n */\npublic actual fun Float.isNaN(): Boolean = this != this\n\n/**\n * Returns `true` if this value is infinitely large in magnitude.\n */\npublic actual fun Double.isInfinite(): Boolean = this == Double.POSITIVE_INFINITY || this == Double.NEGATIVE_INFINITY\n\n/**\n * Returns `true` if this value is infinitely large in magnitude.\n */\npublic actual fun Float.isInfinite(): Boolean = this == Float.POSITIVE_INFINITY || this == Float.NEGATIVE_INFINITY\n\n/**\n * Returns `true` if the argument is a finite floating-point value; returns `false` otherwise (for `NaN` and infinity arguments).\n */\npublic actual fun Double.isFinite(): Boolean = !isInfinite() && !isNaN()\n\n/**\n * Returns `true` if the argument is a finite floating-point value; returns `false` otherwise (for `NaN` and infinity arguments).\n */\npublic actual fun Float.isFinite(): Boolean = !isInfinite() && !isNaN()\n\n/**\n * Returns a bit representation of the specified floating-point value as [Long]\n * according to the IEEE 754 floating-point \"double format\" bit layout.\n */\n@SinceKotlin(\"1.2\")\n@library(\"doubleToBits\")\npublic actual fun Double.toBits(): Long = definedExternally\n\n/**\n * Returns a bit representation of the specified floating-point value as [Long]\n * according to the IEEE 754 floating-point \"double format\" bit layout,\n * preserving `NaN` values exact layout.\n */\n@SinceKotlin(\"1.2\")\n@library(\"doubleToRawBits\")\npublic actual fun Double.toRawBits(): Long = definedExternally\n\n/**\n * Returns the [Double] value corresponding to a given bit representation.\n */\n@SinceKotlin(\"1.2\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Double.Companion.fromBits(bits: Long): Double = js(\"Kotlin\").doubleFromBits(bits).unsafeCast()\n\n/**\n * Returns a bit representation of the specified floating-point value as [Int]\n * according to the IEEE 754 floating-point \"single format\" bit layout.\n *\n * Note that in Kotlin/JS [Float] range is wider than \"single format\" bit layout can represent,\n * so some [Float] values may overflow, underflow or loose their accuracy after conversion to bits and back.\n */\n@SinceKotlin(\"1.2\")\n@library(\"floatToBits\")\npublic actual fun Float.toBits(): Int = definedExternally\n\n/**\n * Returns a bit representation of the specified floating-point value as [Int]\n * according to the IEEE 754 floating-point \"single format\" bit layout,\n * preserving `NaN` values exact layout.\n *\n * Note that in Kotlin/JS [Float] range is wider than \"single format\" bit layout can represent,\n * so some [Float] values may overflow, underflow or loose their accuracy after conversion to bits and back.\n */\n@SinceKotlin(\"1.2\")\n@library(\"floatToRawBits\")\npublic actual fun Float.toRawBits(): Int = definedExternally\n\n/**\n * Returns the [Float] value corresponding to a given bit representation.\n */\n@SinceKotlin(\"1.2\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Float.Companion.fromBits(bits: Int): Float = js(\"Kotlin\").floatFromBits(bits).unsafeCast()","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\nimport kotlin.internal.LowPriorityInOverloadResolution\n\n/**\n * Exposes the JavaScript [Promise object](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise) to Kotlin.\n */\n@Suppress(\"NOT_DOCUMENTED\")\npublic open external class Promise(executor: (resolve: (T) -> Unit, reject: (Throwable) -> Unit) -> Unit) {\n @LowPriorityInOverloadResolution\n public open fun then(onFulfilled: ((T) -> S)?): Promise\n\n @LowPriorityInOverloadResolution\n public open fun then(onFulfilled: ((T) -> S)?, onRejected: ((Throwable) -> S)?): Promise\n\n public open fun catch(onRejected: (Throwable) -> S): Promise\n\n companion object {\n public fun all(promise: Array>): Promise>\n\n public fun race(promise: Array>): Promise\n\n public fun reject(e: Throwable): Promise\n\n public fun resolve(e: S): Promise\n public fun resolve(e: Promise): Promise\n }\n}\n\n// It's workaround for KT-19672 since we can fix it properly until KT-11265 isn't fixed.\ninline fun Promise>.then(\n noinline onFulfilled: ((T) -> S)?\n): Promise {\n return this.unsafeCast>().then(onFulfilled)\n}\n\ninline fun Promise>.then(\n noinline onFulfilled: ((T) -> S)?,\n noinline onRejected: ((Throwable) -> S)?\n): Promise {\n return this.unsafeCast>().then(onFulfilled, onRejected)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.random\n\nimport kotlin.math.pow\n\ninternal actual fun defaultPlatformRandom(): Random =\n Random(js(\"(Math.random() * Math.pow(2, 32)) | 0\").unsafeCast())\n\n\ninternal actual fun fastLog2(value: Int): Int {\n // TODO: not so fast, make faster\n var v = value\n var log = -1\n while (v != 0) {\n v = v.ushr(1)\n log++\n }\n return log\n}\n\nprivate val INV_2_26: Double = 2.0.pow(-26)\nprivate val INV_2_53: Double = 2.0.pow(-53)\ninternal actual fun doubleFromParts(hi26: Int, low27: Int): Double =\n hi26 * INV_2_26 + low27 * INV_2_53","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\nimport getKClass\nimport kotlin.reflect.KClass\nimport kotlin.reflect.js.internal.KClassImpl\n\n/**\n * Represents the constructor of a class. Instances of `JsClass` can be passed to JavaScript APIs that expect a constructor reference.\n */\nexternal interface JsClass {\n /**\n * Returns the unqualified name of the class represented by this instance.\n */\n val name: String\n}\n\n@Deprecated(\"Use class literal and extension property `js` instead.\", replaceWith = ReplaceWith(\"T::class.js\"), level = DeprecationLevel.ERROR)\nexternal fun jsClass(): JsClass\n\n@Deprecated(\"Use class literal and extension property `js` instead.\", replaceWith = ReplaceWith(\"this::class.js\"), level = DeprecationLevel.ERROR)\nval T.jsClass: JsClass\n get() = when (jsTypeOf(this)) {\n \"string\" -> js(\"String\")\n \"number\" -> js(\"Number\")\n \"boolean\" -> js(\"Boolean\")\n else -> js(\"Object\").getPrototypeOf(this).constructor\n }\n\n/**\n * Obtains a constructor reference for the given `KClass`.\n */\nval KClass.js: JsClass\n get() = (this as KClassImpl).jClass\n\n/**\n * Obtains a `KClass` instance for the given constructor reference.\n */\nval JsClass.kotlin: KClass\n get() = getKClass(this)\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.reflect.js.internal\n\nimport kotlin.reflect.*\n\ninternal abstract class KClassImpl(\n internal open val jClass: JsClass\n) : KClass {\n override val annotations: List\n get() = TODO()\n override val constructors: Collection>\n get() = TODO()\n override val isAbstract: Boolean\n get() = TODO()\n override val isCompanion: Boolean\n get() = TODO()\n override val isData: Boolean\n get() = TODO()\n override val isFinal: Boolean\n get() = TODO()\n override val isInner: Boolean\n get() = TODO()\n override val isOpen: Boolean\n get() = TODO()\n override val isSealed: Boolean\n get() = TODO()\n override val members: Collection>\n get() = TODO()\n override val nestedClasses: Collection>\n get() = TODO()\n override val objectInstance: T?\n get() = TODO()\n override val qualifiedName: String?\n get() = TODO()\n override val supertypes: List\n get() = TODO()\n override val typeParameters: List\n get() = TODO()\n override val sealedSubclasses: List>\n get() = TODO()\n override val visibility: KVisibility?\n get() = TODO()\n\n override fun equals(other: Any?): Boolean {\n return other is KClassImpl<*> && jClass == other.jClass\n }\n\n // TODO: use FQN\n override fun hashCode(): Int = simpleName?.hashCode() ?: 0\n\n override fun toString(): String {\n // TODO: use FQN\n return \"class $simpleName\"\n }\n}\n\ninternal class SimpleKClassImpl(jClass: JsClass) : KClassImpl(jClass) {\n override val simpleName: String? = jClass.asDynamic().`$metadata$`?.simpleName.unsafeCast()\n\n override fun isInstance(value: Any?): Boolean {\n return jsIsType(value, jClass)\n }\n}\n\ninternal class PrimitiveKClassImpl(\n jClass: JsClass,\n private val givenSimpleName: String,\n private val isInstanceFunction: (Any?) -> Boolean\n) : KClassImpl(jClass) {\n override fun equals(other: Any?): Boolean {\n if (other !is PrimitiveKClassImpl<*>) return false\n return super.equals(other) && givenSimpleName == other.givenSimpleName\n }\n\n override val simpleName: String? get() = givenSimpleName\n\n override fun isInstance(value: Any?): Boolean {\n return isInstanceFunction(value)\n }\n}\n\ninternal object NothingKClassImpl : KClassImpl(js(\"Object\")) {\n override val simpleName: String = \"Nothing\"\n\n override fun isInstance(value: Any?): Boolean = false\n\n override val jClass: JsClass\n get() = throw UnsupportedOperationException(\"There's no native JS class for Nothing type\")\n\n override fun equals(other: Any?): Boolean = other === this\n\n override fun hashCode(): Int = 0\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.reflect.js.internal\n\nimport kotlin.js.JsClass\n\n@JsName(\"PrimitiveClasses\")\ninternal object PrimitiveClasses {\n @JsName(\"anyClass\")\n val anyClass = PrimitiveKClassImpl(js(\"Object\").unsafeCast>(), \"Any\", { it is Any })\n\n @JsName(\"numberClass\")\n val numberClass = PrimitiveKClassImpl(js(\"Number\").unsafeCast>(), \"Number\", { it is Number })\n\n @JsName(\"nothingClass\")\n val nothingClass = NothingKClassImpl\n\n @JsName(\"booleanClass\")\n val booleanClass = PrimitiveKClassImpl(js(\"Boolean\").unsafeCast>(), \"Boolean\", { it is Boolean })\n\n @JsName(\"byteClass\")\n val byteClass = PrimitiveKClassImpl(js(\"Number\").unsafeCast>(), \"Byte\", { it is Byte })\n\n @JsName(\"shortClass\")\n val shortClass = PrimitiveKClassImpl(js(\"Number\").unsafeCast>(), \"Short\", { it is Short })\n\n @JsName(\"intClass\")\n val intClass = PrimitiveKClassImpl(js(\"Number\").unsafeCast>(), \"Int\", { it is Int })\n\n @JsName(\"floatClass\")\n val floatClass = PrimitiveKClassImpl(js(\"Number\").unsafeCast>(), \"Float\", { it is Float })\n\n @JsName(\"doubleClass\")\n val doubleClass = PrimitiveKClassImpl(js(\"Number\").unsafeCast>(), \"Double\", { it is Double })\n\n @JsName(\"arrayClass\")\n val arrayClass = PrimitiveKClassImpl(js(\"Array\").unsafeCast>>(), \"Array\", { it is Array<*> })\n\n @JsName(\"stringClass\")\n val stringClass = PrimitiveKClassImpl(js(\"String\").unsafeCast>(), \"String\", { it is String })\n\n @JsName(\"throwableClass\")\n val throwableClass = PrimitiveKClassImpl(js(\"Error\").unsafeCast>(), \"Throwable\", { it is Throwable })\n\n @JsName(\"booleanArrayClass\")\n val booleanArrayClass = PrimitiveKClassImpl(js(\"Array\").unsafeCast>(), \"BooleanArray\", { it is BooleanArray })\n\n @JsName(\"charArrayClass\")\n val charArrayClass = PrimitiveKClassImpl(js(\"Uint16Array\").unsafeCast>(), \"CharArray\", { it is CharArray })\n\n @JsName(\"byteArrayClass\")\n val byteArrayClass = PrimitiveKClassImpl(js(\"Int8Array\").unsafeCast>(), \"ByteArray\", { it is ByteArray })\n\n @JsName(\"shortArrayClass\")\n val shortArrayClass = PrimitiveKClassImpl(js(\"Int16Array\").unsafeCast>(), \"ShortArray\", { it is ShortArray })\n\n @JsName(\"intArrayClass\")\n val intArrayClass = PrimitiveKClassImpl(js(\"Int32Array\").unsafeCast>(), \"IntArray\", { it is IntArray })\n\n @JsName(\"longArrayClass\")\n val longArrayClass = PrimitiveKClassImpl(js(\"Array\").unsafeCast>(), \"LongArray\", { it is LongArray })\n\n @JsName(\"floatArrayClass\")\n val floatArrayClass = PrimitiveKClassImpl(js(\"Float32Array\").unsafeCast>(), \"FloatArray\", { it is FloatArray })\n\n @JsName(\"doubleArrayClass\")\n val doubleArrayClass = PrimitiveKClassImpl(js(\"Float64Array\").unsafeCast>(), \"DoubleArray\", { it is DoubleArray })\n\n @JsName(\"functionClass\")\n fun functionClass(arity: Int): KClassImpl {\n return functionClasses.get(arity) ?: run {\n val result = PrimitiveKClassImpl(js(\"Function\").unsafeCast>(), \"Function$arity\",\n { jsTypeOf(it) === \"function\" && it.asDynamic().length === arity })\n functionClasses.asDynamic()[arity] = result\n result\n }\n }\n}\n\nprivate val functionClasses = arrayOfNulls>(0)","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// a package is omitted to get declarations directly under the module\n\nimport kotlin.reflect.KClass\nimport kotlin.reflect.js.internal.*\n\n@JsName(\"getKClass\")\ninternal fun getKClass(jClass: JsClass): KClass = getOrCreateKClass(jClass)\n\n@JsName(\"getKClassFromExpression\")\ninternal fun getKClassFromExpression(e: T): KClass =\n when (jsTypeOf(e)) {\n \"string\" -> PrimitiveClasses.stringClass\n \"number\" -> if (jsBitwiseOr(e, 0).asDynamic() === e) PrimitiveClasses.intClass else PrimitiveClasses.doubleClass\n \"boolean\" -> PrimitiveClasses.booleanClass\n \"function\" -> PrimitiveClasses.functionClass(e.asDynamic().length)\n else -> {\n when {\n e is BooleanArray -> PrimitiveClasses.booleanArrayClass\n e is CharArray -> PrimitiveClasses.charArrayClass\n e is ByteArray -> PrimitiveClasses.byteArrayClass\n e is ShortArray -> PrimitiveClasses.shortArrayClass\n e is IntArray -> PrimitiveClasses.intArrayClass\n e is LongArray -> PrimitiveClasses.longArrayClass\n e is FloatArray -> PrimitiveClasses.floatArrayClass\n e is DoubleArray -> PrimitiveClasses.doubleArrayClass\n e is KClass<*> -> KClass::class\n e is Array<*> -> PrimitiveClasses.arrayClass\n else -> {\n val constructor = js(\"Object\").getPrototypeOf(e).constructor\n when {\n constructor === js(\"Object\") -> PrimitiveClasses.anyClass\n constructor === js(\"Error\") -> PrimitiveClasses.throwableClass\n else -> {\n val jsClass: JsClass = constructor\n getOrCreateKClass(jsClass)\n }\n }\n }\n }\n }\n }.unsafeCast>()\n\nprivate fun getOrCreateKClass(jClass: JsClass): KClass {\n if (jClass === js(\"String\")) return PrimitiveClasses.stringClass.unsafeCast>()\n\n val metadata = jClass.asDynamic().`$metadata$`\n\n return if (metadata != null) {\n if (metadata.`$kClass$` == null) {\n val kClass = SimpleKClassImpl(jClass)\n metadata.`$kClass$` = kClass\n kClass\n } else {\n metadata.`$kClass$`\n }\n } else {\n SimpleKClassImpl(jClass)\n }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.js\n\n/**\n * Exposes the JavaScript [RegExp object](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp) to Kotlin.\n */\n@Suppress(\"NOT_DOCUMENTED\")\npublic external class RegExp(pattern: String, flags: String? = definedExternally) {\n\n public fun test(str: String): Boolean\n\n public fun exec(str: String): RegExpMatch?\n\n public override fun toString(): String\n\n /**\n * The lastIndex is a read/write integer property of regular expressions that specifies the index at which to start the next match.\n */\n public var lastIndex: Int\n\n public val global: Boolean\n public val ignoreCase: Boolean\n public val multiline: Boolean\n}\n\n/**\n * Resets the regular expression so that subsequent [RegExp.test] and [RegExp.exec] calls will match starting with the beginning of the input string.\n */\npublic fun RegExp.reset() {\n lastIndex = 0\n}\n\n// TODO: Inherit from array or introduce asArray() extension\n/**\n * Represents the return value of [RegExp.exec].\n */\n@Suppress(\"NOT_DOCUMENTED\")\npublic external interface RegExpMatch {\n public val index: Int\n public val input: String\n public val length: Int\n}\n\n/**\n * Returns the entire text matched by [RegExp.exec] if the [index] parameter is 0, or the text matched by the capturing parenthesis\n * at the given index.\n */\npublic inline operator fun RegExpMatch.get(index: Int): String? = asDynamic()[index]\n\n/**\n * Converts the result of [RegExp.exec] to an array where the first element contains the entire matched text and each subsequent\n * element is the text matched by each capturing parenthesis.\n */\npublic inline fun RegExpMatch.asArray(): Array = unsafeCast>()\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.sequences\n\ninternal actual class ConstrainedOnceSequence actual constructor(sequence: Sequence) : Sequence {\n private var sequenceRef: Sequence? = sequence\n\n actual override fun iterator(): Iterator {\n val sequence = sequenceRef ?: throw IllegalStateException(\"This sequence can be consumed only once.\")\n sequenceRef = null\n return sequence.iterator()\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n// actually \\s is enough to match all whitespace, but \\xA0 added because of different regexp behavior of Rhino used in Selenium tests\npublic actual fun Char.isWhitespace(): Boolean = toString().matches(\"[\\\\s\\\\xA0]\")\n\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.toLowerCase(): Char = js(\"String.fromCharCode\")(toInt()).toLowerCase().charCodeAt(0).unsafeCast().toChar()\n\n@kotlin.internal.InlineOnly\npublic actual inline fun Char.toUpperCase(): Char = js(\"String.fromCharCode\")(toInt()).toUpperCase().charCodeAt(0).unsafeCast().toChar()\n\n/**\n * Returns `true` if this character is a Unicode high-surrogate code unit (also known as leading-surrogate code unit).\n */\npublic actual fun Char.isHighSurrogate(): Boolean = this in Char.MIN_HIGH_SURROGATE..Char.MAX_HIGH_SURROGATE\n\n/**\n * Returns `true` if this character is a Unicode low-surrogate code unit (also known as trailing-surrogate code unit).\n */\npublic actual fun Char.isLowSurrogate(): Boolean = this in Char.MIN_LOW_SURROGATE..Char.MAX_LOW_SURROGATE\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n\n/**\n * Returns `true` if the contents of this string is equal to the word \"true\", ignoring case, and `false` otherwise.\n */\npublic actual fun String.toBoolean(): Boolean = toLowerCase() == \"true\"\n\n/**\n * Parses the string as a signed [Byte] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toByte(): Byte = toByteOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a signed [Byte] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toByte(radix: Int): Byte = toByteOrNull(radix) ?: numberFormatError(this)\n\n\n/**\n * Parses the string as a [Short] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toShort(): Short = toShortOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Short] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toShort(radix: Int): Short = toShortOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as an [Int] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toInt(): Int = toIntOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as an [Int] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toInt(radix: Int): Int = toIntOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Long] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toLong(): Long = toLongOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Long] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toLong(radix: Int): Long = toLongOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Double] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toDouble(): Double = (+(this.asDynamic())).unsafeCast().also {\n if (it.isNaN() && !this.isNaN() || it == 0.0 && this.isBlank())\n numberFormatError(this)\n}\n\n/**\n * Parses the string as a [Float] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toFloat(): Float = toDouble().unsafeCast()\n\n/**\n * Parses the string as a [Double] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\npublic actual fun String.toDoubleOrNull(): Double? = (+(this.asDynamic())).unsafeCast().takeIf {\n !(it.isNaN() && !this.isNaN() || it == 0.0 && this.isBlank())\n}\n\n/**\n * Parses the string as a [Float] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toFloatOrNull(): Float? = toDoubleOrNull().unsafeCast()\n\n/**\n * Returns a string representation of this [Byte] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Byte.toString(radix: Int): String = this.toInt().toString(radix)\n\n/**\n * Returns a string representation of this [Short] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Short.toString(radix: Int): String = this.toInt().toString(radix)\n\n/**\n * Returns a string representation of this [Long] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Long.toString(radix: Int): String = asDynamic().toString(checkRadix(radix))\n\n/**\n * Returns a string representation of this [Int] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Int.toString(radix: Int): String = asDynamic().toString(checkRadix(radix))\n\nprivate fun String.isNaN(): Boolean = when (this.toLowerCase()) {\n \"nan\", \"+nan\", \"-nan\" -> true\n else -> false\n}\n\n/**\n * Checks whether the given [radix] is valid radix for string to number and number to string conversion.\n */\n@PublishedApi\ninternal actual fun checkRadix(radix: Int): Int {\n if (radix !in 2..36) {\n throw IllegalArgumentException(\"radix $radix was not in valid range 2..36\")\n }\n return radix\n}\n\ninternal actual fun digitOf(char: Char, radix: Int): Int = when {\n char >= '0' && char <= '9' -> char - '0'\n char >= 'A' && char <= 'Z' -> char - 'A' + 10\n char >= 'a' && char <= 'z' -> char - 'a' + 10\n else -> -1\n}.let { if (it >= radix) -1 else it }\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\nimport kotlin.js.RegExp\n\n/**\n * Provides enumeration values to use to set regular expression options.\n */\npublic actual enum class RegexOption(val value: String) {\n /** Enables case-insensitive matching. */\n IGNORE_CASE(\"i\"),\n /** Enables multiline mode.\n *\n * In multiline mode the expressions `^` and `$` match just after or just before,\n * respectively, a line terminator or the end of the input sequence. */\n MULTILINE(\"m\")\n}\n\n\n/**\n * Represents the results from a single capturing group within a [MatchResult] of [Regex].\n *\n * @param value The value of captured group.\n */\npublic actual data class MatchGroup(actual val value: String)\n\n\n/**\n * Represents a compiled regular expression.\n * Provides functions to match strings in text with a pattern, replace the found occurrences and split text around matches.\n *\n * For pattern syntax reference see [MDN RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Special_characters_meaning_in_regular_expressions)\n * and [http://www.w3schools.com/jsref/jsref_obj_regexp.asp](https://www.w3schools.com/jsref/jsref_obj_regexp.asp).\n *\n * @constructor Creates a regular expression from the specified [pattern] string and the specified set of [options].\n */\npublic actual class Regex actual constructor(pattern: String, options: Set) {\n\n /** Creates a regular expression from the specified [pattern] string and the specified single [option]. */\n public actual constructor(pattern: String, option: RegexOption) : this(pattern, setOf(option))\n\n /** Creates a regular expression from the specified [pattern] string and the default options. */\n public actual constructor(pattern: String) : this(pattern, emptySet())\n\n\n /** The pattern string of this regular expression. */\n public actual val pattern: String = pattern\n /** The set of options that were used to create this regular expression. */\n public actual val options: Set = options.toSet()\n private val nativePattern: RegExp = RegExp(pattern, options.map { it.value }.joinToString(separator = \"\") + \"g\")\n\n /** Indicates whether the regular expression matches the entire [input]. */\n public actual infix fun matches(input: CharSequence): Boolean {\n nativePattern.reset()\n val match = nativePattern.exec(input.toString())\n return match != null && match.index == 0 && nativePattern.lastIndex == input.length\n }\n\n /** Indicates whether the regular expression can find at least one match in the specified [input]. */\n public actual fun containsMatchIn(input: CharSequence): Boolean {\n nativePattern.reset()\n return nativePattern.test(input.toString())\n }\n\n /** Returns the first match of a regular expression in the [input], beginning at the specified [startIndex].\n *\n * @param startIndex An index to start search with, by default 0. Must be not less than zero and not greater than `input.length()`\n * @return An instance of [MatchResult] if match was found or `null` otherwise.\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n public actual fun find(input: CharSequence, startIndex: Int = 0): MatchResult? = nativePattern.findNext(input.toString(), startIndex)\n\n /**\n * Returns a sequence of all occurrences of a regular expression within the [input] string, beginning at the specified [startIndex].\n *\n * @sample samples.text.Regexps.findAll\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n public actual fun findAll(input: CharSequence, startIndex: Int = 0): Sequence =\n generateSequence({ find(input, startIndex) }, { match -> match.next() })\n\n /**\n * Attempts to match the entire [input] CharSequence against the pattern.\n *\n * @return An instance of [MatchResult] if the entire input matches or `null` otherwise.\n */\n public actual fun matchEntire(input: CharSequence): MatchResult? {\n if (pattern.startsWith('^') && pattern.endsWith('$'))\n return find(input)\n else\n return Regex(\"^${pattern.trimStart('^').trimEnd('$')}$\", options).find(input)\n }\n\n /**\n * Replaces all occurrences of this regular expression in the specified [input] string with specified [replacement] expression.\n *\n * @param replacement A replacement expression that can include substitutions. See [String.prototype.replace](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) function docs for details.\n */\n public actual fun replace(input: CharSequence, replacement: String): String = input.toString().nativeReplace(nativePattern, replacement)\n\n /**\n * Replaces all occurrences of this regular expression in the specified [input] string with the result of\n * the given function [transform] that takes [MatchResult] and returns a string to be used as a\n * replacement for that match.\n */\n public actual inline fun replace(input: CharSequence, transform: (MatchResult) -> CharSequence): String {\n var match = find(input)\n if (match == null) return input.toString()\n\n var lastStart = 0\n val length = input.length\n val sb = StringBuilder(length)\n do {\n val foundMatch = match!!\n sb.append(input, lastStart, foundMatch.range.start)\n sb.append(transform(foundMatch))\n lastStart = foundMatch.range.endInclusive + 1\n match = foundMatch.next()\n } while (lastStart < length && match != null)\n\n if (lastStart < length) {\n sb.append(input, lastStart, length)\n }\n\n return sb.toString()\n }\n\n /**\n * Replaces the first occurrence of this regular expression in the specified [input] string with specified [replacement] expression.\n *\n * @param replacement A replacement expression that can include substitutions. See [String.prototype.replace](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) function docs for details.\n */\n public actual fun replaceFirst(input: CharSequence, replacement: String): String {\n val nonGlobalOptions = options.map { it.value }.joinToString(separator = \"\")\n return input.toString().nativeReplace(RegExp(pattern, nonGlobalOptions), replacement)\n }\n\n /**\n * Splits the [input] CharSequence around matches of this regular expression.\n *\n * @param limit Non-negative value specifying the maximum number of substrings the string can be split to.\n * Zero by default means no limit is set.\n */\n @Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n public actual fun split(input: CharSequence, limit: Int = 0): List {\n require(limit >= 0) { \"Limit must be non-negative, but was $limit\" }\n val matches = findAll(input).let { if (limit == 0) it else it.take(limit - 1) }\n val result = mutableListOf()\n var lastStart = 0\n\n for (match in matches) {\n result.add(input.subSequence(lastStart, match.range.start).toString())\n lastStart = match.range.endInclusive + 1\n }\n result.add(input.subSequence(lastStart, input.length).toString())\n return result\n }\n\n\n /**\n * Returns the string representation of this regular expression, namely the [pattern] of this regular expression.\n *\n * Note that another regular expression constructed from the same pattern string may have different [options]\n * and may match strings differently.\n */\n public override fun toString(): String = nativePattern.toString()\n\n actual companion object {\n /**\n * Returns a regular expression that matches the specified [literal] string literally.\n * No characters of that string will have special meaning when searching for an occurrence of the regular expression.\n */\n public actual fun fromLiteral(literal: String): Regex = Regex(escape(literal))\n\n /**\n * Returns a regular expression pattern string that matches the specified [literal] string literally.\n * No characters of that string will have special meaning when searching for an occurrence of the regular expression.\n */\n public actual fun escape(literal: String): String = literal.nativeReplace(patternEscape, \"\\\\$&\")\n\n /**\n * Returns a literal replacement expression for the specified [literal] string.\n * No characters of that string will have special meaning when it is used as a replacement string in [Regex.replace] function.\n */\n public actual fun escapeReplacement(literal: String): String = literal.nativeReplace(replacementEscape, \"$$$$\")\n\n private val patternEscape = RegExp(\"\"\"[-\\\\^$*+?.()|[\\]{}]\"\"\", \"g\")\n private val replacementEscape = RegExp(\"\"\"\\$\"\"\", \"g\")\n }\n}\n\n/** Creates a regular expression from the specified [pattern] string and the specified single [option]. */\n@Deprecated(\"Provided for binary compatibility\", level = DeprecationLevel.HIDDEN)\n@JsName(\"Regex_sb3q2\\$\")\npublic fun Regex_0(pattern: String, option: RegexOption): Regex = Regex(pattern, setOf(option))\n\n/** Creates a regular expression from the specified [pattern] string and the default options. */\n@Deprecated(\"Provided for binary compatibility\", level = DeprecationLevel.HIDDEN)\n@JsName(\"Regex_61zpoe\\$\")\npublic fun Regex_1(pattern: String): Regex = Regex(pattern, emptySet())\n\n\n\n\nprivate fun RegExp.findNext(input: String, from: Int): MatchResult? {\n this.lastIndex = from\n val match = exec(input)\n if (match == null) return null\n val range = match.index..lastIndex - 1\n\n return object : MatchResult {\n override val range: IntRange = range\n override val value: String\n get() = match[0]!!\n\n override val groups: MatchGroupCollection = object : MatchGroupCollection, AbstractCollection() {\n override val size: Int get() = match.length\n override fun iterator(): Iterator = indices.asSequence().map { this[it] }.iterator()\n override fun get(index: Int): MatchGroup? = match[index]?.let { MatchGroup(it) }\n }\n\n\n private var groupValues_: List? = null\n\n override val groupValues: List\n get() {\n if (groupValues_ == null) {\n groupValues_ = object : AbstractList() {\n override val size: Int get() = match.length\n override fun get(index: Int): String = match[index] ?: \"\"\n }\n }\n return groupValues_!!\n }\n\n override fun next(): MatchResult? = this@findNext.findNext(input, if (range.isEmpty()) range.start + 1 else range.endInclusive + 1)\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\nimport kotlin.js.RegExp\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeIndexOf(ch: Char, fromIndex: Int): Int = nativeIndexOf(ch.toString(), fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeLastIndexOf(ch: Char, fromIndex: Int): Int = nativeLastIndexOf(ch.toString(), fromIndex)\n\n/**\n * Returns `true` if this string starts with the specified prefix.\n */\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.startsWith(prefix: String, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase)\n return nativeStartsWith(prefix, 0)\n else\n return regionMatches(0, prefix, 0, prefix.length, ignoreCase)\n}\n\n/**\n * Returns `true` if a substring of this string starting at the specified offset [startIndex] starts with the specified prefix.\n */\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.startsWith(prefix: String, startIndex: Int, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase)\n return nativeStartsWith(prefix, startIndex)\n else\n return regionMatches(startIndex, prefix, 0, prefix.length, ignoreCase)\n}\n\n/**\n * Returns `true` if this string ends with the specified suffix.\n */\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.endsWith(suffix: String, ignoreCase: Boolean = false): Boolean {\n if (!ignoreCase)\n return nativeEndsWith(suffix)\n else\n return regionMatches(length - suffix.length, suffix, 0, suffix.length, ignoreCase)\n}\n\n\npublic fun String.matches(regex: String): Boolean {\n val result = this.match(regex)\n return result != null && result.size != 0\n}\n\npublic actual fun CharSequence.isBlank(): Boolean = length == 0 || (if (this is String) this else this.toString()).matches(\"^[\\\\s\\\\xA0]+$\")\n\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String?.equals(other: String?, ignoreCase: Boolean = false): Boolean =\n if (this == null)\n other == null\n else if (!ignoreCase)\n this == other\n else\n other != null && this.toLowerCase() == other.toLowerCase()\n\n\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun CharSequence.regionMatches(thisOffset: Int, other: CharSequence, otherOffset: Int, length: Int, ignoreCase: Boolean = false): Boolean =\n regionMatchesImpl(thisOffset, other, otherOffset, length, ignoreCase)\n\n\n/**\n * Returns a copy of this string having its first letter uppercased, or the original string,\n * if it's empty or already starts with an upper case letter.\n *\n * @sample samples.text.Strings.capitalize\n */\npublic actual fun String.capitalize(): String {\n return if (isNotEmpty()) substring(0, 1).toUpperCase() + substring(1) else this\n}\n\n/**\n * Returns a copy of this string having its first letter lowercased, or the original string,\n * if it's empty or already starts with a lower case letter.\n *\n * @sample samples.text.Strings.decapitalize\n */\npublic actual fun String.decapitalize(): String {\n return if (isNotEmpty()) substring(0, 1).toLowerCase() + substring(1) else this\n}\n\n/**\n * Returns a string containing this char sequence repeated [n] times.\n * @throws [IllegalArgumentException] when n < 0.\n */\npublic actual fun CharSequence.repeat(n: Int): String {\n require(n >= 0) { \"Count 'n' must be non-negative, but was $n.\" }\n return when (n) {\n 0 -> \"\"\n 1 -> this.toString()\n else -> {\n var result = \"\"\n if (!isEmpty()) {\n var s = this.toString()\n var count = n\n while (true) {\n if ((count and 1) == 1) {\n result += s\n }\n count = count ushr 1\n if (count == 0) {\n break\n }\n s += s\n }\n }\n return result\n }\n }\n}\n\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.replace(oldValue: String, newValue: String, ignoreCase: Boolean = false): String =\n nativeReplace(RegExp(Regex.escape(oldValue), if (ignoreCase) \"gi\" else \"g\"), Regex.escapeReplacement(newValue))\n\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.replace(oldChar: Char, newChar: Char, ignoreCase: Boolean = false): String =\n nativeReplace(RegExp(Regex.escape(oldChar.toString()), if (ignoreCase) \"gi\" else \"g\"), newChar.toString())\n\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.replaceFirst(oldValue: String, newValue: String, ignoreCase: Boolean = false): String =\n nativeReplace(RegExp(Regex.escape(oldValue), if (ignoreCase) \"i\" else \"\"), Regex.escapeReplacement(newValue))\n\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.replaceFirst(oldChar: Char, newChar: Char, ignoreCase: Boolean = false): String =\n nativeReplace(RegExp(Regex.escape(oldChar.toString()), if (ignoreCase) \"i\" else \"\"), newChar.toString())\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n\npublic actual interface Appendable {\n public actual fun append(csq: CharSequence?): Appendable\n public actual fun append(csq: CharSequence?, start: Int, end: Int): Appendable\n public actual fun append(c: Char): Appendable\n}\n\npublic actual class StringBuilder(content: String = \"\") : Appendable, CharSequence {\n actual constructor(capacity: Int) : this() {}\n\n actual constructor(content: CharSequence) : this(content.toString()) {}\n\n actual constructor() : this(\"\")\n\n private var string: String = content\n\n actual override val length: Int\n get() = string.asDynamic().length\n\n actual override fun get(index: Int): Char =\n string.getOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, length: $length}\") }\n\n actual override fun subSequence(startIndex: Int, endIndex: Int): CharSequence = string.substring(startIndex, endIndex)\n\n actual override fun append(c: Char): StringBuilder {\n string += c\n return this\n }\n\n actual override fun append(csq: CharSequence?): StringBuilder {\n string += csq.toString()\n return this\n }\n\n actual override fun append(csq: CharSequence?, start: Int, end: Int): StringBuilder {\n string += csq.toString().substring(start, end)\n return this\n }\n\n actual fun append(obj: Any?): StringBuilder {\n string += obj.toString()\n return this\n }\n\n actual fun reverse(): StringBuilder {\n string = string.asDynamic().split(\"\").reverse().join(\"\")\n return this\n }\n\n /**\n * Clears the content of this string builder making it empty.\n *\n * @sample samples.text.Strings.clearStringBuilder\n */\n @SinceKotlin(\"1.3\")\n public fun clear(): StringBuilder {\n string = \"\"\n return this\n }\n\n override fun toString(): String = string\n}\n\n\n\n/**\n * Clears the content of this string builder making it empty.\n *\n * @sample samples.text.Strings.clearStringBuilder\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\", \"NOTHING_TO_INLINE\")\npublic actual inline fun StringBuilder.clear(): StringBuilder = this.clear()\n\n\n/**\n * The exception thrown when a character encoding or decoding error occurs.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual open class CharacterCodingException(message: String?) : Exception(message) {\n actual constructor() : this(null)\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n/** Returns the negative [size] if [throwOnMalformed] is false, throws [CharacterCodingException] otherwise. */\n@UseExperimental(ExperimentalStdlibApi::class)\nprivate fun malformed(size: Int, index: Int, throwOnMalformed: Boolean): Int {\n if (throwOnMalformed) throw CharacterCodingException(\"Malformed sequence starting at ${index - 1}\")\n return -size\n}\n\n/**\n * Returns code point corresponding to UTF-16 surrogate pair,\n * where the first of the pair is the [high] and the second is in the [string] at the [index].\n * Returns zero if the pair is malformed and [throwOnMalformed] is false.\n *\n * @throws CharacterCodingException if the pair is malformed and [throwOnMalformed] is true.\n */\nprivate fun codePointFromSurrogate(string: String, high: Int, index: Int, endIndex: Int, throwOnMalformed: Boolean): Int {\n if (high !in 0xD800..0xDBFF || index >= endIndex) {\n return malformed(0, index, throwOnMalformed)\n }\n val low = string[index].toInt()\n if (low !in 0xDC00..0xDFFF) {\n return malformed(0, index, throwOnMalformed)\n }\n return 0x10000 + ((high and 0x3FF) shl 10) or (low and 0x3FF)\n}\n\n/**\n * Returns code point corresponding to UTF-8 sequence of two bytes,\n * where the first byte of the sequence is the [byte1] and the second byte is in the [bytes] array at the [index].\n * Returns zero if the sequence is malformed and [throwOnMalformed] is false.\n *\n * @throws CharacterCodingException if the sequence of two bytes is malformed and [throwOnMalformed] is true.\n */\nprivate fun codePointFrom2(bytes: ByteArray, byte1: Int, index: Int, endIndex: Int, throwOnMalformed: Boolean): Int {\n if (byte1 and 0x1E == 0 || index >= endIndex) {\n return malformed(0, index, throwOnMalformed)\n }\n val byte2 = bytes[index].toInt()\n if (byte2 and 0xC0 != 0x80) {\n return malformed(0, index, throwOnMalformed)\n }\n return (byte1 shl 6) xor byte2 xor 0xF80\n}\n\n/**\n * Returns code point corresponding to UTF-8 sequence of three bytes,\n * where the first byte of the sequence is the [byte1] and the others are in the [bytes] array starting from the [index].\n * Returns a non-positive value indicating number of bytes from [bytes] included in malformed sequence\n * if the sequence is malformed and [throwOnMalformed] is false.\n *\n * @throws CharacterCodingException if the sequence of three bytes is malformed and [throwOnMalformed] is true.\n */\nprivate fun codePointFrom3(bytes: ByteArray, byte1: Int, index: Int, endIndex: Int, throwOnMalformed: Boolean): Int {\n if (index >= endIndex) {\n return malformed(0, index, throwOnMalformed)\n }\n\n val byte2 = bytes[index].toInt()\n if (byte1 and 0xF == 0) {\n if (byte2 and 0xE0 != 0xA0) {\n // Non-shortest form\n return malformed(0, index, throwOnMalformed)\n }\n } else if (byte1 and 0xF == 0xD) {\n if (byte2 and 0xE0 != 0x80) {\n // Surrogate code point\n return malformed(0, index, throwOnMalformed)\n }\n } else if (byte2 and 0xC0 != 0x80) {\n return malformed(0, index, throwOnMalformed)\n }\n\n if (index + 1 == endIndex) {\n return malformed(1, index, throwOnMalformed)\n }\n val byte3 = bytes[index + 1].toInt()\n if (byte3 and 0xC0 != 0x80) {\n return malformed(1, index, throwOnMalformed)\n }\n\n return (byte1 shl 12) xor (byte2 shl 6) xor byte3 xor -0x1E080\n}\n\n/**\n * Returns code point corresponding to UTF-8 sequence of four bytes,\n * where the first byte of the sequence is the [byte1] and the others are in the [bytes] array starting from the [index].\n * Returns a non-positive value indicating number of bytes from [bytes] included in malformed sequence\n * if the sequence is malformed and [throwOnMalformed] is false.\n *\n * @throws CharacterCodingException if the sequence of four bytes is malformed and [throwOnMalformed] is true.\n */\nprivate fun codePointFrom4(bytes: ByteArray, byte1: Int, index: Int, endIndex: Int, throwOnMalformed: Boolean): Int {\n if (index >= endIndex) {\n malformed(0, index, throwOnMalformed)\n }\n\n val byte2 = bytes[index].toInt()\n if (byte1 and 0xF == 0x0) {\n if (byte2 and 0xF0 <= 0x80) {\n // Non-shortest form\n return malformed(0, index, throwOnMalformed)\n }\n } else if (byte1 and 0xF == 0x4) {\n if (byte2 and 0xF0 != 0x80) {\n // Out of Unicode code points domain (larger than U+10FFFF)\n return malformed(0, index, throwOnMalformed)\n }\n } else if (byte1 and 0xF > 0x4) {\n return malformed(0, index, throwOnMalformed)\n } else if (byte2 and 0xC0 != 0x80) {\n return malformed(0, index, throwOnMalformed)\n }\n\n if (index + 1 == endIndex) {\n return malformed(1, index, throwOnMalformed)\n }\n val byte3 = bytes[index + 1].toInt()\n if (byte3 and 0xC0 != 0x80) {\n return malformed(1, index, throwOnMalformed)\n }\n\n if (index + 2 == endIndex) {\n return malformed(2, index, throwOnMalformed)\n }\n val byte4 = bytes[index + 2].toInt()\n if (byte4 and 0xC0 != 0x80) {\n return malformed(2, index, throwOnMalformed)\n }\n return (byte1 shl 18) xor (byte2 shl 12) xor (byte3 shl 6) xor byte4 xor 0x381F80\n}\n\n/**\n * Maximum number of bytes needed to encode a single char.\n *\n * Code points in `0..0x7F` are encoded in a single byte.\n * Code points in `0x80..0x7FF` are encoded in two bytes.\n * Code points in `0x800..0xD7FF` or in `0xE000..0xFFFF` are encoded in three bytes.\n * Surrogate code points in `0xD800..0xDFFF` are not Unicode scalar values, therefore aren't encoded.\n * Code points in `0x10000..0x10FFFF` are represented by a pair of surrogate `Char`s and are encoded in four bytes.\n */\nprivate const val MAX_BYTES_PER_CHAR = 3\n\n/**\n * The byte sequence a malformed UTF-16 char sequence is replaced by.\n */\nprivate val REPLACEMENT_BYTE_SEQUENCE: ByteArray = byteArrayOf(0xEF.toByte(), 0xBF.toByte(), 0xBD.toByte())\n\n/**\n * Encodes the [string] using UTF-8 and returns the resulting [ByteArray].\n *\n * @param string the string to encode.\n * @param startIndex the start offset (inclusive) of the substring to encode.\n * @param endIndex the end offset (exclusive) of the substring to encode.\n * @param throwOnMalformed whether to throw on malformed char sequence or replace by the [REPLACEMENT_BYTE_SEQUENCE].\n *\n * @throws CharacterCodingException if the char sequence is malformed and [throwOnMalformed] is true.\n */\ninternal fun encodeUtf8(string: String, startIndex: Int, endIndex: Int, throwOnMalformed: Boolean): ByteArray {\n require(startIndex >= 0 && endIndex <= string.length && startIndex <= endIndex)\n\n val bytes = ByteArray((endIndex - startIndex) * MAX_BYTES_PER_CHAR)\n var byteIndex = 0\n var charIndex = startIndex\n\n while (charIndex < endIndex) {\n val code = string[charIndex++].toInt()\n when {\n code < 0x80 ->\n bytes[byteIndex++] = code.toByte()\n code < 0x800 -> {\n bytes[byteIndex++] = ((code shr 6) or 0xC0).toByte()\n bytes[byteIndex++] = ((code and 0x3F) or 0x80).toByte()\n }\n code < 0xD800 || code >= 0xE000 -> {\n bytes[byteIndex++] = ((code shr 12) or 0xE0).toByte()\n bytes[byteIndex++] = (((code shr 6) and 0x3F) or 0x80).toByte()\n bytes[byteIndex++] = ((code and 0x3F) or 0x80).toByte()\n }\n else -> { // Surrogate char value\n val codePoint = codePointFromSurrogate(string, code, charIndex, endIndex, throwOnMalformed)\n if (codePoint <= 0) {\n bytes[byteIndex++] = REPLACEMENT_BYTE_SEQUENCE[0]\n bytes[byteIndex++] = REPLACEMENT_BYTE_SEQUENCE[1]\n bytes[byteIndex++] = REPLACEMENT_BYTE_SEQUENCE[2]\n } else {\n bytes[byteIndex++] = ((codePoint shr 18) or 0xF0).toByte()\n bytes[byteIndex++] = (((codePoint shr 12) and 0x3F) or 0x80).toByte()\n bytes[byteIndex++] = (((codePoint shr 6) and 0x3F) or 0x80).toByte()\n bytes[byteIndex++] = ((codePoint and 0x3F) or 0x80).toByte()\n charIndex++\n }\n }\n }\n }\n\n return if (bytes.size == byteIndex) bytes else bytes.copyOf(byteIndex)\n}\n\n/**\n * The character a malformed UTF-8 byte sequence is replaced by.\n */\nprivate const val REPLACEMENT_CHAR = '\\uFFFD'\n\n/**\n * Decodes the UTF-8 [bytes] array and returns the resulting [String].\n *\n * @param bytes the byte array to decode.\n * @param startIndex the start offset (inclusive) of the array to be decoded.\n * @param endIndex the end offset (exclusive) of the array to be encoded.\n * @param throwOnMalformed whether to throw on malformed byte sequence or replace by the [REPLACEMENT_CHAR].\n *\n * @throws CharacterCodingException if the array is malformed UTF-8 byte sequence and [throwOnMalformed] is true.\n */\ninternal fun decodeUtf8(bytes: ByteArray, startIndex: Int, endIndex: Int, throwOnMalformed: Boolean): String {\n require(startIndex >= 0 && endIndex <= bytes.size && startIndex <= endIndex)\n\n var byteIndex = startIndex\n val stringBuilder = StringBuilder()\n\n while (byteIndex < endIndex) {\n val byte = bytes[byteIndex++].toInt()\n when {\n byte >= 0 ->\n stringBuilder.append(byte.toChar())\n byte shr 5 == -2 -> {\n val code = codePointFrom2(bytes, byte, byteIndex, endIndex, throwOnMalformed)\n if (code <= 0) {\n stringBuilder.append(REPLACEMENT_CHAR)\n byteIndex += -code\n } else {\n stringBuilder.append(code.toChar())\n byteIndex += 1\n }\n }\n byte shr 4 == -2 -> {\n val code = codePointFrom3(bytes, byte, byteIndex, endIndex, throwOnMalformed)\n if (code <= 0) {\n stringBuilder.append(REPLACEMENT_CHAR)\n byteIndex += -code\n } else {\n stringBuilder.append(code.toChar())\n byteIndex += 2\n }\n }\n byte shr 3 == -2 -> {\n val code = codePointFrom4(bytes, byte, byteIndex, endIndex, throwOnMalformed)\n if (code <= 0) {\n stringBuilder.append(REPLACEMENT_CHAR)\n byteIndex += -code\n } else {\n val high = (code - 0x10000) shr 10 or 0xD800\n val low = (code and 0x3FF) or 0xDC00\n stringBuilder.append(high.toChar())\n stringBuilder.append(low.toChar())\n byteIndex += 3\n }\n }\n else -> {\n malformed(0, byteIndex, throwOnMalformed)\n stringBuilder.append(REPLACEMENT_CHAR)\n }\n }\n }\n\n return stringBuilder.toString()\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.khronos.webgl\n\nimport kotlin.js.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\npublic external interface WebGLContextAttributes {\n var alpha: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var depth: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var stencil: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var antialias: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var premultipliedAlpha: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var preserveDrawingBuffer: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var preferLowPowerToHighPerformance: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var failIfMajorPerformanceCaveat: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun WebGLContextAttributes(alpha: Boolean? = true, depth: Boolean? = true, stencil: Boolean? = false, antialias: Boolean? = true, premultipliedAlpha: Boolean? = true, preserveDrawingBuffer: Boolean? = false, preferLowPowerToHighPerformance: Boolean? = false, failIfMajorPerformanceCaveat: Boolean? = false): WebGLContextAttributes {\n val o = js(\"({})\")\n\n o[\"alpha\"] = alpha\n o[\"depth\"] = depth\n o[\"stencil\"] = stencil\n o[\"antialias\"] = antialias\n o[\"premultipliedAlpha\"] = premultipliedAlpha\n o[\"preserveDrawingBuffer\"] = preserveDrawingBuffer\n o[\"preferLowPowerToHighPerformance\"] = preferLowPowerToHighPerformance\n o[\"failIfMajorPerformanceCaveat\"] = failIfMajorPerformanceCaveat\n\n return o\n}\n\npublic external abstract class WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLBuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLBuffer) to Kotlin\n */\npublic external abstract class WebGLBuffer : WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLFramebuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLFramebuffer) to Kotlin\n */\npublic external abstract class WebGLFramebuffer : WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLProgram](https://developer.mozilla.org/en/docs/Web/API/WebGLProgram) to Kotlin\n */\npublic external abstract class WebGLProgram : WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLRenderbuffer](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderbuffer) to Kotlin\n */\npublic external abstract class WebGLRenderbuffer : WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLShader](https://developer.mozilla.org/en/docs/Web/API/WebGLShader) to Kotlin\n */\npublic external abstract class WebGLShader : WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLTexture](https://developer.mozilla.org/en/docs/Web/API/WebGLTexture) to Kotlin\n */\npublic external abstract class WebGLTexture : WebGLObject {\n}\n\n/**\n * Exposes the JavaScript [WebGLUniformLocation](https://developer.mozilla.org/en/docs/Web/API/WebGLUniformLocation) to Kotlin\n */\npublic external abstract class WebGLUniformLocation {\n}\n\n/**\n * Exposes the JavaScript [WebGLActiveInfo](https://developer.mozilla.org/en/docs/Web/API/WebGLActiveInfo) to Kotlin\n */\npublic external abstract class WebGLActiveInfo {\n open val size: Int\n open val type: Int\n open val name: String\n}\n\n/**\n * Exposes the JavaScript [WebGLShaderPrecisionFormat](https://developer.mozilla.org/en/docs/Web/API/WebGLShaderPrecisionFormat) to Kotlin\n */\npublic external abstract class WebGLShaderPrecisionFormat {\n open val rangeMin: Int\n open val rangeMax: Int\n open val precision: Int\n}\n\npublic external interface WebGLRenderingContextBase {\n val canvas: HTMLCanvasElement\n val drawingBufferWidth: Int\n val drawingBufferHeight: Int\n fun getContextAttributes(): WebGLContextAttributes?\n fun isContextLost(): Boolean\n fun getSupportedExtensions(): Array?\n fun getExtension(name: String): dynamic\n fun activeTexture(texture: Int): Unit\n fun attachShader(program: WebGLProgram?, shader: WebGLShader?): Unit\n fun bindAttribLocation(program: WebGLProgram?, index: Int, name: String): Unit\n fun bindBuffer(target: Int, buffer: WebGLBuffer?): Unit\n fun bindFramebuffer(target: Int, framebuffer: WebGLFramebuffer?): Unit\n fun bindRenderbuffer(target: Int, renderbuffer: WebGLRenderbuffer?): Unit\n fun bindTexture(target: Int, texture: WebGLTexture?): Unit\n fun blendColor(red: Float, green: Float, blue: Float, alpha: Float): Unit\n fun blendEquation(mode: Int): Unit\n fun blendEquationSeparate(modeRGB: Int, modeAlpha: Int): Unit\n fun blendFunc(sfactor: Int, dfactor: Int): Unit\n fun blendFuncSeparate(srcRGB: Int, dstRGB: Int, srcAlpha: Int, dstAlpha: Int): Unit\n fun bufferData(target: Int, size: Int, usage: Int): Unit\n fun bufferData(target: Int, data: BufferDataSource?, usage: Int): Unit\n fun bufferSubData(target: Int, offset: Int, data: BufferDataSource?): Unit\n fun checkFramebufferStatus(target: Int): Int\n fun clear(mask: Int): Unit\n fun clearColor(red: Float, green: Float, blue: Float, alpha: Float): Unit\n fun clearDepth(depth: Float): Unit\n fun clearStencil(s: Int): Unit\n fun colorMask(red: Boolean, green: Boolean, blue: Boolean, alpha: Boolean): Unit\n fun compileShader(shader: WebGLShader?): Unit\n fun compressedTexImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, data: ArrayBufferView): Unit\n fun compressedTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, data: ArrayBufferView): Unit\n fun copyTexImage2D(target: Int, level: Int, internalformat: Int, x: Int, y: Int, width: Int, height: Int, border: Int): Unit\n fun copyTexSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, x: Int, y: Int, width: Int, height: Int): Unit\n fun createBuffer(): WebGLBuffer?\n fun createFramebuffer(): WebGLFramebuffer?\n fun createProgram(): WebGLProgram?\n fun createRenderbuffer(): WebGLRenderbuffer?\n fun createShader(type: Int): WebGLShader?\n fun createTexture(): WebGLTexture?\n fun cullFace(mode: Int): Unit\n fun deleteBuffer(buffer: WebGLBuffer?): Unit\n fun deleteFramebuffer(framebuffer: WebGLFramebuffer?): Unit\n fun deleteProgram(program: WebGLProgram?): Unit\n fun deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?): Unit\n fun deleteShader(shader: WebGLShader?): Unit\n fun deleteTexture(texture: WebGLTexture?): Unit\n fun depthFunc(func: Int): Unit\n fun depthMask(flag: Boolean): Unit\n fun depthRange(zNear: Float, zFar: Float): Unit\n fun detachShader(program: WebGLProgram?, shader: WebGLShader?): Unit\n fun disable(cap: Int): Unit\n fun disableVertexAttribArray(index: Int): Unit\n fun drawArrays(mode: Int, first: Int, count: Int): Unit\n fun drawElements(mode: Int, count: Int, type: Int, offset: Int): Unit\n fun enable(cap: Int): Unit\n fun enableVertexAttribArray(index: Int): Unit\n fun finish(): Unit\n fun flush(): Unit\n fun framebufferRenderbuffer(target: Int, attachment: Int, renderbuffertarget: Int, renderbuffer: WebGLRenderbuffer?): Unit\n fun framebufferTexture2D(target: Int, attachment: Int, textarget: Int, texture: WebGLTexture?, level: Int): Unit\n fun frontFace(mode: Int): Unit\n fun generateMipmap(target: Int): Unit\n fun getActiveAttrib(program: WebGLProgram?, index: Int): WebGLActiveInfo?\n fun getActiveUniform(program: WebGLProgram?, index: Int): WebGLActiveInfo?\n fun getAttachedShaders(program: WebGLProgram?): Array?\n fun getAttribLocation(program: WebGLProgram?, name: String): Int\n fun getBufferParameter(target: Int, pname: Int): Any?\n fun getParameter(pname: Int): Any?\n fun getError(): Int\n fun getFramebufferAttachmentParameter(target: Int, attachment: Int, pname: Int): Any?\n fun getProgramParameter(program: WebGLProgram?, pname: Int): Any?\n fun getProgramInfoLog(program: WebGLProgram?): String?\n fun getRenderbufferParameter(target: Int, pname: Int): Any?\n fun getShaderParameter(shader: WebGLShader?, pname: Int): Any?\n fun getShaderPrecisionFormat(shadertype: Int, precisiontype: Int): WebGLShaderPrecisionFormat?\n fun getShaderInfoLog(shader: WebGLShader?): String?\n fun getShaderSource(shader: WebGLShader?): String?\n fun getTexParameter(target: Int, pname: Int): Any?\n fun getUniform(program: WebGLProgram?, location: WebGLUniformLocation?): Any?\n fun getUniformLocation(program: WebGLProgram?, name: String): WebGLUniformLocation?\n fun getVertexAttrib(index: Int, pname: Int): Any?\n fun getVertexAttribOffset(index: Int, pname: Int): Int\n fun hint(target: Int, mode: Int): Unit\n fun isBuffer(buffer: WebGLBuffer?): Boolean\n fun isEnabled(cap: Int): Boolean\n fun isFramebuffer(framebuffer: WebGLFramebuffer?): Boolean\n fun isProgram(program: WebGLProgram?): Boolean\n fun isRenderbuffer(renderbuffer: WebGLRenderbuffer?): Boolean\n fun isShader(shader: WebGLShader?): Boolean\n fun isTexture(texture: WebGLTexture?): Boolean\n fun lineWidth(width: Float): Unit\n fun linkProgram(program: WebGLProgram?): Unit\n fun pixelStorei(pname: Int, param: Int): Unit\n fun polygonOffset(factor: Float, units: Float): Unit\n fun readPixels(x: Int, y: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?): Unit\n fun renderbufferStorage(target: Int, internalformat: Int, width: Int, height: Int): Unit\n fun sampleCoverage(value: Float, invert: Boolean): Unit\n fun scissor(x: Int, y: Int, width: Int, height: Int): Unit\n fun shaderSource(shader: WebGLShader?, source: String): Unit\n fun stencilFunc(func: Int, ref: Int, mask: Int): Unit\n fun stencilFuncSeparate(face: Int, func: Int, ref: Int, mask: Int): Unit\n fun stencilMask(mask: Int): Unit\n fun stencilMaskSeparate(face: Int, mask: Int): Unit\n fun stencilOp(fail: Int, zfail: Int, zpass: Int): Unit\n fun stencilOpSeparate(face: Int, fail: Int, zfail: Int, zpass: Int): Unit\n fun texImage2D(target: Int, level: Int, internalformat: Int, width: Int, height: Int, border: Int, format: Int, type: Int, pixels: ArrayBufferView?): Unit\n fun texImage2D(target: Int, level: Int, internalformat: Int, format: Int, type: Int, source: TexImageSource?): Unit\n fun texParameterf(target: Int, pname: Int, param: Float): Unit\n fun texParameteri(target: Int, pname: Int, param: Int): Unit\n fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, width: Int, height: Int, format: Int, type: Int, pixels: ArrayBufferView?): Unit\n fun texSubImage2D(target: Int, level: Int, xoffset: Int, yoffset: Int, format: Int, type: Int, source: TexImageSource?): Unit\n fun uniform1f(location: WebGLUniformLocation?, x: Float): Unit\n fun uniform1fv(location: WebGLUniformLocation?, v: Float32Array): Unit\n fun uniform1fv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform1i(location: WebGLUniformLocation?, x: Int): Unit\n fun uniform1iv(location: WebGLUniformLocation?, v: Int32Array): Unit\n fun uniform1iv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform2f(location: WebGLUniformLocation?, x: Float, y: Float): Unit\n fun uniform2fv(location: WebGLUniformLocation?, v: Float32Array): Unit\n fun uniform2fv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform2i(location: WebGLUniformLocation?, x: Int, y: Int): Unit\n fun uniform2iv(location: WebGLUniformLocation?, v: Int32Array): Unit\n fun uniform2iv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform3f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float): Unit\n fun uniform3fv(location: WebGLUniformLocation?, v: Float32Array): Unit\n fun uniform3fv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform3i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int): Unit\n fun uniform3iv(location: WebGLUniformLocation?, v: Int32Array): Unit\n fun uniform3iv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform4f(location: WebGLUniformLocation?, x: Float, y: Float, z: Float, w: Float): Unit\n fun uniform4fv(location: WebGLUniformLocation?, v: Float32Array): Unit\n fun uniform4fv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniform4i(location: WebGLUniformLocation?, x: Int, y: Int, z: Int, w: Int): Unit\n fun uniform4iv(location: WebGLUniformLocation?, v: Int32Array): Unit\n fun uniform4iv(location: WebGLUniformLocation?, v: Array): Unit\n fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array): Unit\n fun uniformMatrix2fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array): Unit\n fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array): Unit\n fun uniformMatrix3fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array): Unit\n fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Float32Array): Unit\n fun uniformMatrix4fv(location: WebGLUniformLocation?, transpose: Boolean, value: Array): Unit\n fun useProgram(program: WebGLProgram?): Unit\n fun validateProgram(program: WebGLProgram?): Unit\n fun vertexAttrib1f(index: Int, x: Float): Unit\n fun vertexAttrib1fv(index: Int, values: dynamic): Unit\n fun vertexAttrib2f(index: Int, x: Float, y: Float): Unit\n fun vertexAttrib2fv(index: Int, values: dynamic): Unit\n fun vertexAttrib3f(index: Int, x: Float, y: Float, z: Float): Unit\n fun vertexAttrib3fv(index: Int, values: dynamic): Unit\n fun vertexAttrib4f(index: Int, x: Float, y: Float, z: Float, w: Float): Unit\n fun vertexAttrib4fv(index: Int, values: dynamic): Unit\n fun vertexAttribPointer(index: Int, size: Int, type: Int, normalized: Boolean, stride: Int, offset: Int): Unit\n fun viewport(x: Int, y: Int, width: Int, height: Int): Unit\n\n companion object {\n val DEPTH_BUFFER_BIT: Int\n val STENCIL_BUFFER_BIT: Int\n val COLOR_BUFFER_BIT: Int\n val POINTS: Int\n val LINES: Int\n val LINE_LOOP: Int\n val LINE_STRIP: Int\n val TRIANGLES: Int\n val TRIANGLE_STRIP: Int\n val TRIANGLE_FAN: Int\n val ZERO: Int\n val ONE: Int\n val SRC_COLOR: Int\n val ONE_MINUS_SRC_COLOR: Int\n val SRC_ALPHA: Int\n val ONE_MINUS_SRC_ALPHA: Int\n val DST_ALPHA: Int\n val ONE_MINUS_DST_ALPHA: Int\n val DST_COLOR: Int\n val ONE_MINUS_DST_COLOR: Int\n val SRC_ALPHA_SATURATE: Int\n val FUNC_ADD: Int\n val BLEND_EQUATION: Int\n val BLEND_EQUATION_RGB: Int\n val BLEND_EQUATION_ALPHA: Int\n val FUNC_SUBTRACT: Int\n val FUNC_REVERSE_SUBTRACT: Int\n val BLEND_DST_RGB: Int\n val BLEND_SRC_RGB: Int\n val BLEND_DST_ALPHA: Int\n val BLEND_SRC_ALPHA: Int\n val CONSTANT_COLOR: Int\n val ONE_MINUS_CONSTANT_COLOR: Int\n val CONSTANT_ALPHA: Int\n val ONE_MINUS_CONSTANT_ALPHA: Int\n val BLEND_COLOR: Int\n val ARRAY_BUFFER: Int\n val ELEMENT_ARRAY_BUFFER: Int\n val ARRAY_BUFFER_BINDING: Int\n val ELEMENT_ARRAY_BUFFER_BINDING: Int\n val STREAM_DRAW: Int\n val STATIC_DRAW: Int\n val DYNAMIC_DRAW: Int\n val BUFFER_SIZE: Int\n val BUFFER_USAGE: Int\n val CURRENT_VERTEX_ATTRIB: Int\n val FRONT: Int\n val BACK: Int\n val FRONT_AND_BACK: Int\n val CULL_FACE: Int\n val BLEND: Int\n val DITHER: Int\n val STENCIL_TEST: Int\n val DEPTH_TEST: Int\n val SCISSOR_TEST: Int\n val POLYGON_OFFSET_FILL: Int\n val SAMPLE_ALPHA_TO_COVERAGE: Int\n val SAMPLE_COVERAGE: Int\n val NO_ERROR: Int\n val INVALID_ENUM: Int\n val INVALID_VALUE: Int\n val INVALID_OPERATION: Int\n val OUT_OF_MEMORY: Int\n val CW: Int\n val CCW: Int\n val LINE_WIDTH: Int\n val ALIASED_POINT_SIZE_RANGE: Int\n val ALIASED_LINE_WIDTH_RANGE: Int\n val CULL_FACE_MODE: Int\n val FRONT_FACE: Int\n val DEPTH_RANGE: Int\n val DEPTH_WRITEMASK: Int\n val DEPTH_CLEAR_VALUE: Int\n val DEPTH_FUNC: Int\n val STENCIL_CLEAR_VALUE: Int\n val STENCIL_FUNC: Int\n val STENCIL_FAIL: Int\n val STENCIL_PASS_DEPTH_FAIL: Int\n val STENCIL_PASS_DEPTH_PASS: Int\n val STENCIL_REF: Int\n val STENCIL_VALUE_MASK: Int\n val STENCIL_WRITEMASK: Int\n val STENCIL_BACK_FUNC: Int\n val STENCIL_BACK_FAIL: Int\n val STENCIL_BACK_PASS_DEPTH_FAIL: Int\n val STENCIL_BACK_PASS_DEPTH_PASS: Int\n val STENCIL_BACK_REF: Int\n val STENCIL_BACK_VALUE_MASK: Int\n val STENCIL_BACK_WRITEMASK: Int\n val VIEWPORT: Int\n val SCISSOR_BOX: Int\n val COLOR_CLEAR_VALUE: Int\n val COLOR_WRITEMASK: Int\n val UNPACK_ALIGNMENT: Int\n val PACK_ALIGNMENT: Int\n val MAX_TEXTURE_SIZE: Int\n val MAX_VIEWPORT_DIMS: Int\n val SUBPIXEL_BITS: Int\n val RED_BITS: Int\n val GREEN_BITS: Int\n val BLUE_BITS: Int\n val ALPHA_BITS: Int\n val DEPTH_BITS: Int\n val STENCIL_BITS: Int\n val POLYGON_OFFSET_UNITS: Int\n val POLYGON_OFFSET_FACTOR: Int\n val TEXTURE_BINDING_2D: Int\n val SAMPLE_BUFFERS: Int\n val SAMPLES: Int\n val SAMPLE_COVERAGE_VALUE: Int\n val SAMPLE_COVERAGE_INVERT: Int\n val COMPRESSED_TEXTURE_FORMATS: Int\n val DONT_CARE: Int\n val FASTEST: Int\n val NICEST: Int\n val GENERATE_MIPMAP_HINT: Int\n val BYTE: Int\n val UNSIGNED_BYTE: Int\n val SHORT: Int\n val UNSIGNED_SHORT: Int\n val INT: Int\n val UNSIGNED_INT: Int\n val FLOAT: Int\n val DEPTH_COMPONENT: Int\n val ALPHA: Int\n val RGB: Int\n val RGBA: Int\n val LUMINANCE: Int\n val LUMINANCE_ALPHA: Int\n val UNSIGNED_SHORT_4_4_4_4: Int\n val UNSIGNED_SHORT_5_5_5_1: Int\n val UNSIGNED_SHORT_5_6_5: Int\n val FRAGMENT_SHADER: Int\n val VERTEX_SHADER: Int\n val MAX_VERTEX_ATTRIBS: Int\n val MAX_VERTEX_UNIFORM_VECTORS: Int\n val MAX_VARYING_VECTORS: Int\n val MAX_COMBINED_TEXTURE_IMAGE_UNITS: Int\n val MAX_VERTEX_TEXTURE_IMAGE_UNITS: Int\n val MAX_TEXTURE_IMAGE_UNITS: Int\n val MAX_FRAGMENT_UNIFORM_VECTORS: Int\n val SHADER_TYPE: Int\n val DELETE_STATUS: Int\n val LINK_STATUS: Int\n val VALIDATE_STATUS: Int\n val ATTACHED_SHADERS: Int\n val ACTIVE_UNIFORMS: Int\n val ACTIVE_ATTRIBUTES: Int\n val SHADING_LANGUAGE_VERSION: Int\n val CURRENT_PROGRAM: Int\n val NEVER: Int\n val LESS: Int\n val EQUAL: Int\n val LEQUAL: Int\n val GREATER: Int\n val NOTEQUAL: Int\n val GEQUAL: Int\n val ALWAYS: Int\n val KEEP: Int\n val REPLACE: Int\n val INCR: Int\n val DECR: Int\n val INVERT: Int\n val INCR_WRAP: Int\n val DECR_WRAP: Int\n val VENDOR: Int\n val RENDERER: Int\n val VERSION: Int\n val NEAREST: Int\n val LINEAR: Int\n val NEAREST_MIPMAP_NEAREST: Int\n val LINEAR_MIPMAP_NEAREST: Int\n val NEAREST_MIPMAP_LINEAR: Int\n val LINEAR_MIPMAP_LINEAR: Int\n val TEXTURE_MAG_FILTER: Int\n val TEXTURE_MIN_FILTER: Int\n val TEXTURE_WRAP_S: Int\n val TEXTURE_WRAP_T: Int\n val TEXTURE_2D: Int\n val TEXTURE: Int\n val TEXTURE_CUBE_MAP: Int\n val TEXTURE_BINDING_CUBE_MAP: Int\n val TEXTURE_CUBE_MAP_POSITIVE_X: Int\n val TEXTURE_CUBE_MAP_NEGATIVE_X: Int\n val TEXTURE_CUBE_MAP_POSITIVE_Y: Int\n val TEXTURE_CUBE_MAP_NEGATIVE_Y: Int\n val TEXTURE_CUBE_MAP_POSITIVE_Z: Int\n val TEXTURE_CUBE_MAP_NEGATIVE_Z: Int\n val MAX_CUBE_MAP_TEXTURE_SIZE: Int\n val TEXTURE0: Int\n val TEXTURE1: Int\n val TEXTURE2: Int\n val TEXTURE3: Int\n val TEXTURE4: Int\n val TEXTURE5: Int\n val TEXTURE6: Int\n val TEXTURE7: Int\n val TEXTURE8: Int\n val TEXTURE9: Int\n val TEXTURE10: Int\n val TEXTURE11: Int\n val TEXTURE12: Int\n val TEXTURE13: Int\n val TEXTURE14: Int\n val TEXTURE15: Int\n val TEXTURE16: Int\n val TEXTURE17: Int\n val TEXTURE18: Int\n val TEXTURE19: Int\n val TEXTURE20: Int\n val TEXTURE21: Int\n val TEXTURE22: Int\n val TEXTURE23: Int\n val TEXTURE24: Int\n val TEXTURE25: Int\n val TEXTURE26: Int\n val TEXTURE27: Int\n val TEXTURE28: Int\n val TEXTURE29: Int\n val TEXTURE30: Int\n val TEXTURE31: Int\n val ACTIVE_TEXTURE: Int\n val REPEAT: Int\n val CLAMP_TO_EDGE: Int\n val MIRRORED_REPEAT: Int\n val FLOAT_VEC2: Int\n val FLOAT_VEC3: Int\n val FLOAT_VEC4: Int\n val INT_VEC2: Int\n val INT_VEC3: Int\n val INT_VEC4: Int\n val BOOL: Int\n val BOOL_VEC2: Int\n val BOOL_VEC3: Int\n val BOOL_VEC4: Int\n val FLOAT_MAT2: Int\n val FLOAT_MAT3: Int\n val FLOAT_MAT4: Int\n val SAMPLER_2D: Int\n val SAMPLER_CUBE: Int\n val VERTEX_ATTRIB_ARRAY_ENABLED: Int\n val VERTEX_ATTRIB_ARRAY_SIZE: Int\n val VERTEX_ATTRIB_ARRAY_STRIDE: Int\n val VERTEX_ATTRIB_ARRAY_TYPE: Int\n val VERTEX_ATTRIB_ARRAY_NORMALIZED: Int\n val VERTEX_ATTRIB_ARRAY_POINTER: Int\n val VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: Int\n val IMPLEMENTATION_COLOR_READ_TYPE: Int\n val IMPLEMENTATION_COLOR_READ_FORMAT: Int\n val COMPILE_STATUS: Int\n val LOW_FLOAT: Int\n val MEDIUM_FLOAT: Int\n val HIGH_FLOAT: Int\n val LOW_INT: Int\n val MEDIUM_INT: Int\n val HIGH_INT: Int\n val FRAMEBUFFER: Int\n val RENDERBUFFER: Int\n val RGBA4: Int\n val RGB5_A1: Int\n val RGB565: Int\n val DEPTH_COMPONENT16: Int\n val STENCIL_INDEX: Int\n val STENCIL_INDEX8: Int\n val DEPTH_STENCIL: Int\n val RENDERBUFFER_WIDTH: Int\n val RENDERBUFFER_HEIGHT: Int\n val RENDERBUFFER_INTERNAL_FORMAT: Int\n val RENDERBUFFER_RED_SIZE: Int\n val RENDERBUFFER_GREEN_SIZE: Int\n val RENDERBUFFER_BLUE_SIZE: Int\n val RENDERBUFFER_ALPHA_SIZE: Int\n val RENDERBUFFER_DEPTH_SIZE: Int\n val RENDERBUFFER_STENCIL_SIZE: Int\n val FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: Int\n val FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: Int\n val FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: Int\n val FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: Int\n val COLOR_ATTACHMENT0: Int\n val DEPTH_ATTACHMENT: Int\n val STENCIL_ATTACHMENT: Int\n val DEPTH_STENCIL_ATTACHMENT: Int\n val NONE: Int\n val FRAMEBUFFER_COMPLETE: Int\n val FRAMEBUFFER_INCOMPLETE_ATTACHMENT: Int\n val FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: Int\n val FRAMEBUFFER_INCOMPLETE_DIMENSIONS: Int\n val FRAMEBUFFER_UNSUPPORTED: Int\n val FRAMEBUFFER_BINDING: Int\n val RENDERBUFFER_BINDING: Int\n val MAX_RENDERBUFFER_SIZE: Int\n val INVALID_FRAMEBUFFER_OPERATION: Int\n val UNPACK_FLIP_Y_WEBGL: Int\n val UNPACK_PREMULTIPLY_ALPHA_WEBGL: Int\n val CONTEXT_LOST_WEBGL: Int\n val UNPACK_COLORSPACE_CONVERSION_WEBGL: Int\n val BROWSER_DEFAULT_WEBGL: Int\n }\n}\n\n/**\n * Exposes the JavaScript [WebGLRenderingContext](https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext) to Kotlin\n */\npublic external abstract class WebGLRenderingContext : WebGLRenderingContextBase, RenderingContext {\n\n companion object {\n val DEPTH_BUFFER_BIT: Int\n val STENCIL_BUFFER_BIT: Int\n val COLOR_BUFFER_BIT: Int\n val POINTS: Int\n val LINES: Int\n val LINE_LOOP: Int\n val LINE_STRIP: Int\n val TRIANGLES: Int\n val TRIANGLE_STRIP: Int\n val TRIANGLE_FAN: Int\n val ZERO: Int\n val ONE: Int\n val SRC_COLOR: Int\n val ONE_MINUS_SRC_COLOR: Int\n val SRC_ALPHA: Int\n val ONE_MINUS_SRC_ALPHA: Int\n val DST_ALPHA: Int\n val ONE_MINUS_DST_ALPHA: Int\n val DST_COLOR: Int\n val ONE_MINUS_DST_COLOR: Int\n val SRC_ALPHA_SATURATE: Int\n val FUNC_ADD: Int\n val BLEND_EQUATION: Int\n val BLEND_EQUATION_RGB: Int\n val BLEND_EQUATION_ALPHA: Int\n val FUNC_SUBTRACT: Int\n val FUNC_REVERSE_SUBTRACT: Int\n val BLEND_DST_RGB: Int\n val BLEND_SRC_RGB: Int\n val BLEND_DST_ALPHA: Int\n val BLEND_SRC_ALPHA: Int\n val CONSTANT_COLOR: Int\n val ONE_MINUS_CONSTANT_COLOR: Int\n val CONSTANT_ALPHA: Int\n val ONE_MINUS_CONSTANT_ALPHA: Int\n val BLEND_COLOR: Int\n val ARRAY_BUFFER: Int\n val ELEMENT_ARRAY_BUFFER: Int\n val ARRAY_BUFFER_BINDING: Int\n val ELEMENT_ARRAY_BUFFER_BINDING: Int\n val STREAM_DRAW: Int\n val STATIC_DRAW: Int\n val DYNAMIC_DRAW: Int\n val BUFFER_SIZE: Int\n val BUFFER_USAGE: Int\n val CURRENT_VERTEX_ATTRIB: Int\n val FRONT: Int\n val BACK: Int\n val FRONT_AND_BACK: Int\n val CULL_FACE: Int\n val BLEND: Int\n val DITHER: Int\n val STENCIL_TEST: Int\n val DEPTH_TEST: Int\n val SCISSOR_TEST: Int\n val POLYGON_OFFSET_FILL: Int\n val SAMPLE_ALPHA_TO_COVERAGE: Int\n val SAMPLE_COVERAGE: Int\n val NO_ERROR: Int\n val INVALID_ENUM: Int\n val INVALID_VALUE: Int\n val INVALID_OPERATION: Int\n val OUT_OF_MEMORY: Int\n val CW: Int\n val CCW: Int\n val LINE_WIDTH: Int\n val ALIASED_POINT_SIZE_RANGE: Int\n val ALIASED_LINE_WIDTH_RANGE: Int\n val CULL_FACE_MODE: Int\n val FRONT_FACE: Int\n val DEPTH_RANGE: Int\n val DEPTH_WRITEMASK: Int\n val DEPTH_CLEAR_VALUE: Int\n val DEPTH_FUNC: Int\n val STENCIL_CLEAR_VALUE: Int\n val STENCIL_FUNC: Int\n val STENCIL_FAIL: Int\n val STENCIL_PASS_DEPTH_FAIL: Int\n val STENCIL_PASS_DEPTH_PASS: Int\n val STENCIL_REF: Int\n val STENCIL_VALUE_MASK: Int\n val STENCIL_WRITEMASK: Int\n val STENCIL_BACK_FUNC: Int\n val STENCIL_BACK_FAIL: Int\n val STENCIL_BACK_PASS_DEPTH_FAIL: Int\n val STENCIL_BACK_PASS_DEPTH_PASS: Int\n val STENCIL_BACK_REF: Int\n val STENCIL_BACK_VALUE_MASK: Int\n val STENCIL_BACK_WRITEMASK: Int\n val VIEWPORT: Int\n val SCISSOR_BOX: Int\n val COLOR_CLEAR_VALUE: Int\n val COLOR_WRITEMASK: Int\n val UNPACK_ALIGNMENT: Int\n val PACK_ALIGNMENT: Int\n val MAX_TEXTURE_SIZE: Int\n val MAX_VIEWPORT_DIMS: Int\n val SUBPIXEL_BITS: Int\n val RED_BITS: Int\n val GREEN_BITS: Int\n val BLUE_BITS: Int\n val ALPHA_BITS: Int\n val DEPTH_BITS: Int\n val STENCIL_BITS: Int\n val POLYGON_OFFSET_UNITS: Int\n val POLYGON_OFFSET_FACTOR: Int\n val TEXTURE_BINDING_2D: Int\n val SAMPLE_BUFFERS: Int\n val SAMPLES: Int\n val SAMPLE_COVERAGE_VALUE: Int\n val SAMPLE_COVERAGE_INVERT: Int\n val COMPRESSED_TEXTURE_FORMATS: Int\n val DONT_CARE: Int\n val FASTEST: Int\n val NICEST: Int\n val GENERATE_MIPMAP_HINT: Int\n val BYTE: Int\n val UNSIGNED_BYTE: Int\n val SHORT: Int\n val UNSIGNED_SHORT: Int\n val INT: Int\n val UNSIGNED_INT: Int\n val FLOAT: Int\n val DEPTH_COMPONENT: Int\n val ALPHA: Int\n val RGB: Int\n val RGBA: Int\n val LUMINANCE: Int\n val LUMINANCE_ALPHA: Int\n val UNSIGNED_SHORT_4_4_4_4: Int\n val UNSIGNED_SHORT_5_5_5_1: Int\n val UNSIGNED_SHORT_5_6_5: Int\n val FRAGMENT_SHADER: Int\n val VERTEX_SHADER: Int\n val MAX_VERTEX_ATTRIBS: Int\n val MAX_VERTEX_UNIFORM_VECTORS: Int\n val MAX_VARYING_VECTORS: Int\n val MAX_COMBINED_TEXTURE_IMAGE_UNITS: Int\n val MAX_VERTEX_TEXTURE_IMAGE_UNITS: Int\n val MAX_TEXTURE_IMAGE_UNITS: Int\n val MAX_FRAGMENT_UNIFORM_VECTORS: Int\n val SHADER_TYPE: Int\n val DELETE_STATUS: Int\n val LINK_STATUS: Int\n val VALIDATE_STATUS: Int\n val ATTACHED_SHADERS: Int\n val ACTIVE_UNIFORMS: Int\n val ACTIVE_ATTRIBUTES: Int\n val SHADING_LANGUAGE_VERSION: Int\n val CURRENT_PROGRAM: Int\n val NEVER: Int\n val LESS: Int\n val EQUAL: Int\n val LEQUAL: Int\n val GREATER: Int\n val NOTEQUAL: Int\n val GEQUAL: Int\n val ALWAYS: Int\n val KEEP: Int\n val REPLACE: Int\n val INCR: Int\n val DECR: Int\n val INVERT: Int\n val INCR_WRAP: Int\n val DECR_WRAP: Int\n val VENDOR: Int\n val RENDERER: Int\n val VERSION: Int\n val NEAREST: Int\n val LINEAR: Int\n val NEAREST_MIPMAP_NEAREST: Int\n val LINEAR_MIPMAP_NEAREST: Int\n val NEAREST_MIPMAP_LINEAR: Int\n val LINEAR_MIPMAP_LINEAR: Int\n val TEXTURE_MAG_FILTER: Int\n val TEXTURE_MIN_FILTER: Int\n val TEXTURE_WRAP_S: Int\n val TEXTURE_WRAP_T: Int\n val TEXTURE_2D: Int\n val TEXTURE: Int\n val TEXTURE_CUBE_MAP: Int\n val TEXTURE_BINDING_CUBE_MAP: Int\n val TEXTURE_CUBE_MAP_POSITIVE_X: Int\n val TEXTURE_CUBE_MAP_NEGATIVE_X: Int\n val TEXTURE_CUBE_MAP_POSITIVE_Y: Int\n val TEXTURE_CUBE_MAP_NEGATIVE_Y: Int\n val TEXTURE_CUBE_MAP_POSITIVE_Z: Int\n val TEXTURE_CUBE_MAP_NEGATIVE_Z: Int\n val MAX_CUBE_MAP_TEXTURE_SIZE: Int\n val TEXTURE0: Int\n val TEXTURE1: Int\n val TEXTURE2: Int\n val TEXTURE3: Int\n val TEXTURE4: Int\n val TEXTURE5: Int\n val TEXTURE6: Int\n val TEXTURE7: Int\n val TEXTURE8: Int\n val TEXTURE9: Int\n val TEXTURE10: Int\n val TEXTURE11: Int\n val TEXTURE12: Int\n val TEXTURE13: Int\n val TEXTURE14: Int\n val TEXTURE15: Int\n val TEXTURE16: Int\n val TEXTURE17: Int\n val TEXTURE18: Int\n val TEXTURE19: Int\n val TEXTURE20: Int\n val TEXTURE21: Int\n val TEXTURE22: Int\n val TEXTURE23: Int\n val TEXTURE24: Int\n val TEXTURE25: Int\n val TEXTURE26: Int\n val TEXTURE27: Int\n val TEXTURE28: Int\n val TEXTURE29: Int\n val TEXTURE30: Int\n val TEXTURE31: Int\n val ACTIVE_TEXTURE: Int\n val REPEAT: Int\n val CLAMP_TO_EDGE: Int\n val MIRRORED_REPEAT: Int\n val FLOAT_VEC2: Int\n val FLOAT_VEC3: Int\n val FLOAT_VEC4: Int\n val INT_VEC2: Int\n val INT_VEC3: Int\n val INT_VEC4: Int\n val BOOL: Int\n val BOOL_VEC2: Int\n val BOOL_VEC3: Int\n val BOOL_VEC4: Int\n val FLOAT_MAT2: Int\n val FLOAT_MAT3: Int\n val FLOAT_MAT4: Int\n val SAMPLER_2D: Int\n val SAMPLER_CUBE: Int\n val VERTEX_ATTRIB_ARRAY_ENABLED: Int\n val VERTEX_ATTRIB_ARRAY_SIZE: Int\n val VERTEX_ATTRIB_ARRAY_STRIDE: Int\n val VERTEX_ATTRIB_ARRAY_TYPE: Int\n val VERTEX_ATTRIB_ARRAY_NORMALIZED: Int\n val VERTEX_ATTRIB_ARRAY_POINTER: Int\n val VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: Int\n val IMPLEMENTATION_COLOR_READ_TYPE: Int\n val IMPLEMENTATION_COLOR_READ_FORMAT: Int\n val COMPILE_STATUS: Int\n val LOW_FLOAT: Int\n val MEDIUM_FLOAT: Int\n val HIGH_FLOAT: Int\n val LOW_INT: Int\n val MEDIUM_INT: Int\n val HIGH_INT: Int\n val FRAMEBUFFER: Int\n val RENDERBUFFER: Int\n val RGBA4: Int\n val RGB5_A1: Int\n val RGB565: Int\n val DEPTH_COMPONENT16: Int\n val STENCIL_INDEX: Int\n val STENCIL_INDEX8: Int\n val DEPTH_STENCIL: Int\n val RENDERBUFFER_WIDTH: Int\n val RENDERBUFFER_HEIGHT: Int\n val RENDERBUFFER_INTERNAL_FORMAT: Int\n val RENDERBUFFER_RED_SIZE: Int\n val RENDERBUFFER_GREEN_SIZE: Int\n val RENDERBUFFER_BLUE_SIZE: Int\n val RENDERBUFFER_ALPHA_SIZE: Int\n val RENDERBUFFER_DEPTH_SIZE: Int\n val RENDERBUFFER_STENCIL_SIZE: Int\n val FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: Int\n val FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: Int\n val FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: Int\n val FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: Int\n val COLOR_ATTACHMENT0: Int\n val DEPTH_ATTACHMENT: Int\n val STENCIL_ATTACHMENT: Int\n val DEPTH_STENCIL_ATTACHMENT: Int\n val NONE: Int\n val FRAMEBUFFER_COMPLETE: Int\n val FRAMEBUFFER_INCOMPLETE_ATTACHMENT: Int\n val FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: Int\n val FRAMEBUFFER_INCOMPLETE_DIMENSIONS: Int\n val FRAMEBUFFER_UNSUPPORTED: Int\n val FRAMEBUFFER_BINDING: Int\n val RENDERBUFFER_BINDING: Int\n val MAX_RENDERBUFFER_SIZE: Int\n val INVALID_FRAMEBUFFER_OPERATION: Int\n val UNPACK_FLIP_Y_WEBGL: Int\n val UNPACK_PREMULTIPLY_ALPHA_WEBGL: Int\n val CONTEXT_LOST_WEBGL: Int\n val UNPACK_COLORSPACE_CONVERSION_WEBGL: Int\n val BROWSER_DEFAULT_WEBGL: Int\n }\n}\n\n/**\n * Exposes the JavaScript [WebGLContextEvent](https://developer.mozilla.org/en/docs/Web/API/WebGLContextEvent) to Kotlin\n */\npublic external open class WebGLContextEvent(type: String, eventInit: WebGLContextEventInit = definedExternally) : Event {\n open val statusMessage: String\n}\n\npublic external interface WebGLContextEventInit : EventInit {\n var statusMessage: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun WebGLContextEventInit(statusMessage: String? = \"\", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WebGLContextEventInit {\n val o = js(\"({})\")\n\n o[\"statusMessage\"] = statusMessage\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ArrayBuffer](https://developer.mozilla.org/en/docs/Web/API/ArrayBuffer) to Kotlin\n */\npublic external open class ArrayBuffer(length: Int) : BufferDataSource {\n open val byteLength: Int\n fun slice(begin: Int, end: Int = definedExternally): ArrayBuffer\n\n companion object {\n fun isView(value: Any?): Boolean\n }\n}\n\n/**\n * Exposes the JavaScript [ArrayBufferView](https://developer.mozilla.org/en/docs/Web/API/ArrayBufferView) to Kotlin\n */\npublic external interface ArrayBufferView : BufferDataSource {\n val buffer: ArrayBuffer\n val byteOffset: Int\n val byteLength: Int\n}\n\n/**\n * Exposes the JavaScript [Int8Array](https://developer.mozilla.org/en/docs/Web/API/Int8Array) to Kotlin\n */\npublic external open class Int8Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Int8Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Int8Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Int8Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Int8Array.get(index: Int): Byte = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Int8Array.set(index: Int, value: Byte): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Uint8Array](https://developer.mozilla.org/en/docs/Web/API/Uint8Array) to Kotlin\n */\npublic external open class Uint8Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Uint8Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Uint8Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Uint8Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Uint8Array.get(index: Int): Byte = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Uint8Array.set(index: Int, value: Byte): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Uint8ClampedArray](https://developer.mozilla.org/en/docs/Web/API/Uint8ClampedArray) to Kotlin\n */\npublic external open class Uint8ClampedArray : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Uint8ClampedArray)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Uint8ClampedArray, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Uint8ClampedArray\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Uint8ClampedArray.get(index: Int): Byte = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Uint8ClampedArray.set(index: Int, value: Byte): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Int16Array](https://developer.mozilla.org/en/docs/Web/API/Int16Array) to Kotlin\n */\npublic external open class Int16Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Int16Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Int16Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Int16Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Int16Array.get(index: Int): Short = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Int16Array.set(index: Int, value: Short): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Uint16Array](https://developer.mozilla.org/en/docs/Web/API/Uint16Array) to Kotlin\n */\npublic external open class Uint16Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Uint16Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Uint16Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Uint16Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Uint16Array.get(index: Int): Short = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Uint16Array.set(index: Int, value: Short): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Int32Array](https://developer.mozilla.org/en/docs/Web/API/Int32Array) to Kotlin\n */\npublic external open class Int32Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Int32Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Int32Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Int32Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Int32Array.get(index: Int): Int = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Int32Array.set(index: Int, value: Int): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Uint32Array](https://developer.mozilla.org/en/docs/Web/API/Uint32Array) to Kotlin\n */\npublic external open class Uint32Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Uint32Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Uint32Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Uint32Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Uint32Array.get(index: Int): Int = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Uint32Array.set(index: Int, value: Int): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Float32Array](https://developer.mozilla.org/en/docs/Web/API/Float32Array) to Kotlin\n */\npublic external open class Float32Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Float32Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Float32Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Float32Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Float32Array.get(index: Int): Float = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Float32Array.set(index: Int, value: Float): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [Float64Array](https://developer.mozilla.org/en/docs/Web/API/Float64Array) to Kotlin\n */\npublic external open class Float64Array : ArrayBufferView {\n constructor(length: Int)\n constructor(array: Float64Array)\n constructor(array: Array)\n constructor(buffer: ArrayBuffer, byteOffset: Int = definedExternally, length: Int = definedExternally)\n open val length: Int\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun set(array: Float64Array, offset: Int = definedExternally): Unit\n fun set(array: Array, offset: Int = definedExternally): Unit\n fun subarray(start: Int, end: Int): Float64Array\n\n companion object {\n val BYTES_PER_ELEMENT: Int\n }\n}\n@kotlin.internal.InlineOnly inline operator fun Float64Array.get(index: Int): Double = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Float64Array.set(index: Int, value: Double): Unit { asDynamic()[index] = value; }\n\n/**\n * Exposes the JavaScript [DataView](https://developer.mozilla.org/en/docs/Web/API/DataView) to Kotlin\n */\npublic external open class DataView(buffer: ArrayBuffer, byteOffset: Int = definedExternally, byteLength: Int = definedExternally) : ArrayBufferView {\n override val buffer: ArrayBuffer\n override val byteOffset: Int\n override val byteLength: Int\n fun getInt8(byteOffset: Int): Byte\n fun getUint8(byteOffset: Int): Byte\n fun getInt16(byteOffset: Int, littleEndian: Boolean = definedExternally): Short\n fun getUint16(byteOffset: Int, littleEndian: Boolean = definedExternally): Short\n fun getInt32(byteOffset: Int, littleEndian: Boolean = definedExternally): Int\n fun getUint32(byteOffset: Int, littleEndian: Boolean = definedExternally): Int\n fun getFloat32(byteOffset: Int, littleEndian: Boolean = definedExternally): Float\n fun getFloat64(byteOffset: Int, littleEndian: Boolean = definedExternally): Double\n fun setInt8(byteOffset: Int, value: Byte): Unit\n fun setUint8(byteOffset: Int, value: Byte): Unit\n fun setInt16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally): Unit\n fun setUint16(byteOffset: Int, value: Short, littleEndian: Boolean = definedExternally): Unit\n fun setInt32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally): Unit\n fun setUint32(byteOffset: Int, value: Int, littleEndian: Boolean = definedExternally): Unit\n fun setFloat32(byteOffset: Int, value: Float, littleEndian: Boolean = definedExternally): Unit\n fun setFloat64(byteOffset: Int, value: Double, littleEndian: Boolean = definedExternally): Unit\n}\n\npublic external @marker interface BufferDataSource {\n}\n\npublic external @marker interface TexImageSource {\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom.clipboard\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\npublic external interface ClipboardEventInit : EventInit {\n var clipboardData: DataTransfer? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ClipboardEventInit(clipboardData: DataTransfer? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ClipboardEventInit {\n val o = js(\"({})\")\n\n o[\"clipboardData\"] = clipboardData\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ClipboardEvent](https://developer.mozilla.org/en/docs/Web/API/ClipboardEvent) to Kotlin\n */\npublic external open class ClipboardEvent(type: String, eventInitDict: ClipboardEventInit = definedExternally) : Event {\n open val clipboardData: DataTransfer?\n}\n\n/**\n * Exposes the JavaScript [Clipboard](https://developer.mozilla.org/en/docs/Web/API/Clipboard) to Kotlin\n */\npublic external abstract class Clipboard : EventTarget {\n fun read(): Promise\n fun readText(): Promise\n fun write(data: DataTransfer): Promise\n fun writeText(data: String): Promise\n}\n\npublic external interface ClipboardPermissionDescriptor {\n var allowWithoutGesture: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ClipboardPermissionDescriptor(allowWithoutGesture: Boolean? = false): ClipboardPermissionDescriptor {\n val o = js(\"({})\")\n\n o[\"allowWithoutGesture\"] = allowWithoutGesture\n\n return o\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom.css\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [CSSStyleDeclaration](https://developer.mozilla.org/en/docs/Web/API/CSSStyleDeclaration) to Kotlin\n */\npublic external abstract class CSSStyleDeclaration : ItemArrayLike {\n open var cssText: String\n override val length: Int\n open val parentRule: CSSRule?\n open var cssFloat: String\n open var _dashed_attribute: String\n open var _camel_cased_attribute: String\n open var _webkit_cased_attribute: String\n open var alignContent: String\n open var alignItems: String\n open var alignSelf: String\n open var animation: String\n open var animationDelay: String\n open var animationDirection: String\n open var animationDuration: String\n open var animationFillMode: String\n open var animationIterationCount: String\n open var animationName: String\n open var animationPlayState: String\n open var animationTimingFunction: String\n open var backfaceVisibility: String\n open var background: String\n open var backgroundAttachment: String\n open var backgroundClip: String\n open var backgroundColor: String\n open var backgroundImage: String\n open var backgroundOrigin: String\n open var backgroundPosition: String\n open var backgroundRepeat: String\n open var backgroundSize: String\n open var border: String\n open var borderBottom: String\n open var borderBottomColor: String\n open var borderBottomLeftRadius: String\n open var borderBottomRightRadius: String\n open var borderBottomStyle: String\n open var borderBottomWidth: String\n open var borderCollapse: String\n open var borderColor: String\n open var borderImage: String\n open var borderImageOutset: String\n open var borderImageRepeat: String\n open var borderImageSlice: String\n open var borderImageSource: String\n open var borderImageWidth: String\n open var borderLeft: String\n open var borderLeftColor: String\n open var borderLeftStyle: String\n open var borderLeftWidth: String\n open var borderRadius: String\n open var borderRight: String\n open var borderRightColor: String\n open var borderRightStyle: String\n open var borderRightWidth: String\n open var borderSpacing: String\n open var borderStyle: String\n open var borderTop: String\n open var borderTopColor: String\n open var borderTopLeftRadius: String\n open var borderTopRightRadius: String\n open var borderTopStyle: String\n open var borderTopWidth: String\n open var borderWidth: String\n open var bottom: String\n open var boxDecorationBreak: String\n open var boxShadow: String\n open var boxSizing: String\n open var breakAfter: String\n open var breakBefore: String\n open var breakInside: String\n open var captionSide: String\n open var clear: String\n open var clip: String\n open var color: String\n open var columnCount: String\n open var columnFill: String\n open var columnGap: String\n open var columnRule: String\n open var columnRuleColor: String\n open var columnRuleStyle: String\n open var columnRuleWidth: String\n open var columnSpan: String\n open var columnWidth: String\n open var columns: String\n open var content: String\n open var counterIncrement: String\n open var counterReset: String\n open var cursor: String\n open var direction: String\n open var display: String\n open var emptyCells: String\n open var filter: String\n open var flex: String\n open var flexBasis: String\n open var flexDirection: String\n open var flexFlow: String\n open var flexGrow: String\n open var flexShrink: String\n open var flexWrap: String\n open var font: String\n open var fontFamily: String\n open var fontFeatureSettings: String\n open var fontKerning: String\n open var fontLanguageOverride: String\n open var fontSize: String\n open var fontSizeAdjust: String\n open var fontStretch: String\n open var fontStyle: String\n open var fontSynthesis: String\n open var fontVariant: String\n open var fontVariantAlternates: String\n open var fontVariantCaps: String\n open var fontVariantEastAsian: String\n open var fontVariantLigatures: String\n open var fontVariantNumeric: String\n open var fontVariantPosition: String\n open var fontWeight: String\n open var hangingPunctuation: String\n open var height: String\n open var hyphens: String\n open var imageOrientation: String\n open var imageRendering: String\n open var imageResolution: String\n open var imeMode: String\n open var justifyContent: String\n open var left: String\n open var letterSpacing: String\n open var lineBreak: String\n open var lineHeight: String\n open var listStyle: String\n open var listStyleImage: String\n open var listStylePosition: String\n open var listStyleType: String\n open var margin: String\n open var marginBottom: String\n open var marginLeft: String\n open var marginRight: String\n open var marginTop: String\n open var mark: String\n open var markAfter: String\n open var markBefore: String\n open var marks: String\n open var marqueeDirection: String\n open var marqueePlayCount: String\n open var marqueeSpeed: String\n open var marqueeStyle: String\n open var mask: String\n open var maskType: String\n open var maxHeight: String\n open var maxWidth: String\n open var minHeight: String\n open var minWidth: String\n open var navDown: String\n open var navIndex: String\n open var navLeft: String\n open var navRight: String\n open var navUp: String\n open var objectFit: String\n open var objectPosition: String\n open var opacity: String\n open var order: String\n open var orphans: String\n open var outline: String\n open var outlineColor: String\n open var outlineOffset: String\n open var outlineStyle: String\n open var outlineWidth: String\n open var overflowWrap: String\n open var overflowX: String\n open var overflowY: String\n open var padding: String\n open var paddingBottom: String\n open var paddingLeft: String\n open var paddingRight: String\n open var paddingTop: String\n open var pageBreakAfter: String\n open var pageBreakBefore: String\n open var pageBreakInside: String\n open var perspective: String\n open var perspectiveOrigin: String\n open var phonemes: String\n open var position: String\n open var quotes: String\n open var resize: String\n open var rest: String\n open var restAfter: String\n open var restBefore: String\n open var right: String\n open var tabSize: String\n open var tableLayout: String\n open var textAlign: String\n open var textAlignLast: String\n open var textCombineUpright: String\n open var textDecoration: String\n open var textDecorationColor: String\n open var textDecorationLine: String\n open var textDecorationStyle: String\n open var textIndent: String\n open var textJustify: String\n open var textOrientation: String\n open var textOverflow: String\n open var textShadow: String\n open var textTransform: String\n open var textUnderlinePosition: String\n open var top: String\n open var transform: String\n open var transformOrigin: String\n open var transformStyle: String\n open var transition: String\n open var transitionDelay: String\n open var transitionDuration: String\n open var transitionProperty: String\n open var transitionTimingFunction: String\n open var unicodeBidi: String\n open var verticalAlign: String\n open var visibility: String\n open var voiceBalance: String\n open var voiceDuration: String\n open var voicePitch: String\n open var voicePitchRange: String\n open var voiceRate: String\n open var voiceStress: String\n open var voiceVolume: String\n open var whiteSpace: String\n open var widows: String\n open var width: String\n open var wordBreak: String\n open var wordSpacing: String\n open var wordWrap: String\n open var writingMode: String\n open var zIndex: String\n override fun item(index: Int): String\n fun getPropertyValue(property: String): String\n fun getPropertyPriority(property: String): String\n fun setProperty(property: String, value: String, priority: String = definedExternally): Unit\n fun setPropertyValue(property: String, value: String): Unit\n fun setPropertyPriority(property: String, priority: String): Unit\n fun removeProperty(property: String): String\n}\n@kotlin.internal.InlineOnly inline operator fun CSSStyleDeclaration.get(index: Int): String? = asDynamic()[index]\n\npublic external abstract class MediaList : ItemArrayLike {\n open var mediaText: String\n override val length: Int\n override fun item(index: Int): String?\n fun appendMedium(medium: String): Unit\n fun deleteMedium(medium: String): Unit\n}\n@kotlin.internal.InlineOnly inline operator fun MediaList.get(index: Int): String? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [StyleSheet](https://developer.mozilla.org/en/docs/Web/API/StyleSheet) to Kotlin\n */\npublic external abstract class StyleSheet {\n open val type: String\n open val href: String?\n open val ownerNode: UnionElementOrProcessingInstruction?\n open val parentStyleSheet: StyleSheet?\n open val title: String?\n open val media: MediaList\n open var disabled: Boolean\n}\n\n/**\n * Exposes the JavaScript [CSSStyleSheet](https://developer.mozilla.org/en/docs/Web/API/CSSStyleSheet) to Kotlin\n */\npublic external abstract class CSSStyleSheet : StyleSheet {\n open val ownerRule: CSSRule?\n open val cssRules: CSSRuleList\n fun insertRule(rule: String, index: Int): Int\n fun deleteRule(index: Int): Unit\n}\n\n/**\n * Exposes the JavaScript [StyleSheetList](https://developer.mozilla.org/en/docs/Web/API/StyleSheetList) to Kotlin\n */\npublic external abstract class StyleSheetList : ItemArrayLike {\n override val length: Int\n override fun item(index: Int): StyleSheet?\n}\n@kotlin.internal.InlineOnly inline operator fun StyleSheetList.get(index: Int): StyleSheet? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [LinkStyle](https://developer.mozilla.org/en/docs/Web/API/LinkStyle) to Kotlin\n */\npublic external interface LinkStyle {\n val sheet: StyleSheet?\n}\n\n/**\n * Exposes the JavaScript [CSSRuleList](https://developer.mozilla.org/en/docs/Web/API/CSSRuleList) to Kotlin\n */\npublic external abstract class CSSRuleList : ItemArrayLike {\n override val length: Int\n override fun item(index: Int): CSSRule?\n}\n@kotlin.internal.InlineOnly inline operator fun CSSRuleList.get(index: Int): CSSRule? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [CSSRule](https://developer.mozilla.org/en/docs/Web/API/CSSRule) to Kotlin\n */\npublic external abstract class CSSRule {\n open val type: Short\n open var cssText: String\n open val parentRule: CSSRule?\n open val parentStyleSheet: CSSStyleSheet?\n\n companion object {\n val STYLE_RULE: Short\n val CHARSET_RULE: Short\n val IMPORT_RULE: Short\n val MEDIA_RULE: Short\n val FONT_FACE_RULE: Short\n val PAGE_RULE: Short\n val MARGIN_RULE: Short\n val NAMESPACE_RULE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [CSSStyleRule](https://developer.mozilla.org/en/docs/Web/API/CSSStyleRule) to Kotlin\n */\npublic external abstract class CSSStyleRule : CSSRule {\n open var selectorText: String\n open val style: CSSStyleDeclaration\n}\n\npublic external abstract class CSSImportRule : CSSRule {\n open val href: String\n open val media: MediaList\n open val styleSheet: CSSStyleSheet\n}\n\n/**\n * Exposes the JavaScript [CSSGroupingRule](https://developer.mozilla.org/en/docs/Web/API/CSSGroupingRule) to Kotlin\n */\npublic external abstract class CSSGroupingRule : CSSRule {\n open val cssRules: CSSRuleList\n fun insertRule(rule: String, index: Int): Int\n fun deleteRule(index: Int): Unit\n}\n\n/**\n * Exposes the JavaScript [CSSMediaRule](https://developer.mozilla.org/en/docs/Web/API/CSSMediaRule) to Kotlin\n */\npublic external abstract class CSSMediaRule : CSSGroupingRule {\n open val media: MediaList\n}\n\n/**\n * Exposes the JavaScript [CSSPageRule](https://developer.mozilla.org/en/docs/Web/API/CSSPageRule) to Kotlin\n */\npublic external abstract class CSSPageRule : CSSGroupingRule {\n open var selectorText: String\n open val style: CSSStyleDeclaration\n}\n\npublic external abstract class CSSMarginRule : CSSRule {\n open val name: String\n open val style: CSSStyleDeclaration\n}\n\n/**\n * Exposes the JavaScript [CSSNamespaceRule](https://developer.mozilla.org/en/docs/Web/API/CSSNamespaceRule) to Kotlin\n */\npublic external abstract class CSSNamespaceRule : CSSRule {\n open val namespaceURI: String\n open val prefix: String\n}\n\npublic external interface ElementCSSInlineStyle {\n val style: CSSStyleDeclaration\n}\n\n/**\n * Exposes the JavaScript [CSS](https://developer.mozilla.org/en/docs/Web/API/CSS) to Kotlin\n */\npublic external abstract class CSS {\n\n companion object {\n fun escape(ident: String): String\n }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom.events\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [UIEvent](https://developer.mozilla.org/en/docs/Web/API/UIEvent) to Kotlin\n */\npublic external open class UIEvent(type: String, eventInitDict: UIEventInit = definedExternally) : Event {\n open val view: Window?\n open val detail: Int\n}\n\npublic external interface UIEventInit : EventInit {\n var view: Window? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var detail: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun UIEventInit(view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): UIEventInit {\n val o = js(\"({})\")\n\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [FocusEvent](https://developer.mozilla.org/en/docs/Web/API/FocusEvent) to Kotlin\n */\npublic external open class FocusEvent(type: String, eventInitDict: FocusEventInit = definedExternally) : UIEvent {\n open val relatedTarget: EventTarget?\n}\n\npublic external interface FocusEventInit : UIEventInit {\n var relatedTarget: EventTarget? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun FocusEventInit(relatedTarget: EventTarget? = null, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FocusEventInit {\n val o = js(\"({})\")\n\n o[\"relatedTarget\"] = relatedTarget\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MouseEvent](https://developer.mozilla.org/en/docs/Web/API/MouseEvent) to Kotlin\n */\npublic external open class MouseEvent(type: String, eventInitDict: MouseEventInit = definedExternally) : UIEvent, UnionElementOrMouseEvent {\n open val region: String?\n open val screenX: Int\n open val screenY: Int\n open val pageX: Double\n open val pageY: Double\n open val clientX: Int\n open val clientY: Int\n open val offsetX: Double\n open val offsetY: Double\n open val ctrlKey: Boolean\n open val shiftKey: Boolean\n open val altKey: Boolean\n open val metaKey: Boolean\n open val button: Short\n open val buttons: Short\n open val relatedTarget: EventTarget?\n fun getModifierState(keyArg: String): Boolean\n}\n\npublic external interface MouseEventInit : EventModifierInit {\n var screenX: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var screenY: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var clientX: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var clientY: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var button: Short? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var buttons: Short? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var relatedTarget: EventTarget? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MouseEventInit(screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MouseEventInit {\n val o = js(\"({})\")\n\n o[\"screenX\"] = screenX\n o[\"screenY\"] = screenY\n o[\"clientX\"] = clientX\n o[\"clientY\"] = clientY\n o[\"button\"] = button\n o[\"buttons\"] = buttons\n o[\"relatedTarget\"] = relatedTarget\n o[\"ctrlKey\"] = ctrlKey\n o[\"shiftKey\"] = shiftKey\n o[\"altKey\"] = altKey\n o[\"metaKey\"] = metaKey\n o[\"modifierAltGraph\"] = modifierAltGraph\n o[\"modifierCapsLock\"] = modifierCapsLock\n o[\"modifierFn\"] = modifierFn\n o[\"modifierFnLock\"] = modifierFnLock\n o[\"modifierHyper\"] = modifierHyper\n o[\"modifierNumLock\"] = modifierNumLock\n o[\"modifierScrollLock\"] = modifierScrollLock\n o[\"modifierSuper\"] = modifierSuper\n o[\"modifierSymbol\"] = modifierSymbol\n o[\"modifierSymbolLock\"] = modifierSymbolLock\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external interface EventModifierInit : UIEventInit {\n var ctrlKey: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var shiftKey: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var altKey: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var metaKey: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierAltGraph: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierCapsLock: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierFn: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierFnLock: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierHyper: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierNumLock: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierScrollLock: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierSuper: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierSymbol: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var modifierSymbolLock: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun EventModifierInit(ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventModifierInit {\n val o = js(\"({})\")\n\n o[\"ctrlKey\"] = ctrlKey\n o[\"shiftKey\"] = shiftKey\n o[\"altKey\"] = altKey\n o[\"metaKey\"] = metaKey\n o[\"modifierAltGraph\"] = modifierAltGraph\n o[\"modifierCapsLock\"] = modifierCapsLock\n o[\"modifierFn\"] = modifierFn\n o[\"modifierFnLock\"] = modifierFnLock\n o[\"modifierHyper\"] = modifierHyper\n o[\"modifierNumLock\"] = modifierNumLock\n o[\"modifierScrollLock\"] = modifierScrollLock\n o[\"modifierSuper\"] = modifierSuper\n o[\"modifierSymbol\"] = modifierSymbol\n o[\"modifierSymbolLock\"] = modifierSymbolLock\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [WheelEvent](https://developer.mozilla.org/en/docs/Web/API/WheelEvent) to Kotlin\n */\npublic external open class WheelEvent(type: String, eventInitDict: WheelEventInit = definedExternally) : MouseEvent {\n open val deltaX: Double\n open val deltaY: Double\n open val deltaZ: Double\n open val deltaMode: Int\n\n companion object {\n val DOM_DELTA_PIXEL: Int\n val DOM_DELTA_LINE: Int\n val DOM_DELTA_PAGE: Int\n }\n}\n\npublic external interface WheelEventInit : MouseEventInit {\n var deltaX: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var deltaY: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var deltaZ: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var deltaMode: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun WheelEventInit(deltaX: Double? = 0.0, deltaY: Double? = 0.0, deltaZ: Double? = 0.0, deltaMode: Int? = 0, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): WheelEventInit {\n val o = js(\"({})\")\n\n o[\"deltaX\"] = deltaX\n o[\"deltaY\"] = deltaY\n o[\"deltaZ\"] = deltaZ\n o[\"deltaMode\"] = deltaMode\n o[\"screenX\"] = screenX\n o[\"screenY\"] = screenY\n o[\"clientX\"] = clientX\n o[\"clientY\"] = clientY\n o[\"button\"] = button\n o[\"buttons\"] = buttons\n o[\"relatedTarget\"] = relatedTarget\n o[\"ctrlKey\"] = ctrlKey\n o[\"shiftKey\"] = shiftKey\n o[\"altKey\"] = altKey\n o[\"metaKey\"] = metaKey\n o[\"modifierAltGraph\"] = modifierAltGraph\n o[\"modifierCapsLock\"] = modifierCapsLock\n o[\"modifierFn\"] = modifierFn\n o[\"modifierFnLock\"] = modifierFnLock\n o[\"modifierHyper\"] = modifierHyper\n o[\"modifierNumLock\"] = modifierNumLock\n o[\"modifierScrollLock\"] = modifierScrollLock\n o[\"modifierSuper\"] = modifierSuper\n o[\"modifierSymbol\"] = modifierSymbol\n o[\"modifierSymbolLock\"] = modifierSymbolLock\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [InputEvent](https://developer.mozilla.org/en/docs/Web/API/InputEvent) to Kotlin\n */\npublic external open class InputEvent(type: String, eventInitDict: InputEventInit = definedExternally) : UIEvent {\n open val data: String\n open val isComposing: Boolean\n}\n\npublic external interface InputEventInit : UIEventInit {\n var data: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var isComposing: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun InputEventInit(data: String? = \"\", isComposing: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): InputEventInit {\n val o = js(\"({})\")\n\n o[\"data\"] = data\n o[\"isComposing\"] = isComposing\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [KeyboardEvent](https://developer.mozilla.org/en/docs/Web/API/KeyboardEvent) to Kotlin\n */\npublic external open class KeyboardEvent(type: String, eventInitDict: KeyboardEventInit = definedExternally) : UIEvent {\n open val key: String\n open val code: String\n open val location: Int\n open val ctrlKey: Boolean\n open val shiftKey: Boolean\n open val altKey: Boolean\n open val metaKey: Boolean\n open val repeat: Boolean\n open val isComposing: Boolean\n open val charCode: Int\n open val keyCode: Int\n open val which: Int\n fun getModifierState(keyArg: String): Boolean\n\n companion object {\n val DOM_KEY_LOCATION_STANDARD: Int\n val DOM_KEY_LOCATION_LEFT: Int\n val DOM_KEY_LOCATION_RIGHT: Int\n val DOM_KEY_LOCATION_NUMPAD: Int\n }\n}\n\npublic external interface KeyboardEventInit : EventModifierInit {\n var key: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var code: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var location: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var repeat: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var isComposing: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun KeyboardEventInit(key: String? = \"\", code: String? = \"\", location: Int? = 0, repeat: Boolean? = false, isComposing: Boolean? = false, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): KeyboardEventInit {\n val o = js(\"({})\")\n\n o[\"key\"] = key\n o[\"code\"] = code\n o[\"location\"] = location\n o[\"repeat\"] = repeat\n o[\"isComposing\"] = isComposing\n o[\"ctrlKey\"] = ctrlKey\n o[\"shiftKey\"] = shiftKey\n o[\"altKey\"] = altKey\n o[\"metaKey\"] = metaKey\n o[\"modifierAltGraph\"] = modifierAltGraph\n o[\"modifierCapsLock\"] = modifierCapsLock\n o[\"modifierFn\"] = modifierFn\n o[\"modifierFnLock\"] = modifierFnLock\n o[\"modifierHyper\"] = modifierHyper\n o[\"modifierNumLock\"] = modifierNumLock\n o[\"modifierScrollLock\"] = modifierScrollLock\n o[\"modifierSuper\"] = modifierSuper\n o[\"modifierSymbol\"] = modifierSymbol\n o[\"modifierSymbolLock\"] = modifierSymbolLock\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [CompositionEvent](https://developer.mozilla.org/en/docs/Web/API/CompositionEvent) to Kotlin\n */\npublic external open class CompositionEvent(type: String, eventInitDict: CompositionEventInit = definedExternally) : UIEvent {\n open val data: String\n}\n\npublic external interface CompositionEventInit : UIEventInit {\n var data: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun CompositionEventInit(data: String? = \"\", view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CompositionEventInit {\n val o = js(\"({})\")\n\n o[\"data\"] = data\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [Event](https://developer.mozilla.org/en/docs/Web/API/Event) to Kotlin\n */\npublic external open class Event(type: String, eventInitDict: EventInit = definedExternally) {\n open val type: String\n open val target: EventTarget?\n open val currentTarget: EventTarget?\n open val eventPhase: Short\n open val bubbles: Boolean\n open val cancelable: Boolean\n open val defaultPrevented: Boolean\n open val composed: Boolean\n open val isTrusted: Boolean\n open val timeStamp: Number\n fun composedPath(): Array\n fun stopPropagation(): Unit\n fun stopImmediatePropagation(): Unit\n fun preventDefault(): Unit\n fun initEvent(type: String, bubbles: Boolean, cancelable: Boolean): Unit\n\n companion object {\n val NONE: Short\n val CAPTURING_PHASE: Short\n val AT_TARGET: Short\n val BUBBLING_PHASE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [EventTarget](https://developer.mozilla.org/en/docs/Web/API/EventTarget) to Kotlin\n */\npublic external abstract class EventTarget {\n fun addEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally): Unit\n fun addEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally): Unit\n fun removeEventListener(type: String, callback: EventListener?, options: dynamic = definedExternally): Unit\n fun removeEventListener(type: String, callback: ((Event) -> Unit)?, options: dynamic = definedExternally): Unit\n fun dispatchEvent(event: Event): Boolean\n}\n\n/**\n * Exposes the JavaScript [EventListener](https://developer.mozilla.org/en/docs/Web/API/EventListener) to Kotlin\n */\npublic external interface EventListener {\n fun handleEvent(event: Event): Unit\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [Navigator](https://developer.mozilla.org/en/docs/Web/API/Navigator) to Kotlin\n */\npublic external abstract class Navigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware {\n open val serviceWorker: ServiceWorkerContainer\n open val maxTouchPoints: Int\n open val mediaDevices: MediaDevices\n open val clipboard: Clipboard\n fun vibrate(pattern: dynamic): Boolean\n fun getUserMedia(constraints: MediaStreamConstraints, successCallback: (MediaStream) -> Unit, errorCallback: (dynamic) -> Unit): Unit\n}\n\n/**\n * Exposes the JavaScript [Document](https://developer.mozilla.org/en/docs/Web/API/Document) to Kotlin\n */\npublic external open class Document : Node, GlobalEventHandlers, DocumentAndElementEventHandlers, NonElementParentNode, DocumentOrShadowRoot, ParentNode, GeometryUtils {\n open val fullscreenEnabled: Boolean\n open val fullscreen: Boolean\n var onfullscreenchange: ((Event) -> dynamic)?\n var onfullscreenerror: ((Event) -> dynamic)?\n open val rootElement: SVGSVGElement?\n var title: String\n open val referrer: String\n var domain: String\n open val activeElement: Element?\n open val location: Location?\n var cookie: String\n open val lastModified: String\n open val readyState: DocumentReadyState\n var dir: String\n var body: HTMLElement?\n open val head: HTMLHeadElement?\n open val images: HTMLCollection\n open val embeds: HTMLCollection\n open val plugins: HTMLCollection\n open val links: HTMLCollection\n open val forms: HTMLCollection\n open val scripts: HTMLCollection\n open val currentScript: HTMLOrSVGScriptElement?\n open val defaultView: Window?\n var designMode: String\n var onreadystatechange: ((Event) -> dynamic)?\n var fgColor: String\n var linkColor: String\n var vlinkColor: String\n var alinkColor: String\n var bgColor: String\n open val anchors: HTMLCollection\n open val applets: HTMLCollection\n open val all: HTMLAllCollection\n open val implementation: DOMImplementation\n open val URL: String\n open val documentURI: String\n open val origin: String\n open val compatMode: String\n open val characterSet: String\n open val charset: String\n open val inputEncoding: String\n open val contentType: String\n open val doctype: DocumentType?\n open val documentElement: Element?\n open val scrollingElement: Element?\n open val styleSheets: StyleSheetList\n override var ongotpointercapture: ((PointerEvent) -> dynamic)?\n override var onlostpointercapture: ((PointerEvent) -> dynamic)?\n override var onpointerdown: ((PointerEvent) -> dynamic)?\n override var onpointermove: ((PointerEvent) -> dynamic)?\n override var onpointerup: ((PointerEvent) -> dynamic)?\n override var onpointercancel: ((PointerEvent) -> dynamic)?\n override var onpointerover: ((PointerEvent) -> dynamic)?\n override var onpointerout: ((PointerEvent) -> dynamic)?\n override var onpointerenter: ((PointerEvent) -> dynamic)?\n override var onpointerleave: ((PointerEvent) -> dynamic)?\n override var onabort: ((Event) -> dynamic)?\n override var onblur: ((FocusEvent) -> dynamic)?\n override var oncancel: ((Event) -> dynamic)?\n override var oncanplay: ((Event) -> dynamic)?\n override var oncanplaythrough: ((Event) -> dynamic)?\n override var onchange: ((Event) -> dynamic)?\n override var onclick: ((MouseEvent) -> dynamic)?\n override var onclose: ((Event) -> dynamic)?\n override var oncontextmenu: ((MouseEvent) -> dynamic)?\n override var oncuechange: ((Event) -> dynamic)?\n override var ondblclick: ((MouseEvent) -> dynamic)?\n override var ondrag: ((DragEvent) -> dynamic)?\n override var ondragend: ((DragEvent) -> dynamic)?\n override var ondragenter: ((DragEvent) -> dynamic)?\n override var ondragexit: ((DragEvent) -> dynamic)?\n override var ondragleave: ((DragEvent) -> dynamic)?\n override var ondragover: ((DragEvent) -> dynamic)?\n override var ondragstart: ((DragEvent) -> dynamic)?\n override var ondrop: ((DragEvent) -> dynamic)?\n override var ondurationchange: ((Event) -> dynamic)?\n override var onemptied: ((Event) -> dynamic)?\n override var onended: ((Event) -> dynamic)?\n override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n override var onfocus: ((FocusEvent) -> dynamic)?\n override var oninput: ((InputEvent) -> dynamic)?\n override var oninvalid: ((Event) -> dynamic)?\n override var onkeydown: ((KeyboardEvent) -> dynamic)?\n override var onkeypress: ((KeyboardEvent) -> dynamic)?\n override var onkeyup: ((KeyboardEvent) -> dynamic)?\n override var onload: ((Event) -> dynamic)?\n override var onloadeddata: ((Event) -> dynamic)?\n override var onloadedmetadata: ((Event) -> dynamic)?\n override var onloadend: ((Event) -> dynamic)?\n override var onloadstart: ((ProgressEvent) -> dynamic)?\n override var onmousedown: ((MouseEvent) -> dynamic)?\n override var onmouseenter: ((MouseEvent) -> dynamic)?\n override var onmouseleave: ((MouseEvent) -> dynamic)?\n override var onmousemove: ((MouseEvent) -> dynamic)?\n override var onmouseout: ((MouseEvent) -> dynamic)?\n override var onmouseover: ((MouseEvent) -> dynamic)?\n override var onmouseup: ((MouseEvent) -> dynamic)?\n override var onwheel: ((WheelEvent) -> dynamic)?\n override var onpause: ((Event) -> dynamic)?\n override var onplay: ((Event) -> dynamic)?\n override var onplaying: ((Event) -> dynamic)?\n override var onprogress: ((ProgressEvent) -> dynamic)?\n override var onratechange: ((Event) -> dynamic)?\n override var onreset: ((Event) -> dynamic)?\n override var onresize: ((Event) -> dynamic)?\n override var onscroll: ((Event) -> dynamic)?\n override var onseeked: ((Event) -> dynamic)?\n override var onseeking: ((Event) -> dynamic)?\n override var onselect: ((Event) -> dynamic)?\n override var onshow: ((Event) -> dynamic)?\n override var onstalled: ((Event) -> dynamic)?\n override var onsubmit: ((Event) -> dynamic)?\n override var onsuspend: ((Event) -> dynamic)?\n override var ontimeupdate: ((Event) -> dynamic)?\n override var ontoggle: ((Event) -> dynamic)?\n override var onvolumechange: ((Event) -> dynamic)?\n override var onwaiting: ((Event) -> dynamic)?\n override var oncopy: ((ClipboardEvent) -> dynamic)?\n override var oncut: ((ClipboardEvent) -> dynamic)?\n override var onpaste: ((ClipboardEvent) -> dynamic)?\n override val fullscreenElement: Element?\n override val children: HTMLCollection\n override val firstElementChild: Element?\n override val lastElementChild: Element?\n override val childElementCount: Int\n fun exitFullscreen(): Promise\n fun getElementsByName(elementName: String): NodeList\n fun open(type: String = definedExternally, replace: String = definedExternally): Document\n fun open(url: String, name: String, features: String): Window\n fun close(): Unit\n fun write(vararg text: String): Unit\n fun writeln(vararg text: String): Unit\n fun hasFocus(): Boolean\n fun execCommand(commandId: String, showUI: Boolean = definedExternally, value: String = definedExternally): Boolean\n fun queryCommandEnabled(commandId: String): Boolean\n fun queryCommandIndeterm(commandId: String): Boolean\n fun queryCommandState(commandId: String): Boolean\n fun queryCommandSupported(commandId: String): Boolean\n fun queryCommandValue(commandId: String): String\n fun clear(): Unit\n fun captureEvents(): Unit\n fun releaseEvents(): Unit\n fun getElementsByTagName(qualifiedName: String): HTMLCollection\n fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection\n fun getElementsByClassName(classNames: String): HTMLCollection\n fun createElement(localName: String, options: ElementCreationOptions = definedExternally): Element\n fun createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions = definedExternally): Element\n fun createDocumentFragment(): DocumentFragment\n fun createTextNode(data: String): Text\n fun createCDATASection(data: String): CDATASection\n fun createComment(data: String): Comment\n fun createProcessingInstruction(target: String, data: String): ProcessingInstruction\n fun importNode(node: Node, deep: Boolean = definedExternally): Node\n fun adoptNode(node: Node): Node\n fun createAttribute(localName: String): Attr\n fun createAttributeNS(namespace: String?, qualifiedName: String): Attr\n fun createEvent(interface_: String): Event\n fun createRange(): Range\n fun createNodeIterator(root: Node, whatToShow: Int = definedExternally, filter: NodeFilter? = definedExternally): NodeIterator\n fun createNodeIterator(root: Node, whatToShow: Int = definedExternally, filter: ((Node) -> Short)? = definedExternally): NodeIterator\n fun createTreeWalker(root: Node, whatToShow: Int = definedExternally, filter: NodeFilter? = definedExternally): TreeWalker\n fun createTreeWalker(root: Node, whatToShow: Int = definedExternally, filter: ((Node) -> Short)? = definedExternally): TreeWalker\n fun elementFromPoint(x: Double, y: Double): Element?\n fun elementsFromPoint(x: Double, y: Double): Array\n fun caretPositionFromPoint(x: Double, y: Double): CaretPosition?\n override fun getElementById(elementId: String): Element?\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n@kotlin.internal.InlineOnly inline operator fun Document.get(name: String): dynamic = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [Window](https://developer.mozilla.org/en/docs/Web/API/Window) to Kotlin\n */\npublic external abstract class Window : EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, WindowSessionStorage, WindowLocalStorage, GlobalPerformance, UnionMessagePortOrWindow {\n override val performance: Performance\n open val window: Window\n open val self: Window\n open val document: Document\n open var name: String\n open val location: Location\n open val history: History\n open val customElements: CustomElementRegistry\n open val locationbar: BarProp\n open val menubar: BarProp\n open val personalbar: BarProp\n open val scrollbars: BarProp\n open val statusbar: BarProp\n open val toolbar: BarProp\n open var status: String\n open val closed: Boolean\n open val frames: Window\n open val length: Int\n open val top: Window\n open var opener: Any?\n open val parent: Window\n open val frameElement: Element?\n open val navigator: Navigator\n open val applicationCache: ApplicationCache\n open val external: External\n open val screen: Screen\n open val innerWidth: Int\n open val innerHeight: Int\n open val scrollX: Double\n open val pageXOffset: Double\n open val scrollY: Double\n open val pageYOffset: Double\n open val screenX: Int\n open val screenY: Int\n open val outerWidth: Int\n open val outerHeight: Int\n open val devicePixelRatio: Double\n fun close(): Unit\n fun stop(): Unit\n fun focus(): Unit\n fun blur(): Unit\n fun open(url: String = definedExternally, target: String = definedExternally, features: String = definedExternally): Window?\n fun alert(): Unit\n fun alert(message: String): Unit\n fun confirm(message: String = definedExternally): Boolean\n fun prompt(message: String = definedExternally, default: String = definedExternally): String?\n fun print(): Unit\n fun requestAnimationFrame(callback: (Double) -> Unit): Int\n fun cancelAnimationFrame(handle: Int): Unit\n fun postMessage(message: Any?, targetOrigin: String, transfer: Array = definedExternally): Unit\n fun captureEvents(): Unit\n fun releaseEvents(): Unit\n fun matchMedia(query: String): MediaQueryList\n fun moveTo(x: Int, y: Int): Unit\n fun moveBy(x: Int, y: Int): Unit\n fun resizeTo(x: Int, y: Int): Unit\n fun resizeBy(x: Int, y: Int): Unit\n fun scroll(options: ScrollToOptions = definedExternally): Unit\n fun scroll(x: Double, y: Double): Unit\n fun scrollTo(options: ScrollToOptions = definedExternally): Unit\n fun scrollTo(x: Double, y: Double): Unit\n fun scrollBy(options: ScrollToOptions = definedExternally): Unit\n fun scrollBy(x: Double, y: Double): Unit\n fun getComputedStyle(elt: Element, pseudoElt: String? = definedExternally): CSSStyleDeclaration\n}\n@kotlin.internal.InlineOnly inline operator fun Window.get(name: String): dynamic = asDynamic()[name]\n\npublic external abstract class HTMLAllCollection {\n open val length: Int\n// fun namedItem(name: String): UnionElementOrHTMLCollection?\n fun item(nameOrIndex: String = definedExternally): UnionElementOrHTMLCollection?\n}\n//@kotlin.internal.InlineOnly inline operator fun HTMLAllCollection.get(index: Int): Element? = asDynamic()[index]\n//@kotlin.internal.InlineOnly inline operator fun HTMLAllCollection.get(name: String): UnionElementOrHTMLCollection? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [HTMLFormControlsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLFormControlsCollection) to Kotlin\n */\npublic external abstract class HTMLFormControlsCollection : HTMLCollection {\n// override fun namedItem(name: String): UnionElementOrRadioNodeList?\n}\n//@kotlin.internal.InlineOnly override inline operator fun HTMLFormControlsCollection.get(name: String): UnionElementOrRadioNodeList? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [RadioNodeList](https://developer.mozilla.org/en/docs/Web/API/RadioNodeList) to Kotlin\n */\npublic external abstract class RadioNodeList : NodeList, UnionElementOrRadioNodeList {\n open var value: String\n}\n\n/**\n * Exposes the JavaScript [HTMLOptionsCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLOptionsCollection) to Kotlin\n */\npublic external abstract class HTMLOptionsCollection : HTMLCollection {\n override var length: Int\n open var selectedIndex: Int\n fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: dynamic = definedExternally): Unit\n fun remove(index: Int): Unit\n}\n@kotlin.internal.InlineOnly inline operator fun HTMLOptionsCollection.set(index: Int, option: HTMLOptionElement?): Unit { asDynamic()[index] = option; }\n\n/**\n * Exposes the JavaScript [HTMLElement](https://developer.mozilla.org/en/docs/Web/API/HTMLElement) to Kotlin\n */\npublic external abstract class HTMLElement : Element, ElementCSSInlineStyle, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable {\n open var title: String\n open var lang: String\n open var translate: Boolean\n open var dir: String\n open val dataset: DOMStringMap\n open var hidden: Boolean\n open var tabIndex: Int\n open var accessKey: String\n open val accessKeyLabel: String\n open var draggable: Boolean\n open val dropzone: DOMTokenList\n open var contextMenu: HTMLMenuElement?\n open var spellcheck: Boolean\n open var innerText: String\n open val offsetParent: Element?\n open val offsetTop: Int\n open val offsetLeft: Int\n open val offsetWidth: Int\n open val offsetHeight: Int\n fun click(): Unit\n fun focus(): Unit\n fun blur(): Unit\n fun forceSpellCheck(): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLUnknownElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUnknownElement) to Kotlin\n */\npublic external abstract class HTMLUnknownElement : HTMLElement {\n}\n\n/**\n * Exposes the JavaScript [DOMStringMap](https://developer.mozilla.org/en/docs/Web/API/DOMStringMap) to Kotlin\n */\npublic external abstract class DOMStringMap {\n}\n@kotlin.internal.InlineOnly inline operator fun DOMStringMap.get(name: String): String? = asDynamic()[name]\n@kotlin.internal.InlineOnly inline operator fun DOMStringMap.set(name: String, value: String): Unit { asDynamic()[name] = value; }\n\n/**\n * Exposes the JavaScript [HTMLHtmlElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHtmlElement) to Kotlin\n */\npublic external abstract class HTMLHtmlElement : HTMLElement {\n open var version: String\n}\n\n/**\n * Exposes the JavaScript [HTMLHeadElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadElement) to Kotlin\n */\npublic external abstract class HTMLHeadElement : HTMLElement {\n}\n\n/**\n * Exposes the JavaScript [HTMLTitleElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTitleElement) to Kotlin\n */\npublic external abstract class HTMLTitleElement : HTMLElement {\n open var text: String\n}\n\n/**\n * Exposes the JavaScript [HTMLBaseElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBaseElement) to Kotlin\n */\npublic external abstract class HTMLBaseElement : HTMLElement {\n open var href: String\n open var target: String\n}\n\n/**\n * Exposes the JavaScript [HTMLLinkElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLinkElement) to Kotlin\n */\npublic external abstract class HTMLLinkElement : HTMLElement, LinkStyle {\n open var scope: String\n open var workerType: WorkerType\n open var href: String\n open var crossOrigin: String?\n open var rel: String\n @JsName(\"as\") open var as_: RequestDestination\n open val relList: DOMTokenList\n open var media: String\n open var nonce: String\n open var hreflang: String\n open var type: String\n open val sizes: DOMTokenList\n open var referrerPolicy: String\n open var charset: String\n open var rev: String\n open var target: String\n}\n\n/**\n * Exposes the JavaScript [HTMLMetaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMetaElement) to Kotlin\n */\npublic external abstract class HTMLMetaElement : HTMLElement {\n open var name: String\n open var httpEquiv: String\n open var content: String\n open var scheme: String\n}\n\n/**\n * Exposes the JavaScript [HTMLStyleElement](https://developer.mozilla.org/en/docs/Web/API/HTMLStyleElement) to Kotlin\n */\npublic external abstract class HTMLStyleElement : HTMLElement, LinkStyle {\n open var media: String\n open var nonce: String\n open var type: String\n}\n\n/**\n * Exposes the JavaScript [HTMLBodyElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBodyElement) to Kotlin\n */\npublic external abstract class HTMLBodyElement : HTMLElement, WindowEventHandlers {\n open var text: String\n open var link: String\n open var vLink: String\n open var aLink: String\n open var bgColor: String\n open var background: String\n}\n\n/**\n * Exposes the JavaScript [HTMLHeadingElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHeadingElement) to Kotlin\n */\npublic external abstract class HTMLHeadingElement : HTMLElement {\n open var align: String\n}\n\n/**\n * Exposes the JavaScript [HTMLParagraphElement](https://developer.mozilla.org/en/docs/Web/API/HTMLParagraphElement) to Kotlin\n */\npublic external abstract class HTMLParagraphElement : HTMLElement {\n open var align: String\n}\n\n/**\n * Exposes the JavaScript [HTMLHRElement](https://developer.mozilla.org/en/docs/Web/API/HTMLHRElement) to Kotlin\n */\npublic external abstract class HTMLHRElement : HTMLElement {\n open var align: String\n open var color: String\n open var noShade: Boolean\n open var size: String\n open var width: String\n}\n\n/**\n * Exposes the JavaScript [HTMLPreElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPreElement) to Kotlin\n */\npublic external abstract class HTMLPreElement : HTMLElement {\n open var width: Int\n}\n\n/**\n * Exposes the JavaScript [HTMLQuoteElement](https://developer.mozilla.org/en/docs/Web/API/HTMLQuoteElement) to Kotlin\n */\npublic external abstract class HTMLQuoteElement : HTMLElement {\n open var cite: String\n}\n\n/**\n * Exposes the JavaScript [HTMLOListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOListElement) to Kotlin\n */\npublic external abstract class HTMLOListElement : HTMLElement {\n open var reversed: Boolean\n open var start: Int\n open var type: String\n open var compact: Boolean\n}\n\n/**\n * Exposes the JavaScript [HTMLUListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLUListElement) to Kotlin\n */\npublic external abstract class HTMLUListElement : HTMLElement {\n open var compact: Boolean\n open var type: String\n}\n\n/**\n * Exposes the JavaScript [HTMLLIElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLIElement) to Kotlin\n */\npublic external abstract class HTMLLIElement : HTMLElement {\n open var value: Int\n open var type: String\n}\n\n/**\n * Exposes the JavaScript [HTMLDListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDListElement) to Kotlin\n */\npublic external abstract class HTMLDListElement : HTMLElement {\n open var compact: Boolean\n}\n\n/**\n * Exposes the JavaScript [HTMLDivElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDivElement) to Kotlin\n */\npublic external abstract class HTMLDivElement : HTMLElement {\n open var align: String\n}\n\n/**\n * Exposes the JavaScript [HTMLAnchorElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAnchorElement) to Kotlin\n */\npublic external abstract class HTMLAnchorElement : HTMLElement, HTMLHyperlinkElementUtils {\n open var target: String\n open var download: String\n open var ping: String\n open var rel: String\n open val relList: DOMTokenList\n open var hreflang: String\n open var type: String\n open var text: String\n open var referrerPolicy: String\n open var coords: String\n open var charset: String\n open var name: String\n open var rev: String\n open var shape: String\n}\n\n/**\n * Exposes the JavaScript [HTMLDataElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDataElement) to Kotlin\n */\npublic external abstract class HTMLDataElement : HTMLElement {\n open var value: String\n}\n\n/**\n * Exposes the JavaScript [HTMLTimeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTimeElement) to Kotlin\n */\npublic external abstract class HTMLTimeElement : HTMLElement {\n open var dateTime: String\n}\n\n/**\n * Exposes the JavaScript [HTMLSpanElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSpanElement) to Kotlin\n */\npublic external abstract class HTMLSpanElement : HTMLElement {\n}\n\n/**\n * Exposes the JavaScript [HTMLBRElement](https://developer.mozilla.org/en/docs/Web/API/HTMLBRElement) to Kotlin\n */\npublic external abstract class HTMLBRElement : HTMLElement {\n open var clear: String\n}\n\n/**\n * Exposes the JavaScript [HTMLHyperlinkElementUtils](https://developer.mozilla.org/en/docs/Web/API/HTMLHyperlinkElementUtils) to Kotlin\n */\npublic external interface HTMLHyperlinkElementUtils {\n var href: String\n val origin: String\n var protocol: String\n var username: String\n var password: String\n var host: String\n var hostname: String\n var port: String\n var pathname: String\n var search: String\n var hash: String\n}\n\n/**\n * Exposes the JavaScript [HTMLModElement](https://developer.mozilla.org/en/docs/Web/API/HTMLModElement) to Kotlin\n */\npublic external abstract class HTMLModElement : HTMLElement {\n open var cite: String\n open var dateTime: String\n}\n\n/**\n * Exposes the JavaScript [HTMLPictureElement](https://developer.mozilla.org/en/docs/Web/API/HTMLPictureElement) to Kotlin\n */\npublic external abstract class HTMLPictureElement : HTMLElement {\n}\n\n/**\n * Exposes the JavaScript [HTMLSourceElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSourceElement) to Kotlin\n */\npublic external abstract class HTMLSourceElement : HTMLElement {\n open var src: String\n open var type: String\n open var srcset: String\n open var sizes: String\n open var media: String\n}\n\n/**\n * Exposes the JavaScript [HTMLImageElement](https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement) to Kotlin\n */\npublic external abstract class HTMLImageElement : HTMLElement, TexImageSource, HTMLOrSVGImageElement {\n open var alt: String\n open var src: String\n open var srcset: String\n open var sizes: String\n open var crossOrigin: String?\n open var useMap: String\n open var isMap: Boolean\n open var width: Int\n open var height: Int\n open val naturalWidth: Int\n open val naturalHeight: Int\n open val complete: Boolean\n open val currentSrc: String\n open var referrerPolicy: String\n open var name: String\n open var lowsrc: String\n open var align: String\n open var hspace: Int\n open var vspace: Int\n open var longDesc: String\n open var border: String\n open val x: Int\n open val y: Int\n}\n\n/**\n * Exposes the JavaScript [Image](https://developer.mozilla.org/en/docs/Web/API/Image) to Kotlin\n */\npublic external open class Image(width: Int = definedExternally, height: Int = definedExternally) : HTMLImageElement {\n override val children: HTMLCollection\n override val firstElementChild: Element?\n override val lastElementChild: Element?\n override val childElementCount: Int\n override val previousElementSibling: Element?\n override val nextElementSibling: Element?\n override val assignedSlot: HTMLSlotElement?\n override val style: CSSStyleDeclaration\n override var ongotpointercapture: ((PointerEvent) -> dynamic)?\n override var onlostpointercapture: ((PointerEvent) -> dynamic)?\n override var onpointerdown: ((PointerEvent) -> dynamic)?\n override var onpointermove: ((PointerEvent) -> dynamic)?\n override var onpointerup: ((PointerEvent) -> dynamic)?\n override var onpointercancel: ((PointerEvent) -> dynamic)?\n override var onpointerover: ((PointerEvent) -> dynamic)?\n override var onpointerout: ((PointerEvent) -> dynamic)?\n override var onpointerenter: ((PointerEvent) -> dynamic)?\n override var onpointerleave: ((PointerEvent) -> dynamic)?\n override var onabort: ((Event) -> dynamic)?\n override var onblur: ((FocusEvent) -> dynamic)?\n override var oncancel: ((Event) -> dynamic)?\n override var oncanplay: ((Event) -> dynamic)?\n override var oncanplaythrough: ((Event) -> dynamic)?\n override var onchange: ((Event) -> dynamic)?\n override var onclick: ((MouseEvent) -> dynamic)?\n override var onclose: ((Event) -> dynamic)?\n override var oncontextmenu: ((MouseEvent) -> dynamic)?\n override var oncuechange: ((Event) -> dynamic)?\n override var ondblclick: ((MouseEvent) -> dynamic)?\n override var ondrag: ((DragEvent) -> dynamic)?\n override var ondragend: ((DragEvent) -> dynamic)?\n override var ondragenter: ((DragEvent) -> dynamic)?\n override var ondragexit: ((DragEvent) -> dynamic)?\n override var ondragleave: ((DragEvent) -> dynamic)?\n override var ondragover: ((DragEvent) -> dynamic)?\n override var ondragstart: ((DragEvent) -> dynamic)?\n override var ondrop: ((DragEvent) -> dynamic)?\n override var ondurationchange: ((Event) -> dynamic)?\n override var onemptied: ((Event) -> dynamic)?\n override var onended: ((Event) -> dynamic)?\n override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n override var onfocus: ((FocusEvent) -> dynamic)?\n override var oninput: ((InputEvent) -> dynamic)?\n override var oninvalid: ((Event) -> dynamic)?\n override var onkeydown: ((KeyboardEvent) -> dynamic)?\n override var onkeypress: ((KeyboardEvent) -> dynamic)?\n override var onkeyup: ((KeyboardEvent) -> dynamic)?\n override var onload: ((Event) -> dynamic)?\n override var onloadeddata: ((Event) -> dynamic)?\n override var onloadedmetadata: ((Event) -> dynamic)?\n override var onloadend: ((Event) -> dynamic)?\n override var onloadstart: ((ProgressEvent) -> dynamic)?\n override var onmousedown: ((MouseEvent) -> dynamic)?\n override var onmouseenter: ((MouseEvent) -> dynamic)?\n override var onmouseleave: ((MouseEvent) -> dynamic)?\n override var onmousemove: ((MouseEvent) -> dynamic)?\n override var onmouseout: ((MouseEvent) -> dynamic)?\n override var onmouseover: ((MouseEvent) -> dynamic)?\n override var onmouseup: ((MouseEvent) -> dynamic)?\n override var onwheel: ((WheelEvent) -> dynamic)?\n override var onpause: ((Event) -> dynamic)?\n override var onplay: ((Event) -> dynamic)?\n override var onplaying: ((Event) -> dynamic)?\n override var onprogress: ((ProgressEvent) -> dynamic)?\n override var onratechange: ((Event) -> dynamic)?\n override var onreset: ((Event) -> dynamic)?\n override var onresize: ((Event) -> dynamic)?\n override var onscroll: ((Event) -> dynamic)?\n override var onseeked: ((Event) -> dynamic)?\n override var onseeking: ((Event) -> dynamic)?\n override var onselect: ((Event) -> dynamic)?\n override var onshow: ((Event) -> dynamic)?\n override var onstalled: ((Event) -> dynamic)?\n override var onsubmit: ((Event) -> dynamic)?\n override var onsuspend: ((Event) -> dynamic)?\n override var ontimeupdate: ((Event) -> dynamic)?\n override var ontoggle: ((Event) -> dynamic)?\n override var onvolumechange: ((Event) -> dynamic)?\n override var onwaiting: ((Event) -> dynamic)?\n override var oncopy: ((ClipboardEvent) -> dynamic)?\n override var oncut: ((ClipboardEvent) -> dynamic)?\n override var onpaste: ((ClipboardEvent) -> dynamic)?\n override var contentEditable: String\n override val isContentEditable: Boolean\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun before(vararg nodes: dynamic): Unit\n override fun after(vararg nodes: dynamic): Unit\n override fun replaceWith(vararg nodes: dynamic): Unit\n override fun remove(): Unit\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [HTMLIFrameElement](https://developer.mozilla.org/en/docs/Web/API/HTMLIFrameElement) to Kotlin\n */\npublic external abstract class HTMLIFrameElement : HTMLElement {\n open var src: String\n open var srcdoc: String\n open var name: String\n open val sandbox: DOMTokenList\n open var allowFullscreen: Boolean\n open var allowUserMedia: Boolean\n open var width: String\n open var height: String\n open var referrerPolicy: String\n open val contentDocument: Document?\n open val contentWindow: Window?\n open var align: String\n open var scrolling: String\n open var frameBorder: String\n open var longDesc: String\n open var marginHeight: String\n open var marginWidth: String\n fun getSVGDocument(): Document?\n}\n\n/**\n * Exposes the JavaScript [HTMLEmbedElement](https://developer.mozilla.org/en/docs/Web/API/HTMLEmbedElement) to Kotlin\n */\npublic external abstract class HTMLEmbedElement : HTMLElement {\n open var src: String\n open var type: String\n open var width: String\n open var height: String\n open var align: String\n open var name: String\n fun getSVGDocument(): Document?\n}\n\n/**\n * Exposes the JavaScript [HTMLObjectElement](https://developer.mozilla.org/en/docs/Web/API/HTMLObjectElement) to Kotlin\n */\npublic external abstract class HTMLObjectElement : HTMLElement {\n open var data: String\n open var type: String\n open var typeMustMatch: Boolean\n open var name: String\n open var useMap: String\n open val form: HTMLFormElement?\n open var width: String\n open var height: String\n open val contentDocument: Document?\n open val contentWindow: Window?\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open var align: String\n open var archive: String\n open var code: String\n open var declare: Boolean\n open var hspace: Int\n open var standby: String\n open var vspace: Int\n open var codeBase: String\n open var codeType: String\n open var border: String\n fun getSVGDocument(): Document?\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLParamElement](https://developer.mozilla.org/en/docs/Web/API/HTMLParamElement) to Kotlin\n */\npublic external abstract class HTMLParamElement : HTMLElement {\n open var name: String\n open var value: String\n open var type: String\n open var valueType: String\n}\n\n/**\n * Exposes the JavaScript [HTMLVideoElement](https://developer.mozilla.org/en/docs/Web/API/HTMLVideoElement) to Kotlin\n */\npublic external abstract class HTMLVideoElement : HTMLMediaElement, TexImageSource {\n open var width: Int\n open var height: Int\n open val videoWidth: Int\n open val videoHeight: Int\n open var poster: String\n open var playsInline: Boolean\n}\n\n/**\n * Exposes the JavaScript [HTMLAudioElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAudioElement) to Kotlin\n */\npublic external abstract class HTMLAudioElement : HTMLMediaElement {\n}\n\npublic external open class Audio(src: String = definedExternally) : HTMLAudioElement {\n override val children: HTMLCollection\n override val firstElementChild: Element?\n override val lastElementChild: Element?\n override val childElementCount: Int\n override val previousElementSibling: Element?\n override val nextElementSibling: Element?\n override val assignedSlot: HTMLSlotElement?\n override val style: CSSStyleDeclaration\n override var ongotpointercapture: ((PointerEvent) -> dynamic)?\n override var onlostpointercapture: ((PointerEvent) -> dynamic)?\n override var onpointerdown: ((PointerEvent) -> dynamic)?\n override var onpointermove: ((PointerEvent) -> dynamic)?\n override var onpointerup: ((PointerEvent) -> dynamic)?\n override var onpointercancel: ((PointerEvent) -> dynamic)?\n override var onpointerover: ((PointerEvent) -> dynamic)?\n override var onpointerout: ((PointerEvent) -> dynamic)?\n override var onpointerenter: ((PointerEvent) -> dynamic)?\n override var onpointerleave: ((PointerEvent) -> dynamic)?\n override var onabort: ((Event) -> dynamic)?\n override var onblur: ((FocusEvent) -> dynamic)?\n override var oncancel: ((Event) -> dynamic)?\n override var oncanplay: ((Event) -> dynamic)?\n override var oncanplaythrough: ((Event) -> dynamic)?\n override var onchange: ((Event) -> dynamic)?\n override var onclick: ((MouseEvent) -> dynamic)?\n override var onclose: ((Event) -> dynamic)?\n override var oncontextmenu: ((MouseEvent) -> dynamic)?\n override var oncuechange: ((Event) -> dynamic)?\n override var ondblclick: ((MouseEvent) -> dynamic)?\n override var ondrag: ((DragEvent) -> dynamic)?\n override var ondragend: ((DragEvent) -> dynamic)?\n override var ondragenter: ((DragEvent) -> dynamic)?\n override var ondragexit: ((DragEvent) -> dynamic)?\n override var ondragleave: ((DragEvent) -> dynamic)?\n override var ondragover: ((DragEvent) -> dynamic)?\n override var ondragstart: ((DragEvent) -> dynamic)?\n override var ondrop: ((DragEvent) -> dynamic)?\n override var ondurationchange: ((Event) -> dynamic)?\n override var onemptied: ((Event) -> dynamic)?\n override var onended: ((Event) -> dynamic)?\n override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n override var onfocus: ((FocusEvent) -> dynamic)?\n override var oninput: ((InputEvent) -> dynamic)?\n override var oninvalid: ((Event) -> dynamic)?\n override var onkeydown: ((KeyboardEvent) -> dynamic)?\n override var onkeypress: ((KeyboardEvent) -> dynamic)?\n override var onkeyup: ((KeyboardEvent) -> dynamic)?\n override var onload: ((Event) -> dynamic)?\n override var onloadeddata: ((Event) -> dynamic)?\n override var onloadedmetadata: ((Event) -> dynamic)?\n override var onloadend: ((Event) -> dynamic)?\n override var onloadstart: ((ProgressEvent) -> dynamic)?\n override var onmousedown: ((MouseEvent) -> dynamic)?\n override var onmouseenter: ((MouseEvent) -> dynamic)?\n override var onmouseleave: ((MouseEvent) -> dynamic)?\n override var onmousemove: ((MouseEvent) -> dynamic)?\n override var onmouseout: ((MouseEvent) -> dynamic)?\n override var onmouseover: ((MouseEvent) -> dynamic)?\n override var onmouseup: ((MouseEvent) -> dynamic)?\n override var onwheel: ((WheelEvent) -> dynamic)?\n override var onpause: ((Event) -> dynamic)?\n override var onplay: ((Event) -> dynamic)?\n override var onplaying: ((Event) -> dynamic)?\n override var onprogress: ((ProgressEvent) -> dynamic)?\n override var onratechange: ((Event) -> dynamic)?\n override var onreset: ((Event) -> dynamic)?\n override var onresize: ((Event) -> dynamic)?\n override var onscroll: ((Event) -> dynamic)?\n override var onseeked: ((Event) -> dynamic)?\n override var onseeking: ((Event) -> dynamic)?\n override var onselect: ((Event) -> dynamic)?\n override var onshow: ((Event) -> dynamic)?\n override var onstalled: ((Event) -> dynamic)?\n override var onsubmit: ((Event) -> dynamic)?\n override var onsuspend: ((Event) -> dynamic)?\n override var ontimeupdate: ((Event) -> dynamic)?\n override var ontoggle: ((Event) -> dynamic)?\n override var onvolumechange: ((Event) -> dynamic)?\n override var onwaiting: ((Event) -> dynamic)?\n override var oncopy: ((ClipboardEvent) -> dynamic)?\n override var oncut: ((ClipboardEvent) -> dynamic)?\n override var onpaste: ((ClipboardEvent) -> dynamic)?\n override var contentEditable: String\n override val isContentEditable: Boolean\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun before(vararg nodes: dynamic): Unit\n override fun after(vararg nodes: dynamic): Unit\n override fun replaceWith(vararg nodes: dynamic): Unit\n override fun remove(): Unit\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [HTMLTrackElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTrackElement) to Kotlin\n */\npublic external abstract class HTMLTrackElement : HTMLElement {\n open var kind: String\n open var src: String\n open var srclang: String\n open var label: String\n open var default: Boolean\n open val readyState: Short\n open val track: TextTrack\n\n companion object {\n val NONE: Short\n val LOADING: Short\n val LOADED: Short\n val ERROR: Short\n }\n}\n\n/**\n * Exposes the JavaScript [HTMLMediaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMediaElement) to Kotlin\n */\npublic external abstract class HTMLMediaElement : HTMLElement {\n open val error: MediaError?\n open var src: String\n open var srcObject: dynamic\n open val currentSrc: String\n open var crossOrigin: String?\n open val networkState: Short\n open var preload: String\n open val buffered: TimeRanges\n open val readyState: Short\n open val seeking: Boolean\n open var currentTime: Double\n open val duration: Double\n open val paused: Boolean\n open var defaultPlaybackRate: Double\n open var playbackRate: Double\n open val played: TimeRanges\n open val seekable: TimeRanges\n open val ended: Boolean\n open var autoplay: Boolean\n open var loop: Boolean\n open var controls: Boolean\n open var volume: Double\n open var muted: Boolean\n open var defaultMuted: Boolean\n open val audioTracks: AudioTrackList\n open val videoTracks: VideoTrackList\n open val textTracks: TextTrackList\n fun load(): Unit\n fun canPlayType(type: String): CanPlayTypeResult\n fun fastSeek(time: Double): Unit\n fun getStartDate(): dynamic\n fun play(): Promise\n fun pause(): Unit\n fun addTextTrack(kind: TextTrackKind, label: String = definedExternally, language: String = definedExternally): TextTrack\n\n companion object {\n val NETWORK_EMPTY: Short\n val NETWORK_IDLE: Short\n val NETWORK_LOADING: Short\n val NETWORK_NO_SOURCE: Short\n val HAVE_NOTHING: Short\n val HAVE_METADATA: Short\n val HAVE_CURRENT_DATA: Short\n val HAVE_FUTURE_DATA: Short\n val HAVE_ENOUGH_DATA: Short\n }\n}\n\n/**\n * Exposes the JavaScript [MediaError](https://developer.mozilla.org/en/docs/Web/API/MediaError) to Kotlin\n */\npublic external abstract class MediaError {\n open val code: Short\n\n companion object {\n val MEDIA_ERR_ABORTED: Short\n val MEDIA_ERR_NETWORK: Short\n val MEDIA_ERR_DECODE: Short\n val MEDIA_ERR_SRC_NOT_SUPPORTED: Short\n }\n}\n\n/**\n * Exposes the JavaScript [AudioTrackList](https://developer.mozilla.org/en/docs/Web/API/AudioTrackList) to Kotlin\n */\npublic external abstract class AudioTrackList : EventTarget {\n open val length: Int\n open var onchange: ((Event) -> dynamic)?\n open var onaddtrack: ((TrackEvent) -> dynamic)?\n open var onremovetrack: ((TrackEvent) -> dynamic)?\n fun getTrackById(id: String): AudioTrack?\n}\n@kotlin.internal.InlineOnly inline operator fun AudioTrackList.get(index: Int): AudioTrack? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [AudioTrack](https://developer.mozilla.org/en/docs/Web/API/AudioTrack) to Kotlin\n */\npublic external abstract class AudioTrack : UnionAudioTrackOrTextTrackOrVideoTrack {\n open val id: String\n open val kind: String\n open val label: String\n open val language: String\n open var enabled: Boolean\n}\n\n/**\n * Exposes the JavaScript [VideoTrackList](https://developer.mozilla.org/en/docs/Web/API/VideoTrackList) to Kotlin\n */\npublic external abstract class VideoTrackList : EventTarget {\n open val length: Int\n open val selectedIndex: Int\n open var onchange: ((Event) -> dynamic)?\n open var onaddtrack: ((TrackEvent) -> dynamic)?\n open var onremovetrack: ((TrackEvent) -> dynamic)?\n fun getTrackById(id: String): VideoTrack?\n}\n@kotlin.internal.InlineOnly inline operator fun VideoTrackList.get(index: Int): VideoTrack? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [VideoTrack](https://developer.mozilla.org/en/docs/Web/API/VideoTrack) to Kotlin\n */\npublic external abstract class VideoTrack : UnionAudioTrackOrTextTrackOrVideoTrack {\n open val id: String\n open val kind: String\n open val label: String\n open val language: String\n open var selected: Boolean\n}\n\npublic external abstract class TextTrackList : EventTarget {\n open val length: Int\n open var onchange: ((Event) -> dynamic)?\n open var onaddtrack: ((TrackEvent) -> dynamic)?\n open var onremovetrack: ((TrackEvent) -> dynamic)?\n fun getTrackById(id: String): TextTrack?\n}\n@kotlin.internal.InlineOnly inline operator fun TextTrackList.get(index: Int): TextTrack? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [TextTrack](https://developer.mozilla.org/en/docs/Web/API/TextTrack) to Kotlin\n */\npublic external abstract class TextTrack : EventTarget, UnionAudioTrackOrTextTrackOrVideoTrack {\n open val kind: TextTrackKind\n open val label: String\n open val language: String\n open val id: String\n open val inBandMetadataTrackDispatchType: String\n open var mode: TextTrackMode\n open val cues: TextTrackCueList?\n open val activeCues: TextTrackCueList?\n open var oncuechange: ((Event) -> dynamic)?\n fun addCue(cue: TextTrackCue): Unit\n fun removeCue(cue: TextTrackCue): Unit\n}\n\npublic external abstract class TextTrackCueList {\n open val length: Int\n fun getCueById(id: String): TextTrackCue?\n}\n@kotlin.internal.InlineOnly inline operator fun TextTrackCueList.get(index: Int): TextTrackCue? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [TextTrackCue](https://developer.mozilla.org/en/docs/Web/API/TextTrackCue) to Kotlin\n */\npublic external abstract class TextTrackCue : EventTarget {\n open val track: TextTrack?\n open var id: String\n open var startTime: Double\n open var endTime: Double\n open var pauseOnExit: Boolean\n open var onenter: ((Event) -> dynamic)?\n open var onexit: ((Event) -> dynamic)?\n}\n\n/**\n * Exposes the JavaScript [TimeRanges](https://developer.mozilla.org/en/docs/Web/API/TimeRanges) to Kotlin\n */\npublic external abstract class TimeRanges {\n open val length: Int\n fun start(index: Int): Double\n fun end(index: Int): Double\n}\n\n/**\n * Exposes the JavaScript [TrackEvent](https://developer.mozilla.org/en/docs/Web/API/TrackEvent) to Kotlin\n */\npublic external open class TrackEvent(type: String, eventInitDict: TrackEventInit = definedExternally) : Event {\n open val track: UnionAudioTrackOrTextTrackOrVideoTrack?\n}\n\npublic external interface TrackEventInit : EventInit {\n var track: UnionAudioTrackOrTextTrackOrVideoTrack? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun TrackEventInit(track: UnionAudioTrackOrTextTrackOrVideoTrack? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): TrackEventInit {\n val o = js(\"({})\")\n\n o[\"track\"] = track\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [HTMLMapElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMapElement) to Kotlin\n */\npublic external abstract class HTMLMapElement : HTMLElement {\n open var name: String\n open val areas: HTMLCollection\n}\n\n/**\n * Exposes the JavaScript [HTMLAreaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLAreaElement) to Kotlin\n */\npublic external abstract class HTMLAreaElement : HTMLElement, HTMLHyperlinkElementUtils {\n open var alt: String\n open var coords: String\n open var shape: String\n open var target: String\n open var download: String\n open var ping: String\n open var rel: String\n open val relList: DOMTokenList\n open var referrerPolicy: String\n open var noHref: Boolean\n}\n\n/**\n * Exposes the JavaScript [HTMLTableElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableElement) to Kotlin\n */\npublic external abstract class HTMLTableElement : HTMLElement {\n open var caption: HTMLTableCaptionElement?\n open var tHead: HTMLTableSectionElement?\n open var tFoot: HTMLTableSectionElement?\n open val tBodies: HTMLCollection\n open val rows: HTMLCollection\n open var align: String\n open var border: String\n open var frame: String\n open var rules: String\n open var summary: String\n open var width: String\n open var bgColor: String\n open var cellPadding: String\n open var cellSpacing: String\n fun createCaption(): HTMLTableCaptionElement\n fun deleteCaption(): Unit\n fun createTHead(): HTMLTableSectionElement\n fun deleteTHead(): Unit\n fun createTFoot(): HTMLTableSectionElement\n fun deleteTFoot(): Unit\n fun createTBody(): HTMLTableSectionElement\n fun insertRow(index: Int = definedExternally): HTMLTableRowElement\n fun deleteRow(index: Int): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLTableCaptionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableCaptionElement) to Kotlin\n */\npublic external abstract class HTMLTableCaptionElement : HTMLElement {\n open var align: String\n}\n\n/**\n * Exposes the JavaScript [HTMLTableColElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableColElement) to Kotlin\n */\npublic external abstract class HTMLTableColElement : HTMLElement {\n open var span: Int\n open var align: String\n open var ch: String\n open var chOff: String\n open var vAlign: String\n open var width: String\n}\n\n/**\n * Exposes the JavaScript [HTMLTableSectionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableSectionElement) to Kotlin\n */\npublic external abstract class HTMLTableSectionElement : HTMLElement {\n open val rows: HTMLCollection\n open var align: String\n open var ch: String\n open var chOff: String\n open var vAlign: String\n fun insertRow(index: Int = definedExternally): HTMLElement\n fun deleteRow(index: Int): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLTableRowElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableRowElement) to Kotlin\n */\npublic external abstract class HTMLTableRowElement : HTMLElement {\n open val rowIndex: Int\n open val sectionRowIndex: Int\n open val cells: HTMLCollection\n open var align: String\n open var ch: String\n open var chOff: String\n open var vAlign: String\n open var bgColor: String\n fun insertCell(index: Int = definedExternally): HTMLElement\n fun deleteCell(index: Int): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLTableCellElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTableCellElement) to Kotlin\n */\npublic external abstract class HTMLTableCellElement : HTMLElement {\n open var colSpan: Int\n open var rowSpan: Int\n open var headers: String\n open val cellIndex: Int\n open var scope: String\n open var abbr: String\n open var align: String\n open var axis: String\n open var height: String\n open var width: String\n open var ch: String\n open var chOff: String\n open var noWrap: Boolean\n open var vAlign: String\n open var bgColor: String\n}\n\n/**\n * Exposes the JavaScript [HTMLFormElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement) to Kotlin\n */\npublic external abstract class HTMLFormElement : HTMLElement {\n open var acceptCharset: String\n open var action: String\n open var autocomplete: String\n open var enctype: String\n open var encoding: String\n open var method: String\n open var name: String\n open var noValidate: Boolean\n open var target: String\n open val elements: HTMLFormControlsCollection\n open val length: Int\n fun submit(): Unit\n fun reset(): Unit\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n}\n@kotlin.internal.InlineOnly inline operator fun HTMLFormElement.get(index: Int): Element? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun HTMLFormElement.get(name: String): UnionElementOrRadioNodeList? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [HTMLLabelElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLabelElement) to Kotlin\n */\npublic external abstract class HTMLLabelElement : HTMLElement {\n open val form: HTMLFormElement?\n open var htmlFor: String\n open val control: HTMLElement?\n}\n\n/**\n * Exposes the JavaScript [HTMLInputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement) to Kotlin\n */\npublic external abstract class HTMLInputElement : HTMLElement {\n open var accept: String\n open var alt: String\n open var autocomplete: String\n open var autofocus: Boolean\n open var defaultChecked: Boolean\n open var checked: Boolean\n open var dirName: String\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open val files: FileList?\n open var formAction: String\n open var formEnctype: String\n open var formMethod: String\n open var formNoValidate: Boolean\n open var formTarget: String\n open var height: Int\n open var indeterminate: Boolean\n open var inputMode: String\n open val list: HTMLElement?\n open var max: String\n open var maxLength: Int\n open var min: String\n open var minLength: Int\n open var multiple: Boolean\n open var name: String\n open var pattern: String\n open var placeholder: String\n open var readOnly: Boolean\n open var required: Boolean\n open var size: Int\n open var src: String\n open var step: String\n open var type: String\n open var defaultValue: String\n open var value: String\n open var valueAsDate: dynamic\n open var valueAsNumber: Double\n open var width: Int\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open val labels: NodeList\n open var selectionStart: Int?\n open var selectionEnd: Int?\n open var selectionDirection: String?\n open var align: String\n open var useMap: String\n fun stepUp(n: Int = definedExternally): Unit\n fun stepDown(n: Int = definedExternally): Unit\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n fun select(): Unit\n fun setRangeText(replacement: String): Unit\n fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally): Unit\n fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLButtonElement](https://developer.mozilla.org/en/docs/Web/API/HTMLButtonElement) to Kotlin\n */\npublic external abstract class HTMLButtonElement : HTMLElement {\n open var autofocus: Boolean\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open var formAction: String\n open var formEnctype: String\n open var formMethod: String\n open var formNoValidate: Boolean\n open var formTarget: String\n open var name: String\n open var type: String\n open var value: String\n open var menu: HTMLMenuElement?\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open val labels: NodeList\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLSelectElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSelectElement) to Kotlin\n */\npublic external abstract class HTMLSelectElement : HTMLElement, ItemArrayLike {\n open var autocomplete: String\n open var autofocus: Boolean\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open var multiple: Boolean\n open var name: String\n open var required: Boolean\n open var size: Int\n open val type: String\n open val options: HTMLOptionsCollection\n override var length: Int\n open val selectedOptions: HTMLCollection\n open var selectedIndex: Int\n open var value: String\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open val labels: NodeList\n override fun item(index: Int): Element?\n fun namedItem(name: String): HTMLOptionElement?\n fun add(element: UnionHTMLOptGroupElementOrHTMLOptionElement, before: dynamic = definedExternally): Unit\n fun remove(index: Int): Unit\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n}\n@kotlin.internal.InlineOnly inline operator fun HTMLSelectElement.get(index: Int): Element? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun HTMLSelectElement.set(index: Int, option: HTMLOptionElement?): Unit { asDynamic()[index] = option; }\n\n/**\n * Exposes the JavaScript [HTMLDataListElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDataListElement) to Kotlin\n */\npublic external abstract class HTMLDataListElement : HTMLElement {\n open val options: HTMLCollection\n}\n\n/**\n * Exposes the JavaScript [HTMLOptGroupElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOptGroupElement) to Kotlin\n */\npublic external abstract class HTMLOptGroupElement : HTMLElement, UnionHTMLOptGroupElementOrHTMLOptionElement {\n open var disabled: Boolean\n open var label: String\n}\n\n/**\n * Exposes the JavaScript [HTMLOptionElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOptionElement) to Kotlin\n */\npublic external abstract class HTMLOptionElement : HTMLElement, UnionHTMLOptGroupElementOrHTMLOptionElement {\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open var label: String\n open var defaultSelected: Boolean\n open var selected: Boolean\n open var value: String\n open var text: String\n open val index: Int\n}\n\n/**\n * Exposes the JavaScript [Option](https://developer.mozilla.org/en/docs/Web/API/Option) to Kotlin\n */\npublic external open class Option(text: String = definedExternally, value: String = definedExternally, defaultSelected: Boolean = definedExternally, selected: Boolean = definedExternally) : HTMLOptionElement {\n override val children: HTMLCollection\n override val firstElementChild: Element?\n override val lastElementChild: Element?\n override val childElementCount: Int\n override val previousElementSibling: Element?\n override val nextElementSibling: Element?\n override val assignedSlot: HTMLSlotElement?\n override val style: CSSStyleDeclaration\n override var ongotpointercapture: ((PointerEvent) -> dynamic)?\n override var onlostpointercapture: ((PointerEvent) -> dynamic)?\n override var onpointerdown: ((PointerEvent) -> dynamic)?\n override var onpointermove: ((PointerEvent) -> dynamic)?\n override var onpointerup: ((PointerEvent) -> dynamic)?\n override var onpointercancel: ((PointerEvent) -> dynamic)?\n override var onpointerover: ((PointerEvent) -> dynamic)?\n override var onpointerout: ((PointerEvent) -> dynamic)?\n override var onpointerenter: ((PointerEvent) -> dynamic)?\n override var onpointerleave: ((PointerEvent) -> dynamic)?\n override var onabort: ((Event) -> dynamic)?\n override var onblur: ((FocusEvent) -> dynamic)?\n override var oncancel: ((Event) -> dynamic)?\n override var oncanplay: ((Event) -> dynamic)?\n override var oncanplaythrough: ((Event) -> dynamic)?\n override var onchange: ((Event) -> dynamic)?\n override var onclick: ((MouseEvent) -> dynamic)?\n override var onclose: ((Event) -> dynamic)?\n override var oncontextmenu: ((MouseEvent) -> dynamic)?\n override var oncuechange: ((Event) -> dynamic)?\n override var ondblclick: ((MouseEvent) -> dynamic)?\n override var ondrag: ((DragEvent) -> dynamic)?\n override var ondragend: ((DragEvent) -> dynamic)?\n override var ondragenter: ((DragEvent) -> dynamic)?\n override var ondragexit: ((DragEvent) -> dynamic)?\n override var ondragleave: ((DragEvent) -> dynamic)?\n override var ondragover: ((DragEvent) -> dynamic)?\n override var ondragstart: ((DragEvent) -> dynamic)?\n override var ondrop: ((DragEvent) -> dynamic)?\n override var ondurationchange: ((Event) -> dynamic)?\n override var onemptied: ((Event) -> dynamic)?\n override var onended: ((Event) -> dynamic)?\n override var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n override var onfocus: ((FocusEvent) -> dynamic)?\n override var oninput: ((InputEvent) -> dynamic)?\n override var oninvalid: ((Event) -> dynamic)?\n override var onkeydown: ((KeyboardEvent) -> dynamic)?\n override var onkeypress: ((KeyboardEvent) -> dynamic)?\n override var onkeyup: ((KeyboardEvent) -> dynamic)?\n override var onload: ((Event) -> dynamic)?\n override var onloadeddata: ((Event) -> dynamic)?\n override var onloadedmetadata: ((Event) -> dynamic)?\n override var onloadend: ((Event) -> dynamic)?\n override var onloadstart: ((ProgressEvent) -> dynamic)?\n override var onmousedown: ((MouseEvent) -> dynamic)?\n override var onmouseenter: ((MouseEvent) -> dynamic)?\n override var onmouseleave: ((MouseEvent) -> dynamic)?\n override var onmousemove: ((MouseEvent) -> dynamic)?\n override var onmouseout: ((MouseEvent) -> dynamic)?\n override var onmouseover: ((MouseEvent) -> dynamic)?\n override var onmouseup: ((MouseEvent) -> dynamic)?\n override var onwheel: ((WheelEvent) -> dynamic)?\n override var onpause: ((Event) -> dynamic)?\n override var onplay: ((Event) -> dynamic)?\n override var onplaying: ((Event) -> dynamic)?\n override var onprogress: ((ProgressEvent) -> dynamic)?\n override var onratechange: ((Event) -> dynamic)?\n override var onreset: ((Event) -> dynamic)?\n override var onresize: ((Event) -> dynamic)?\n override var onscroll: ((Event) -> dynamic)?\n override var onseeked: ((Event) -> dynamic)?\n override var onseeking: ((Event) -> dynamic)?\n override var onselect: ((Event) -> dynamic)?\n override var onshow: ((Event) -> dynamic)?\n override var onstalled: ((Event) -> dynamic)?\n override var onsubmit: ((Event) -> dynamic)?\n override var onsuspend: ((Event) -> dynamic)?\n override var ontimeupdate: ((Event) -> dynamic)?\n override var ontoggle: ((Event) -> dynamic)?\n override var onvolumechange: ((Event) -> dynamic)?\n override var onwaiting: ((Event) -> dynamic)?\n override var oncopy: ((ClipboardEvent) -> dynamic)?\n override var oncut: ((ClipboardEvent) -> dynamic)?\n override var onpaste: ((ClipboardEvent) -> dynamic)?\n override var contentEditable: String\n override val isContentEditable: Boolean\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun before(vararg nodes: dynamic): Unit\n override fun after(vararg nodes: dynamic): Unit\n override fun replaceWith(vararg nodes: dynamic): Unit\n override fun remove(): Unit\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [HTMLTextAreaElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTextAreaElement) to Kotlin\n */\npublic external abstract class HTMLTextAreaElement : HTMLElement {\n open var autocomplete: String\n open var autofocus: Boolean\n open var cols: Int\n open var dirName: String\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open var inputMode: String\n open var maxLength: Int\n open var minLength: Int\n open var name: String\n open var placeholder: String\n open var readOnly: Boolean\n open var required: Boolean\n open var rows: Int\n open var wrap: String\n open val type: String\n open var defaultValue: String\n open var value: String\n open val textLength: Int\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open val labels: NodeList\n open var selectionStart: Int?\n open var selectionEnd: Int?\n open var selectionDirection: String?\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n fun select(): Unit\n fun setRangeText(replacement: String): Unit\n fun setRangeText(replacement: String, start: Int, end: Int, selectionMode: SelectionMode = definedExternally): Unit\n fun setSelectionRange(start: Int, end: Int, direction: String = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLKeygenElement](https://developer.mozilla.org/en/docs/Web/API/HTMLKeygenElement) to Kotlin\n */\npublic external abstract class HTMLKeygenElement : HTMLElement {\n open var autofocus: Boolean\n open var challenge: String\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open var keytype: String\n open var name: String\n open val type: String\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open val labels: NodeList\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLOutputElement](https://developer.mozilla.org/en/docs/Web/API/HTMLOutputElement) to Kotlin\n */\npublic external abstract class HTMLOutputElement : HTMLElement {\n open val htmlFor: DOMTokenList\n open val form: HTMLFormElement?\n open var name: String\n open val type: String\n open var defaultValue: String\n open var value: String\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n open val labels: NodeList\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLProgressElement](https://developer.mozilla.org/en/docs/Web/API/HTMLProgressElement) to Kotlin\n */\npublic external abstract class HTMLProgressElement : HTMLElement {\n open var value: Double\n open var max: Double\n open val position: Double\n open val labels: NodeList\n}\n\n/**\n * Exposes the JavaScript [HTMLMeterElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMeterElement) to Kotlin\n */\npublic external abstract class HTMLMeterElement : HTMLElement {\n open var value: Double\n open var min: Double\n open var max: Double\n open var low: Double\n open var high: Double\n open var optimum: Double\n open val labels: NodeList\n}\n\n/**\n * Exposes the JavaScript [HTMLFieldSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFieldSetElement) to Kotlin\n */\npublic external abstract class HTMLFieldSetElement : HTMLElement {\n open var disabled: Boolean\n open val form: HTMLFormElement?\n open var name: String\n open val type: String\n open val elements: HTMLCollection\n open val willValidate: Boolean\n open val validity: ValidityState\n open val validationMessage: String\n fun checkValidity(): Boolean\n fun reportValidity(): Boolean\n fun setCustomValidity(error: String): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLLegendElement](https://developer.mozilla.org/en/docs/Web/API/HTMLLegendElement) to Kotlin\n */\npublic external abstract class HTMLLegendElement : HTMLElement {\n open val form: HTMLFormElement?\n open var align: String\n}\n\n/**\n * Exposes the JavaScript [ValidityState](https://developer.mozilla.org/en/docs/Web/API/ValidityState) to Kotlin\n */\npublic external abstract class ValidityState {\n open val valueMissing: Boolean\n open val typeMismatch: Boolean\n open val patternMismatch: Boolean\n open val tooLong: Boolean\n open val tooShort: Boolean\n open val rangeUnderflow: Boolean\n open val rangeOverflow: Boolean\n open val stepMismatch: Boolean\n open val badInput: Boolean\n open val customError: Boolean\n open val valid: Boolean\n}\n\n/**\n * Exposes the JavaScript [HTMLDetailsElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDetailsElement) to Kotlin\n */\npublic external abstract class HTMLDetailsElement : HTMLElement {\n open var open: Boolean\n}\n\npublic external abstract class HTMLMenuElement : HTMLElement {\n open var type: String\n open var label: String\n open var compact: Boolean\n}\n\npublic external abstract class HTMLMenuItemElement : HTMLElement {\n open var type: String\n open var label: String\n open var icon: String\n open var disabled: Boolean\n open var checked: Boolean\n open var radiogroup: String\n open var default: Boolean\n}\n\npublic external open class RelatedEvent(type: String, eventInitDict: RelatedEventInit = definedExternally) : Event {\n open val relatedTarget: EventTarget?\n}\n\npublic external interface RelatedEventInit : EventInit {\n var relatedTarget: EventTarget? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun RelatedEventInit(relatedTarget: EventTarget? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): RelatedEventInit {\n val o = js(\"({})\")\n\n o[\"relatedTarget\"] = relatedTarget\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [HTMLDialogElement](https://developer.mozilla.org/en/docs/Web/API/HTMLDialogElement) to Kotlin\n */\npublic external abstract class HTMLDialogElement : HTMLElement {\n open var open: Boolean\n open var returnValue: String\n fun show(anchor: UnionElementOrMouseEvent = definedExternally): Unit\n fun showModal(anchor: UnionElementOrMouseEvent = definedExternally): Unit\n fun close(returnValue: String = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLScriptElement](https://developer.mozilla.org/en/docs/Web/API/HTMLScriptElement) to Kotlin\n */\npublic external abstract class HTMLScriptElement : HTMLElement, HTMLOrSVGScriptElement {\n open var src: String\n open var type: String\n open var charset: String\n open var async: Boolean\n open var defer: Boolean\n open var crossOrigin: String?\n open var text: String\n open var nonce: String\n open var event: String\n open var htmlFor: String\n}\n\n/**\n * Exposes the JavaScript [HTMLTemplateElement](https://developer.mozilla.org/en/docs/Web/API/HTMLTemplateElement) to Kotlin\n */\npublic external abstract class HTMLTemplateElement : HTMLElement {\n open val content: DocumentFragment\n}\n\n/**\n * Exposes the JavaScript [HTMLSlotElement](https://developer.mozilla.org/en/docs/Web/API/HTMLSlotElement) to Kotlin\n */\npublic external abstract class HTMLSlotElement : HTMLElement {\n open var name: String\n fun assignedNodes(options: AssignedNodesOptions = definedExternally): Array\n}\n\npublic external interface AssignedNodesOptions {\n var flatten: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun AssignedNodesOptions(flatten: Boolean? = false): AssignedNodesOptions {\n val o = js(\"({})\")\n\n o[\"flatten\"] = flatten\n\n return o\n}\n\n/**\n * Exposes the JavaScript [HTMLCanvasElement](https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement) to Kotlin\n */\npublic external abstract class HTMLCanvasElement : HTMLElement, TexImageSource {\n open var width: Int\n open var height: Int\n fun getContext(contextId: String, vararg arguments: Any?): RenderingContext?\n fun toDataURL(type: String = definedExternally, quality: Any? = definedExternally): String\n fun toBlob(_callback: (Blob?) -> Unit, type: String = definedExternally, quality: Any? = definedExternally): Unit\n}\n\npublic external interface CanvasRenderingContext2DSettings {\n var alpha: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun CanvasRenderingContext2DSettings(alpha: Boolean? = true): CanvasRenderingContext2DSettings {\n val o = js(\"({})\")\n\n o[\"alpha\"] = alpha\n\n return o\n}\n\n/**\n * Exposes the JavaScript [CanvasRenderingContext2D](https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D) to Kotlin\n */\npublic external abstract class CanvasRenderingContext2D : CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasHitRegion, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath, RenderingContext {\n open val canvas: HTMLCanvasElement\n}\n\npublic external interface CanvasState {\n fun save(): Unit\n fun restore(): Unit\n}\n\npublic external interface CanvasTransform {\n fun scale(x: Double, y: Double): Unit\n fun rotate(angle: Double): Unit\n fun translate(x: Double, y: Double): Unit\n fun transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double): Unit\n fun getTransform(): DOMMatrix\n fun setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double): Unit\n fun setTransform(transform: dynamic = definedExternally): Unit\n fun resetTransform(): Unit\n}\n\npublic external interface CanvasCompositing {\n var globalAlpha: Double\n var globalCompositeOperation: String\n}\n\npublic external interface CanvasImageSmoothing {\n var imageSmoothingEnabled: Boolean\n var imageSmoothingQuality: ImageSmoothingQuality\n}\n\npublic external interface CanvasFillStrokeStyles {\n var strokeStyle: dynamic\n var fillStyle: dynamic\n fun createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double): CanvasGradient\n fun createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double): CanvasGradient\n fun createPattern(image: dynamic, repetition: String): CanvasPattern?\n}\n\npublic external interface CanvasShadowStyles {\n var shadowOffsetX: Double\n var shadowOffsetY: Double\n var shadowBlur: Double\n var shadowColor: String\n}\n\npublic external interface CanvasFilters {\n var filter: String\n}\n\npublic external interface CanvasRect {\n fun clearRect(x: Double, y: Double, w: Double, h: Double): Unit\n fun fillRect(x: Double, y: Double, w: Double, h: Double): Unit\n fun strokeRect(x: Double, y: Double, w: Double, h: Double): Unit\n}\n\npublic external interface CanvasDrawPath {\n fun beginPath(): Unit\n fun fill(fillRule: CanvasFillRule = definedExternally): Unit\n fun fill(path: Path2D, fillRule: CanvasFillRule = definedExternally): Unit\n fun stroke(): Unit\n fun stroke(path: Path2D): Unit\n fun clip(fillRule: CanvasFillRule = definedExternally): Unit\n fun clip(path: Path2D, fillRule: CanvasFillRule = definedExternally): Unit\n fun resetClip(): Unit\n fun isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule = definedExternally): Boolean\n fun isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule = definedExternally): Boolean\n fun isPointInStroke(x: Double, y: Double): Boolean\n fun isPointInStroke(path: Path2D, x: Double, y: Double): Boolean\n}\n\npublic external interface CanvasUserInterface {\n fun drawFocusIfNeeded(element: Element): Unit\n fun drawFocusIfNeeded(path: Path2D, element: Element): Unit\n fun scrollPathIntoView(): Unit\n fun scrollPathIntoView(path: Path2D): Unit\n}\n\npublic external interface CanvasText {\n fun fillText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally): Unit\n fun strokeText(text: String, x: Double, y: Double, maxWidth: Double = definedExternally): Unit\n fun measureText(text: String): TextMetrics\n}\n\npublic external interface CanvasDrawImage {\n fun drawImage(image: dynamic, dx: Double, dy: Double): Unit\n fun drawImage(image: dynamic, dx: Double, dy: Double, dw: Double, dh: Double): Unit\n fun drawImage(image: dynamic, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double): Unit\n}\n\npublic external interface CanvasHitRegion {\n fun addHitRegion(options: HitRegionOptions = definedExternally): Unit\n fun removeHitRegion(id: String): Unit\n fun clearHitRegions(): Unit\n}\n\npublic external interface CanvasImageData {\n fun createImageData(sw: Double, sh: Double): ImageData\n fun createImageData(imagedata: ImageData): ImageData\n fun getImageData(sx: Double, sy: Double, sw: Double, sh: Double): ImageData\n fun putImageData(imagedata: ImageData, dx: Double, dy: Double): Unit\n fun putImageData(imagedata: ImageData, dx: Double, dy: Double, dirtyX: Double, dirtyY: Double, dirtyWidth: Double, dirtyHeight: Double): Unit\n}\n\npublic external interface CanvasPathDrawingStyles {\n var lineWidth: Double\n var lineCap: CanvasLineCap\n var lineJoin: CanvasLineJoin\n var miterLimit: Double\n var lineDashOffset: Double\n fun setLineDash(segments: Array): Unit\n fun getLineDash(): Array\n}\n\npublic external interface CanvasTextDrawingStyles {\n var font: String\n var textAlign: CanvasTextAlign\n var textBaseline: CanvasTextBaseline\n var direction: CanvasDirection\n}\n\npublic external interface CanvasPath {\n fun closePath(): Unit\n fun moveTo(x: Double, y: Double): Unit\n fun lineTo(x: Double, y: Double): Unit\n fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double): Unit\n fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double): Unit\n fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double): Unit\n fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double): Unit\n fun rect(x: Double, y: Double, w: Double, h: Double): Unit\n fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally): Unit\n fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [CanvasGradient](https://developer.mozilla.org/en/docs/Web/API/CanvasGradient) to Kotlin\n */\npublic external abstract class CanvasGradient {\n fun addColorStop(offset: Double, color: String): Unit\n}\n\n/**\n * Exposes the JavaScript [CanvasPattern](https://developer.mozilla.org/en/docs/Web/API/CanvasPattern) to Kotlin\n */\npublic external abstract class CanvasPattern {\n fun setTransform(transform: dynamic = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [TextMetrics](https://developer.mozilla.org/en/docs/Web/API/TextMetrics) to Kotlin\n */\npublic external abstract class TextMetrics {\n open val width: Double\n open val actualBoundingBoxLeft: Double\n open val actualBoundingBoxRight: Double\n open val fontBoundingBoxAscent: Double\n open val fontBoundingBoxDescent: Double\n open val actualBoundingBoxAscent: Double\n open val actualBoundingBoxDescent: Double\n open val emHeightAscent: Double\n open val emHeightDescent: Double\n open val hangingBaseline: Double\n open val alphabeticBaseline: Double\n open val ideographicBaseline: Double\n}\n\npublic external interface HitRegionOptions {\n var path: Path2D? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var fillRule: CanvasFillRule? /* = CanvasFillRule.NONZERO */\n get() = definedExternally\n set(value) = definedExternally\n var id: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var parentID: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var cursor: String? /* = \"inherit\" */\n get() = definedExternally\n set(value) = definedExternally\n var control: Element? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var label: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var role: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun HitRegionOptions(path: Path2D? = null, fillRule: CanvasFillRule? = CanvasFillRule.NONZERO, id: String? = \"\", parentID: String? = null, cursor: String? = \"inherit\", control: Element? = null, label: String? = null, role: String? = null): HitRegionOptions {\n val o = js(\"({})\")\n\n o[\"path\"] = path\n o[\"fillRule\"] = fillRule\n o[\"id\"] = id\n o[\"parentID\"] = parentID\n o[\"cursor\"] = cursor\n o[\"control\"] = control\n o[\"label\"] = label\n o[\"role\"] = role\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ImageData](https://developer.mozilla.org/en/docs/Web/API/ImageData) to Kotlin\n */\npublic external open class ImageData : TexImageSource {\n constructor(sw: Int, sh: Int)\n constructor(data: Uint8ClampedArray, sw: Int, sh: Int = definedExternally)\n open val width: Int\n open val height: Int\n open val data: Uint8ClampedArray\n}\n\n/**\n * Exposes the JavaScript [Path2D](https://developer.mozilla.org/en/docs/Web/API/Path2D) to Kotlin\n */\npublic external open class Path2D() : CanvasPath {\n constructor(path: Path2D)\n constructor(paths: Array, fillRule: CanvasFillRule = definedExternally)\n constructor(d: String)\n fun addPath(path: Path2D, transform: dynamic = definedExternally): Unit\n override fun closePath(): Unit\n override fun moveTo(x: Double, y: Double): Unit\n override fun lineTo(x: Double, y: Double): Unit\n override fun quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double): Unit\n override fun bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double): Unit\n override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double): Unit\n override fun arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radiusX: Double, radiusY: Double, rotation: Double): Unit\n override fun rect(x: Double, y: Double, w: Double, h: Double): Unit\n override fun arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */): Unit\n override fun ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, anticlockwise: Boolean /* = definedExternally */): Unit\n}\n\n/**\n * Exposes the JavaScript [Touch](https://developer.mozilla.org/en/docs/Web/API/Touch) to Kotlin\n */\npublic external abstract class Touch {\n open val region: String?\n}\n\n/**\n * Exposes the JavaScript [ImageBitmapRenderingContext](https://developer.mozilla.org/en/docs/Web/API/ImageBitmapRenderingContext) to Kotlin\n */\npublic external abstract class ImageBitmapRenderingContext {\n open val canvas: HTMLCanvasElement\n fun transferFromImageBitmap(bitmap: ImageBitmap?): Unit\n}\n\npublic external interface ImageBitmapRenderingContextSettings {\n var alpha: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ImageBitmapRenderingContextSettings(alpha: Boolean? = true): ImageBitmapRenderingContextSettings {\n val o = js(\"({})\")\n\n o[\"alpha\"] = alpha\n\n return o\n}\n\n/**\n * Exposes the JavaScript [CustomElementRegistry](https://developer.mozilla.org/en/docs/Web/API/CustomElementRegistry) to Kotlin\n */\npublic external abstract class CustomElementRegistry {\n fun define(name: String, constructor: () -> dynamic, options: ElementDefinitionOptions = definedExternally): Unit\n fun get(name: String): Any?\n fun whenDefined(name: String): Promise\n}\n\npublic external interface ElementDefinitionOptions {\n var extends: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ElementDefinitionOptions(extends: String? = undefined): ElementDefinitionOptions {\n val o = js(\"({})\")\n\n o[\"extends\"] = extends\n\n return o\n}\n\npublic external interface ElementContentEditable {\n var contentEditable: String\n val isContentEditable: Boolean\n}\n\n/**\n * Exposes the JavaScript [DataTransfer](https://developer.mozilla.org/en/docs/Web/API/DataTransfer) to Kotlin\n */\npublic external abstract class DataTransfer {\n open var dropEffect: String\n open var effectAllowed: String\n open val items: DataTransferItemList\n open val types: Array\n open val files: FileList\n fun setDragImage(image: Element, x: Int, y: Int): Unit\n fun getData(format: String): String\n fun setData(format: String, data: String): Unit\n fun clearData(format: String = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [DataTransferItemList](https://developer.mozilla.org/en/docs/Web/API/DataTransferItemList) to Kotlin\n */\npublic external abstract class DataTransferItemList {\n open val length: Int\n fun add(data: String, type: String): DataTransferItem?\n fun add(data: File): DataTransferItem?\n fun remove(index: Int): Unit\n fun clear(): Unit\n}\n@kotlin.internal.InlineOnly inline operator fun DataTransferItemList.get(index: Int): DataTransferItem? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [DataTransferItem](https://developer.mozilla.org/en/docs/Web/API/DataTransferItem) to Kotlin\n */\npublic external abstract class DataTransferItem {\n open val kind: String\n open val type: String\n fun getAsString(_callback: ((String) -> Unit)?): Unit\n fun getAsFile(): File?\n}\n\n/**\n * Exposes the JavaScript [DragEvent](https://developer.mozilla.org/en/docs/Web/API/DragEvent) to Kotlin\n */\npublic external open class DragEvent(type: String, eventInitDict: DragEventInit = definedExternally) : MouseEvent {\n open val dataTransfer: DataTransfer?\n}\n\npublic external interface DragEventInit : MouseEventInit {\n var dataTransfer: DataTransfer? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun DragEventInit(dataTransfer: DataTransfer? = null, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): DragEventInit {\n val o = js(\"({})\")\n\n o[\"dataTransfer\"] = dataTransfer\n o[\"screenX\"] = screenX\n o[\"screenY\"] = screenY\n o[\"clientX\"] = clientX\n o[\"clientY\"] = clientY\n o[\"button\"] = button\n o[\"buttons\"] = buttons\n o[\"relatedTarget\"] = relatedTarget\n o[\"ctrlKey\"] = ctrlKey\n o[\"shiftKey\"] = shiftKey\n o[\"altKey\"] = altKey\n o[\"metaKey\"] = metaKey\n o[\"modifierAltGraph\"] = modifierAltGraph\n o[\"modifierCapsLock\"] = modifierCapsLock\n o[\"modifierFn\"] = modifierFn\n o[\"modifierFnLock\"] = modifierFnLock\n o[\"modifierHyper\"] = modifierHyper\n o[\"modifierNumLock\"] = modifierNumLock\n o[\"modifierScrollLock\"] = modifierScrollLock\n o[\"modifierSuper\"] = modifierSuper\n o[\"modifierSymbol\"] = modifierSymbol\n o[\"modifierSymbolLock\"] = modifierSymbolLock\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external abstract class BarProp {\n open val visible: Boolean\n}\n\n/**\n * Exposes the JavaScript [History](https://developer.mozilla.org/en/docs/Web/API/History) to Kotlin\n */\npublic external abstract class History {\n open val length: Int\n open var scrollRestoration: ScrollRestoration\n open val state: Any?\n fun go(delta: Int = definedExternally): Unit\n fun back(): Unit\n fun forward(): Unit\n fun pushState(data: Any?, title: String, url: String? = definedExternally): Unit\n fun replaceState(data: Any?, title: String, url: String? = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [Location](https://developer.mozilla.org/en/docs/Web/API/Location) to Kotlin\n */\npublic external abstract class Location {\n open var href: String\n open val origin: String\n open var protocol: String\n open var host: String\n open var hostname: String\n open var port: String\n open var pathname: String\n open var search: String\n open var hash: String\n open val ancestorOrigins: Array\n fun assign(url: String): Unit\n fun replace(url: String): Unit\n fun reload(): Unit\n}\n\n/**\n * Exposes the JavaScript [PopStateEvent](https://developer.mozilla.org/en/docs/Web/API/PopStateEvent) to Kotlin\n */\npublic external open class PopStateEvent(type: String, eventInitDict: PopStateEventInit = definedExternally) : Event {\n open val state: Any?\n}\n\npublic external interface PopStateEventInit : EventInit {\n var state: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun PopStateEventInit(state: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PopStateEventInit {\n val o = js(\"({})\")\n\n o[\"state\"] = state\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [HashChangeEvent](https://developer.mozilla.org/en/docs/Web/API/HashChangeEvent) to Kotlin\n */\npublic external open class HashChangeEvent(type: String, eventInitDict: HashChangeEventInit = definedExternally) : Event {\n open val oldURL: String\n open val newURL: String\n}\n\npublic external interface HashChangeEventInit : EventInit {\n var oldURL: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var newURL: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun HashChangeEventInit(oldURL: String? = \"\", newURL: String? = \"\", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): HashChangeEventInit {\n val o = js(\"({})\")\n\n o[\"oldURL\"] = oldURL\n o[\"newURL\"] = newURL\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [PageTransitionEvent](https://developer.mozilla.org/en/docs/Web/API/PageTransitionEvent) to Kotlin\n */\npublic external open class PageTransitionEvent(type: String, eventInitDict: PageTransitionEventInit = definedExternally) : Event {\n open val persisted: Boolean\n}\n\npublic external interface PageTransitionEventInit : EventInit {\n var persisted: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun PageTransitionEventInit(persisted: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PageTransitionEventInit {\n val o = js(\"({})\")\n\n o[\"persisted\"] = persisted\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [BeforeUnloadEvent](https://developer.mozilla.org/en/docs/Web/API/BeforeUnloadEvent) to Kotlin\n */\npublic external open class BeforeUnloadEvent : Event {\n var returnValue: String\n}\n\npublic external abstract class ApplicationCache : EventTarget {\n open val status: Short\n open var onchecking: ((Event) -> dynamic)?\n open var onerror: ((Event) -> dynamic)?\n open var onnoupdate: ((Event) -> dynamic)?\n open var ondownloading: ((Event) -> dynamic)?\n open var onprogress: ((ProgressEvent) -> dynamic)?\n open var onupdateready: ((Event) -> dynamic)?\n open var oncached: ((Event) -> dynamic)?\n open var onobsolete: ((Event) -> dynamic)?\n fun update(): Unit\n fun abort(): Unit\n fun swapCache(): Unit\n\n companion object {\n val UNCACHED: Short\n val IDLE: Short\n val CHECKING: Short\n val DOWNLOADING: Short\n val UPDATEREADY: Short\n val OBSOLETE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [NavigatorOnLine](https://developer.mozilla.org/en/docs/Web/API/NavigatorOnLine) to Kotlin\n */\npublic external interface NavigatorOnLine {\n val onLine: Boolean\n}\n\n/**\n * Exposes the JavaScript [ErrorEvent](https://developer.mozilla.org/en/docs/Web/API/ErrorEvent) to Kotlin\n */\npublic external open class ErrorEvent(type: String, eventInitDict: ErrorEventInit = definedExternally) : Event {\n open val message: String\n open val filename: String\n open val lineno: Int\n open val colno: Int\n open val error: Any?\n}\n\npublic external interface ErrorEventInit : EventInit {\n var message: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var filename: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var lineno: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var colno: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var error: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ErrorEventInit(message: String? = \"\", filename: String? = \"\", lineno: Int? = 0, colno: Int? = 0, error: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ErrorEventInit {\n val o = js(\"({})\")\n\n o[\"message\"] = message\n o[\"filename\"] = filename\n o[\"lineno\"] = lineno\n o[\"colno\"] = colno\n o[\"error\"] = error\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [PromiseRejectionEvent](https://developer.mozilla.org/en/docs/Web/API/PromiseRejectionEvent) to Kotlin\n */\npublic external open class PromiseRejectionEvent(type: String, eventInitDict: PromiseRejectionEventInit) : Event {\n open val promise: Promise\n open val reason: Any?\n}\n\npublic external interface PromiseRejectionEventInit : EventInit {\n var promise: Promise?\n get() = definedExternally\n set(value) = definedExternally\n var reason: Any?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun PromiseRejectionEventInit(promise: Promise?, reason: Any? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PromiseRejectionEventInit {\n val o = js(\"({})\")\n\n o[\"promise\"] = promise\n o[\"reason\"] = reason\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [GlobalEventHandlers](https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers) to Kotlin\n */\npublic external interface GlobalEventHandlers {\n var ongotpointercapture: ((PointerEvent) -> dynamic)?\n var onlostpointercapture: ((PointerEvent) -> dynamic)?\n var onpointerdown: ((PointerEvent) -> dynamic)?\n var onpointermove: ((PointerEvent) -> dynamic)?\n var onpointerup: ((PointerEvent) -> dynamic)?\n var onpointercancel: ((PointerEvent) -> dynamic)?\n var onpointerover: ((PointerEvent) -> dynamic)?\n var onpointerout: ((PointerEvent) -> dynamic)?\n var onpointerenter: ((PointerEvent) -> dynamic)?\n var onpointerleave: ((PointerEvent) -> dynamic)?\n var onabort: ((Event) -> dynamic)?\n var onblur: ((FocusEvent) -> dynamic)?\n var oncancel: ((Event) -> dynamic)?\n var oncanplay: ((Event) -> dynamic)?\n var oncanplaythrough: ((Event) -> dynamic)?\n var onchange: ((Event) -> dynamic)?\n var onclick: ((MouseEvent) -> dynamic)?\n var onclose: ((Event) -> dynamic)?\n var oncontextmenu: ((MouseEvent) -> dynamic)?\n var oncuechange: ((Event) -> dynamic)?\n var ondblclick: ((MouseEvent) -> dynamic)?\n var ondrag: ((DragEvent) -> dynamic)?\n var ondragend: ((DragEvent) -> dynamic)?\n var ondragenter: ((DragEvent) -> dynamic)?\n var ondragexit: ((DragEvent) -> dynamic)?\n var ondragleave: ((DragEvent) -> dynamic)?\n var ondragover: ((DragEvent) -> dynamic)?\n var ondragstart: ((DragEvent) -> dynamic)?\n var ondrop: ((DragEvent) -> dynamic)?\n var ondurationchange: ((Event) -> dynamic)?\n var onemptied: ((Event) -> dynamic)?\n var onended: ((Event) -> dynamic)?\n var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n var onfocus: ((FocusEvent) -> dynamic)?\n var oninput: ((InputEvent) -> dynamic)?\n var oninvalid: ((Event) -> dynamic)?\n var onkeydown: ((KeyboardEvent) -> dynamic)?\n var onkeypress: ((KeyboardEvent) -> dynamic)?\n var onkeyup: ((KeyboardEvent) -> dynamic)?\n var onload: ((Event) -> dynamic)?\n var onloadeddata: ((Event) -> dynamic)?\n var onloadedmetadata: ((Event) -> dynamic)?\n var onloadend: ((Event) -> dynamic)?\n var onloadstart: ((ProgressEvent) -> dynamic)?\n var onmousedown: ((MouseEvent) -> dynamic)?\n var onmouseenter: ((MouseEvent) -> dynamic)?\n var onmouseleave: ((MouseEvent) -> dynamic)?\n var onmousemove: ((MouseEvent) -> dynamic)?\n var onmouseout: ((MouseEvent) -> dynamic)?\n var onmouseover: ((MouseEvent) -> dynamic)?\n var onmouseup: ((MouseEvent) -> dynamic)?\n var onwheel: ((WheelEvent) -> dynamic)?\n var onpause: ((Event) -> dynamic)?\n var onplay: ((Event) -> dynamic)?\n var onplaying: ((Event) -> dynamic)?\n var onprogress: ((ProgressEvent) -> dynamic)?\n var onratechange: ((Event) -> dynamic)?\n var onreset: ((Event) -> dynamic)?\n var onresize: ((Event) -> dynamic)?\n var onscroll: ((Event) -> dynamic)?\n var onseeked: ((Event) -> dynamic)?\n var onseeking: ((Event) -> dynamic)?\n var onselect: ((Event) -> dynamic)?\n var onshow: ((Event) -> dynamic)?\n var onstalled: ((Event) -> dynamic)?\n var onsubmit: ((Event) -> dynamic)?\n var onsuspend: ((Event) -> dynamic)?\n var ontimeupdate: ((Event) -> dynamic)?\n var ontoggle: ((Event) -> dynamic)?\n var onvolumechange: ((Event) -> dynamic)?\n var onwaiting: ((Event) -> dynamic)?\n}\n\n/**\n * Exposes the JavaScript [WindowEventHandlers](https://developer.mozilla.org/en/docs/Web/API/WindowEventHandlers) to Kotlin\n */\npublic external interface WindowEventHandlers {\n var onafterprint: ((Event) -> dynamic)?\n var onbeforeprint: ((Event) -> dynamic)?\n var onbeforeunload: ((BeforeUnloadEvent) -> String?)?\n var onhashchange: ((HashChangeEvent) -> dynamic)?\n var onlanguagechange: ((Event) -> dynamic)?\n var onmessage: ((MessageEvent) -> dynamic)?\n var onoffline: ((Event) -> dynamic)?\n var ononline: ((Event) -> dynamic)?\n var onpagehide: ((PageTransitionEvent) -> dynamic)?\n var onpageshow: ((PageTransitionEvent) -> dynamic)?\n var onpopstate: ((PopStateEvent) -> dynamic)?\n var onrejectionhandled: ((Event) -> dynamic)?\n var onstorage: ((StorageEvent) -> dynamic)?\n var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)?\n var onunload: ((Event) -> dynamic)?\n}\n\npublic external interface DocumentAndElementEventHandlers {\n var oncopy: ((ClipboardEvent) -> dynamic)?\n var oncut: ((ClipboardEvent) -> dynamic)?\n var onpaste: ((ClipboardEvent) -> dynamic)?\n}\n\n/**\n * Exposes the JavaScript [WindowOrWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WindowOrWorkerGlobalScope) to Kotlin\n */\npublic external interface WindowOrWorkerGlobalScope {\n val caches: CacheStorage\n val origin: String\n fun fetch(input: dynamic, init: RequestInit = definedExternally): Promise\n fun btoa(data: String): String\n fun atob(data: String): String\n fun setTimeout(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int\n fun clearTimeout(handle: Int = definedExternally): Unit\n fun setInterval(handler: dynamic, timeout: Int = definedExternally, vararg arguments: Any?): Int\n fun clearInterval(handle: Int = definedExternally): Unit\n fun createImageBitmap(image: dynamic, options: ImageBitmapOptions = definedExternally): Promise\n fun createImageBitmap(image: dynamic, sx: Int, sy: Int, sw: Int, sh: Int, options: ImageBitmapOptions = definedExternally): Promise\n}\n\n/**\n * Exposes the JavaScript [NavigatorID](https://developer.mozilla.org/en/docs/Web/API/NavigatorID) to Kotlin\n */\npublic external interface NavigatorID {\n val appCodeName: String\n val appName: String\n val appVersion: String\n val platform: String\n val product: String\n val productSub: String\n val userAgent: String\n val vendor: String\n val vendorSub: String\n val oscpu: String\n fun taintEnabled(): Boolean\n}\n\n/**\n * Exposes the JavaScript [NavigatorLanguage](https://developer.mozilla.org/en/docs/Web/API/NavigatorLanguage) to Kotlin\n */\npublic external interface NavigatorLanguage {\n val language: String\n val languages: Array\n}\n\npublic external interface NavigatorContentUtils {\n fun registerProtocolHandler(scheme: String, url: String, title: String): Unit\n fun registerContentHandler(mimeType: String, url: String, title: String): Unit\n fun isProtocolHandlerRegistered(scheme: String, url: String): String\n fun isContentHandlerRegistered(mimeType: String, url: String): String\n fun unregisterProtocolHandler(scheme: String, url: String): Unit\n fun unregisterContentHandler(mimeType: String, url: String): Unit\n}\n\npublic external interface NavigatorCookies {\n val cookieEnabled: Boolean\n}\n\n/**\n * Exposes the JavaScript [NavigatorPlugins](https://developer.mozilla.org/en/docs/Web/API/NavigatorPlugins) to Kotlin\n */\npublic external interface NavigatorPlugins {\n val plugins: PluginArray\n val mimeTypes: MimeTypeArray\n fun javaEnabled(): Boolean\n}\n\n/**\n * Exposes the JavaScript [PluginArray](https://developer.mozilla.org/en/docs/Web/API/PluginArray) to Kotlin\n */\npublic external abstract class PluginArray : ItemArrayLike {\n override val length: Int\n fun refresh(reload: Boolean = definedExternally): Unit\n override fun item(index: Int): Plugin?\n fun namedItem(name: String): Plugin?\n}\n@kotlin.internal.InlineOnly inline operator fun PluginArray.get(index: Int): Plugin? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun PluginArray.get(name: String): Plugin? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [MimeTypeArray](https://developer.mozilla.org/en/docs/Web/API/MimeTypeArray) to Kotlin\n */\npublic external abstract class MimeTypeArray : ItemArrayLike {\n override val length: Int\n override fun item(index: Int): MimeType?\n fun namedItem(name: String): MimeType?\n}\n@kotlin.internal.InlineOnly inline operator fun MimeTypeArray.get(index: Int): MimeType? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun MimeTypeArray.get(name: String): MimeType? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [Plugin](https://developer.mozilla.org/en/docs/Web/API/Plugin) to Kotlin\n */\npublic external abstract class Plugin : ItemArrayLike {\n open val name: String\n open val description: String\n open val filename: String\n override val length: Int\n override fun item(index: Int): MimeType?\n fun namedItem(name: String): MimeType?\n}\n@kotlin.internal.InlineOnly inline operator fun Plugin.get(index: Int): MimeType? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun Plugin.get(name: String): MimeType? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [MimeType](https://developer.mozilla.org/en/docs/Web/API/MimeType) to Kotlin\n */\npublic external abstract class MimeType {\n open val type: String\n open val description: String\n open val suffixes: String\n open val enabledPlugin: Plugin\n}\n\n/**\n * Exposes the JavaScript [ImageBitmap](https://developer.mozilla.org/en/docs/Web/API/ImageBitmap) to Kotlin\n */\npublic external abstract class ImageBitmap : TexImageSource {\n open val width: Int\n open val height: Int\n fun close(): Unit\n}\n\npublic external interface ImageBitmapOptions {\n var imageOrientation: ImageOrientation? /* = ImageOrientation.NONE */\n get() = definedExternally\n set(value) = definedExternally\n var premultiplyAlpha: PremultiplyAlpha? /* = PremultiplyAlpha.DEFAULT */\n get() = definedExternally\n set(value) = definedExternally\n var colorSpaceConversion: ColorSpaceConversion? /* = ColorSpaceConversion.DEFAULT */\n get() = definedExternally\n set(value) = definedExternally\n var resizeWidth: Int?\n get() = definedExternally\n set(value) = definedExternally\n var resizeHeight: Int?\n get() = definedExternally\n set(value) = definedExternally\n var resizeQuality: ResizeQuality? /* = ResizeQuality.LOW */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ImageBitmapOptions(imageOrientation: ImageOrientation? = ImageOrientation.NONE, premultiplyAlpha: PremultiplyAlpha? = PremultiplyAlpha.DEFAULT, colorSpaceConversion: ColorSpaceConversion? = ColorSpaceConversion.DEFAULT, resizeWidth: Int? = undefined, resizeHeight: Int? = undefined, resizeQuality: ResizeQuality? = ResizeQuality.LOW): ImageBitmapOptions {\n val o = js(\"({})\")\n\n o[\"imageOrientation\"] = imageOrientation\n o[\"premultiplyAlpha\"] = premultiplyAlpha\n o[\"colorSpaceConversion\"] = colorSpaceConversion\n o[\"resizeWidth\"] = resizeWidth\n o[\"resizeHeight\"] = resizeHeight\n o[\"resizeQuality\"] = resizeQuality\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MessageEvent](https://developer.mozilla.org/en/docs/Web/API/MessageEvent) to Kotlin\n */\npublic external open class MessageEvent(type: String, eventInitDict: MessageEventInit = definedExternally) : Event {\n open val data: Any?\n open val origin: String\n open val lastEventId: String\n open val source: UnionMessagePortOrWindow?\n open val ports: Array\n fun initMessageEvent(type: String, bubbles: Boolean, cancelable: Boolean, data: Any?, origin: String, lastEventId: String, source: UnionMessagePortOrWindow?, ports: Array): Unit\n}\n\npublic external interface MessageEventInit : EventInit {\n var data: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var origin: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var lastEventId: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var source: UnionMessagePortOrWindow? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var ports: Array? /* = arrayOf() */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MessageEventInit(data: Any? = null, origin: String? = \"\", lastEventId: String? = \"\", source: UnionMessagePortOrWindow? = null, ports: Array? = arrayOf(), bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MessageEventInit {\n val o = js(\"({})\")\n\n o[\"data\"] = data\n o[\"origin\"] = origin\n o[\"lastEventId\"] = lastEventId\n o[\"source\"] = source\n o[\"ports\"] = ports\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [EventSource](https://developer.mozilla.org/en/docs/Web/API/EventSource) to Kotlin\n */\npublic external open class EventSource(url: String, eventSourceInitDict: EventSourceInit = definedExternally) : EventTarget {\n open val url: String\n open val withCredentials: Boolean\n open val readyState: Short\n var onopen: ((Event) -> dynamic)?\n var onmessage: ((MessageEvent) -> dynamic)?\n var onerror: ((Event) -> dynamic)?\n fun close(): Unit\n\n companion object {\n val CONNECTING: Short\n val OPEN: Short\n val CLOSED: Short\n }\n}\n\npublic external interface EventSourceInit {\n var withCredentials: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun EventSourceInit(withCredentials: Boolean? = false): EventSourceInit {\n val o = js(\"({})\")\n\n o[\"withCredentials\"] = withCredentials\n\n return o\n}\n\n/**\n * Exposes the JavaScript [WebSocket](https://developer.mozilla.org/en/docs/Web/API/WebSocket) to Kotlin\n */\npublic external open class WebSocket(url: String, protocols: dynamic = definedExternally) : EventTarget {\n open val url: String\n open val readyState: Short\n open val bufferedAmount: Int\n var onopen: ((Event) -> dynamic)?\n var onerror: ((Event) -> dynamic)?\n var onclose: ((Event) -> dynamic)?\n open val extensions: String\n open val protocol: String\n var onmessage: ((MessageEvent) -> dynamic)?\n var binaryType: BinaryType\n fun close(code: Short = definedExternally, reason: String = definedExternally): Unit\n fun send(data: String): Unit\n fun send(data: Blob): Unit\n fun send(data: ArrayBuffer): Unit\n fun send(data: ArrayBufferView): Unit\n\n companion object {\n val CONNECTING: Short\n val OPEN: Short\n val CLOSING: Short\n val CLOSED: Short\n }\n}\n\n/**\n * Exposes the JavaScript [CloseEvent](https://developer.mozilla.org/en/docs/Web/API/CloseEvent) to Kotlin\n */\npublic external open class CloseEvent(type: String, eventInitDict: CloseEventInit = definedExternally) : Event {\n open val wasClean: Boolean\n open val code: Short\n open val reason: String\n}\n\npublic external interface CloseEventInit : EventInit {\n var wasClean: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var code: Short? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var reason: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun CloseEventInit(wasClean: Boolean? = false, code: Short? = 0, reason: String? = \"\", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CloseEventInit {\n val o = js(\"({})\")\n\n o[\"wasClean\"] = wasClean\n o[\"code\"] = code\n o[\"reason\"] = reason\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MessageChannel](https://developer.mozilla.org/en/docs/Web/API/MessageChannel) to Kotlin\n */\npublic external open class MessageChannel {\n open val port1: MessagePort\n open val port2: MessagePort\n}\n\n/**\n * Exposes the JavaScript [MessagePort](https://developer.mozilla.org/en/docs/Web/API/MessagePort) to Kotlin\n */\npublic external abstract class MessagePort : EventTarget, UnionMessagePortOrWindow, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker {\n open var onmessage: ((MessageEvent) -> dynamic)?\n fun postMessage(message: Any?, transfer: Array = definedExternally): Unit\n fun start(): Unit\n fun close(): Unit\n}\n\n/**\n * Exposes the JavaScript [BroadcastChannel](https://developer.mozilla.org/en/docs/Web/API/BroadcastChannel) to Kotlin\n */\npublic external open class BroadcastChannel(name: String) : EventTarget {\n open val name: String\n var onmessage: ((MessageEvent) -> dynamic)?\n fun postMessage(message: Any?): Unit\n fun close(): Unit\n}\n\n/**\n * Exposes the JavaScript [WorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/WorkerGlobalScope) to Kotlin\n */\npublic external abstract class WorkerGlobalScope : EventTarget, WindowOrWorkerGlobalScope, GlobalPerformance {\n open val self: WorkerGlobalScope\n open val location: WorkerLocation\n open val navigator: WorkerNavigator\n open var onerror: ((dynamic, String, Int, Int, Any?) -> dynamic)?\n open var onlanguagechange: ((Event) -> dynamic)?\n open var onoffline: ((Event) -> dynamic)?\n open var ononline: ((Event) -> dynamic)?\n open var onrejectionhandled: ((Event) -> dynamic)?\n open var onunhandledrejection: ((PromiseRejectionEvent) -> dynamic)?\n fun importScripts(vararg urls: String): Unit\n}\n\n/**\n * Exposes the JavaScript [DedicatedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/DedicatedWorkerGlobalScope) to Kotlin\n */\npublic external abstract class DedicatedWorkerGlobalScope : WorkerGlobalScope {\n open var onmessage: ((MessageEvent) -> dynamic)?\n fun postMessage(message: Any?, transfer: Array = definedExternally): Unit\n fun close(): Unit\n}\n\n/**\n * Exposes the JavaScript [SharedWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/SharedWorkerGlobalScope) to Kotlin\n */\npublic external abstract class SharedWorkerGlobalScope : WorkerGlobalScope {\n open val name: String\n open val applicationCache: ApplicationCache\n open var onconnect: ((Event) -> dynamic)?\n fun close(): Unit\n}\n\n/**\n * Exposes the JavaScript [AbstractWorker](https://developer.mozilla.org/en/docs/Web/API/AbstractWorker) to Kotlin\n */\npublic external interface AbstractWorker {\n var onerror: ((Event) -> dynamic)?\n}\n\n/**\n * Exposes the JavaScript [Worker](https://developer.mozilla.org/en/docs/Web/API/Worker) to Kotlin\n */\npublic external open class Worker(scriptURL: String, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker {\n var onmessage: ((MessageEvent) -> dynamic)?\n override var onerror: ((Event) -> dynamic)?\n fun terminate(): Unit\n fun postMessage(message: Any?, transfer: Array = definedExternally): Unit\n}\n\npublic external interface WorkerOptions {\n var type: WorkerType? /* = WorkerType.CLASSIC */\n get() = definedExternally\n set(value) = definedExternally\n var credentials: RequestCredentials? /* = RequestCredentials.OMIT */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun WorkerOptions(type: WorkerType? = WorkerType.CLASSIC, credentials: RequestCredentials? = RequestCredentials.OMIT): WorkerOptions {\n val o = js(\"({})\")\n\n o[\"type\"] = type\n o[\"credentials\"] = credentials\n\n return o\n}\n\n/**\n * Exposes the JavaScript [SharedWorker](https://developer.mozilla.org/en/docs/Web/API/SharedWorker) to Kotlin\n */\npublic external open class SharedWorker(scriptURL: String, name: String = definedExternally, options: WorkerOptions = definedExternally) : EventTarget, AbstractWorker {\n open val port: MessagePort\n override var onerror: ((Event) -> dynamic)?\n}\n\n/**\n * Exposes the JavaScript [NavigatorConcurrentHardware](https://developer.mozilla.org/en/docs/Web/API/NavigatorConcurrentHardware) to Kotlin\n */\npublic external interface NavigatorConcurrentHardware {\n val hardwareConcurrency: Int\n}\n\n/**\n * Exposes the JavaScript [WorkerNavigator](https://developer.mozilla.org/en/docs/Web/API/WorkerNavigator) to Kotlin\n */\npublic external abstract class WorkerNavigator : NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorConcurrentHardware {\n open val serviceWorker: ServiceWorkerContainer\n}\n\n/**\n * Exposes the JavaScript [WorkerLocation](https://developer.mozilla.org/en/docs/Web/API/WorkerLocation) to Kotlin\n */\npublic external abstract class WorkerLocation {\n open var href: String\n open val origin: String\n open val protocol: String\n open val host: String\n open val hostname: String\n open val port: String\n open val pathname: String\n open val search: String\n open val hash: String\n}\n\n/**\n * Exposes the JavaScript [Storage](https://developer.mozilla.org/en/docs/Web/API/Storage) to Kotlin\n */\npublic external abstract class Storage {\n open val length: Int\n fun key(index: Int): String?\n fun getItem(key: String): String?\n fun setItem(key: String, value: String): Unit\n fun removeItem(key: String): Unit\n fun clear(): Unit\n}\n@kotlin.internal.InlineOnly inline operator fun Storage.get(key: String): String? = asDynamic()[key]\n@kotlin.internal.InlineOnly inline operator fun Storage.set(key: String, value: String): Unit { asDynamic()[key] = value; }\n\n/**\n * Exposes the JavaScript [WindowSessionStorage](https://developer.mozilla.org/en/docs/Web/API/WindowSessionStorage) to Kotlin\n */\npublic external interface WindowSessionStorage {\n val sessionStorage: Storage\n}\n\n/**\n * Exposes the JavaScript [WindowLocalStorage](https://developer.mozilla.org/en/docs/Web/API/WindowLocalStorage) to Kotlin\n */\npublic external interface WindowLocalStorage {\n val localStorage: Storage\n}\n\n/**\n * Exposes the JavaScript [StorageEvent](https://developer.mozilla.org/en/docs/Web/API/StorageEvent) to Kotlin\n */\npublic external open class StorageEvent(type: String, eventInitDict: StorageEventInit = definedExternally) : Event {\n open val key: String?\n open val oldValue: String?\n open val newValue: String?\n open val url: String\n open val storageArea: Storage?\n}\n\npublic external interface StorageEventInit : EventInit {\n var key: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var oldValue: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var newValue: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var url: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var storageArea: Storage? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun StorageEventInit(key: String? = null, oldValue: String? = null, newValue: String? = null, url: String? = \"\", storageArea: Storage? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): StorageEventInit {\n val o = js(\"({})\")\n\n o[\"key\"] = key\n o[\"oldValue\"] = oldValue\n o[\"newValue\"] = newValue\n o[\"url\"] = url\n o[\"storageArea\"] = storageArea\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external abstract class HTMLAppletElement : HTMLElement {\n open var align: String\n open var alt: String\n open var archive: String\n open var code: String\n open var codeBase: String\n open var height: String\n open var hspace: Int\n open var name: String\n open var _object: String\n open var vspace: Int\n open var width: String\n}\n\n/**\n * Exposes the JavaScript [HTMLMarqueeElement](https://developer.mozilla.org/en/docs/Web/API/HTMLMarqueeElement) to Kotlin\n */\npublic external abstract class HTMLMarqueeElement : HTMLElement {\n open var behavior: String\n open var bgColor: String\n open var direction: String\n open var height: String\n open var hspace: Int\n open var loop: Int\n open var scrollAmount: Int\n open var scrollDelay: Int\n open var trueSpeed: Boolean\n open var vspace: Int\n open var width: String\n open var onbounce: ((Event) -> dynamic)?\n open var onfinish: ((Event) -> dynamic)?\n open var onstart: ((Event) -> dynamic)?\n fun start(): Unit\n fun stop(): Unit\n}\n\n/**\n * Exposes the JavaScript [HTMLFrameSetElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFrameSetElement) to Kotlin\n */\npublic external abstract class HTMLFrameSetElement : HTMLElement, WindowEventHandlers {\n open var cols: String\n open var rows: String\n}\n\npublic external abstract class HTMLFrameElement : HTMLElement {\n open var name: String\n open var scrolling: String\n open var src: String\n open var frameBorder: String\n open var longDesc: String\n open var noResize: Boolean\n open val contentDocument: Document?\n open val contentWindow: Window?\n open var marginHeight: String\n open var marginWidth: String\n}\n\npublic external abstract class HTMLDirectoryElement : HTMLElement {\n open var compact: Boolean\n}\n\n/**\n * Exposes the JavaScript [HTMLFontElement](https://developer.mozilla.org/en/docs/Web/API/HTMLFontElement) to Kotlin\n */\npublic external abstract class HTMLFontElement : HTMLElement {\n open var color: String\n open var face: String\n open var size: String\n}\n\npublic external interface External {\n fun AddSearchProvider(): Unit\n fun IsSearchProviderInstalled(): Unit\n}\n\npublic external interface EventInit {\n var bubbles: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var cancelable: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var composed: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun EventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): EventInit {\n val o = js(\"({})\")\n\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [CustomEvent](https://developer.mozilla.org/en/docs/Web/API/CustomEvent) to Kotlin\n */\npublic external open class CustomEvent(type: String, eventInitDict: CustomEventInit = definedExternally) : Event {\n open val detail: Any?\n fun initCustomEvent(type: String, bubbles: Boolean, cancelable: Boolean, detail: Any?): Unit\n}\n\npublic external interface CustomEventInit : EventInit {\n var detail: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun CustomEventInit(detail: Any? = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): CustomEventInit {\n val o = js(\"({})\")\n\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external interface EventListenerOptions {\n var capture: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun EventListenerOptions(capture: Boolean? = false): EventListenerOptions {\n val o = js(\"({})\")\n\n o[\"capture\"] = capture\n\n return o\n}\n\npublic external interface AddEventListenerOptions : EventListenerOptions {\n var passive: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var once: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun AddEventListenerOptions(passive: Boolean? = false, once: Boolean? = false, capture: Boolean? = false): AddEventListenerOptions {\n val o = js(\"({})\")\n\n o[\"passive\"] = passive\n o[\"once\"] = once\n o[\"capture\"] = capture\n\n return o\n}\n\npublic external interface NonElementParentNode {\n fun getElementById(elementId: String): Element?\n}\n\n/**\n * Exposes the JavaScript [DocumentOrShadowRoot](https://developer.mozilla.org/en/docs/Web/API/DocumentOrShadowRoot) to Kotlin\n */\npublic external interface DocumentOrShadowRoot {\n val fullscreenElement: Element?\n}\n\n/**\n * Exposes the JavaScript [ParentNode](https://developer.mozilla.org/en/docs/Web/API/ParentNode) to Kotlin\n */\npublic external interface ParentNode {\n val children: HTMLCollection\n val firstElementChild: Element?\n val lastElementChild: Element?\n val childElementCount: Int\n fun prepend(vararg nodes: dynamic): Unit\n fun append(vararg nodes: dynamic): Unit\n fun querySelector(selectors: String): Element?\n fun querySelectorAll(selectors: String): NodeList\n}\n\n/**\n * Exposes the JavaScript [NonDocumentTypeChildNode](https://developer.mozilla.org/en/docs/Web/API/NonDocumentTypeChildNode) to Kotlin\n */\npublic external interface NonDocumentTypeChildNode {\n val previousElementSibling: Element?\n val nextElementSibling: Element?\n}\n\n/**\n * Exposes the JavaScript [ChildNode](https://developer.mozilla.org/en/docs/Web/API/ChildNode) to Kotlin\n */\npublic external interface ChildNode {\n fun before(vararg nodes: dynamic): Unit\n fun after(vararg nodes: dynamic): Unit\n fun replaceWith(vararg nodes: dynamic): Unit\n fun remove(): Unit\n}\n\n/**\n * Exposes the JavaScript [Slotable](https://developer.mozilla.org/en/docs/Web/API/Slotable) to Kotlin\n */\npublic external interface Slotable {\n val assignedSlot: HTMLSlotElement?\n}\n\n/**\n * Exposes the JavaScript [NodeList](https://developer.mozilla.org/en/docs/Web/API/NodeList) to Kotlin\n */\npublic external abstract class NodeList : ItemArrayLike {\n override val length: Int\n override fun item(index: Int): Node?\n}\n@kotlin.internal.InlineOnly inline operator fun NodeList.get(index: Int): Node? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [HTMLCollection](https://developer.mozilla.org/en/docs/Web/API/HTMLCollection) to Kotlin\n */\npublic external abstract class HTMLCollection : UnionElementOrHTMLCollection, ItemArrayLike {\n override val length: Int\n override fun item(index: Int): Element?\n fun namedItem(name: String): Element?\n}\n@kotlin.internal.InlineOnly inline operator fun HTMLCollection.get(index: Int): Element? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun HTMLCollection.get(name: String): Element? = asDynamic()[name]\n\n/**\n * Exposes the JavaScript [MutationObserver](https://developer.mozilla.org/en/docs/Web/API/MutationObserver) to Kotlin\n */\npublic external open class MutationObserver(callback: (Array, MutationObserver) -> Unit) {\n fun observe(target: Node, options: MutationObserverInit = definedExternally): Unit\n fun disconnect(): Unit\n fun takeRecords(): Array\n}\n\n/**\n * Exposes the JavaScript [MutationObserverInit](https://developer.mozilla.org/en/docs/Web/API/MutationObserverInit) to Kotlin\n */\npublic external interface MutationObserverInit {\n var childList: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var attributes: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var characterData: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var subtree: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var attributeOldValue: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var characterDataOldValue: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var attributeFilter: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MutationObserverInit(childList: Boolean? = false, attributes: Boolean? = undefined, characterData: Boolean? = undefined, subtree: Boolean? = false, attributeOldValue: Boolean? = undefined, characterDataOldValue: Boolean? = undefined, attributeFilter: Array? = undefined): MutationObserverInit {\n val o = js(\"({})\")\n\n o[\"childList\"] = childList\n o[\"attributes\"] = attributes\n o[\"characterData\"] = characterData\n o[\"subtree\"] = subtree\n o[\"attributeOldValue\"] = attributeOldValue\n o[\"characterDataOldValue\"] = characterDataOldValue\n o[\"attributeFilter\"] = attributeFilter\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MutationRecord](https://developer.mozilla.org/en/docs/Web/API/MutationRecord) to Kotlin\n */\npublic external abstract class MutationRecord {\n open val type: String\n open val target: Node\n open val addedNodes: NodeList\n open val removedNodes: NodeList\n open val previousSibling: Node?\n open val nextSibling: Node?\n open val attributeName: String?\n open val attributeNamespace: String?\n open val oldValue: String?\n}\n\n/**\n * Exposes the JavaScript [Node](https://developer.mozilla.org/en/docs/Web/API/Node) to Kotlin\n */\npublic external abstract class Node : EventTarget {\n open val nodeType: Short\n open val nodeName: String\n open val baseURI: String\n open val isConnected: Boolean\n open val ownerDocument: Document?\n open val parentNode: Node?\n open val parentElement: Element?\n open val childNodes: NodeList\n open val firstChild: Node?\n open val lastChild: Node?\n open val previousSibling: Node?\n open val nextSibling: Node?\n open var nodeValue: String?\n open var textContent: String?\n fun getRootNode(options: GetRootNodeOptions = definedExternally): Node\n fun hasChildNodes(): Boolean\n fun normalize(): Unit\n fun cloneNode(deep: Boolean = definedExternally): Node\n fun isEqualNode(otherNode: Node?): Boolean\n fun isSameNode(otherNode: Node?): Boolean\n fun compareDocumentPosition(other: Node): Short\n fun contains(other: Node?): Boolean\n fun lookupPrefix(namespace: String?): String?\n fun lookupNamespaceURI(prefix: String?): String?\n fun isDefaultNamespace(namespace: String?): Boolean\n fun insertBefore(node: Node, child: Node?): Node\n fun appendChild(node: Node): Node\n fun replaceChild(node: Node, child: Node): Node\n fun removeChild(child: Node): Node\n\n companion object {\n val ELEMENT_NODE: Short\n val ATTRIBUTE_NODE: Short\n val TEXT_NODE: Short\n val CDATA_SECTION_NODE: Short\n val ENTITY_REFERENCE_NODE: Short\n val ENTITY_NODE: Short\n val PROCESSING_INSTRUCTION_NODE: Short\n val COMMENT_NODE: Short\n val DOCUMENT_NODE: Short\n val DOCUMENT_TYPE_NODE: Short\n val DOCUMENT_FRAGMENT_NODE: Short\n val NOTATION_NODE: Short\n val DOCUMENT_POSITION_DISCONNECTED: Short\n val DOCUMENT_POSITION_PRECEDING: Short\n val DOCUMENT_POSITION_FOLLOWING: Short\n val DOCUMENT_POSITION_CONTAINS: Short\n val DOCUMENT_POSITION_CONTAINED_BY: Short\n val DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: Short\n }\n}\n\npublic external interface GetRootNodeOptions {\n var composed: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun GetRootNodeOptions(composed: Boolean? = false): GetRootNodeOptions {\n val o = js(\"({})\")\n\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [XMLDocument](https://developer.mozilla.org/en/docs/Web/API/XMLDocument) to Kotlin\n */\npublic external open class XMLDocument : Document {\n override fun getElementById(elementId: String): Element?\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n\npublic external interface ElementCreationOptions {\n @JsName(\"is\") var is_: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ElementCreationOptions(is_: String? = undefined): ElementCreationOptions {\n val o = js(\"({})\")\n\n o[\"is\"] = is_\n\n return o\n}\n\n/**\n * Exposes the JavaScript [DOMImplementation](https://developer.mozilla.org/en/docs/Web/API/DOMImplementation) to Kotlin\n */\npublic external abstract class DOMImplementation {\n fun createDocumentType(qualifiedName: String, publicId: String, systemId: String): DocumentType\n fun createDocument(namespace: String?, qualifiedName: String, doctype: DocumentType? = definedExternally): XMLDocument\n fun createHTMLDocument(title: String = definedExternally): Document\n fun hasFeature(): Boolean\n}\n\n/**\n * Exposes the JavaScript [DocumentType](https://developer.mozilla.org/en/docs/Web/API/DocumentType) to Kotlin\n */\npublic external abstract class DocumentType : Node, ChildNode {\n open val name: String\n open val publicId: String\n open val systemId: String\n}\n\n/**\n * Exposes the JavaScript [DocumentFragment](https://developer.mozilla.org/en/docs/Web/API/DocumentFragment) to Kotlin\n */\npublic external open class DocumentFragment : Node, NonElementParentNode, ParentNode {\n override val children: HTMLCollection\n override val firstElementChild: Element?\n override val lastElementChild: Element?\n override val childElementCount: Int\n override fun getElementById(elementId: String): Element?\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n}\n\n/**\n * Exposes the JavaScript [ShadowRoot](https://developer.mozilla.org/en/docs/Web/API/ShadowRoot) to Kotlin\n */\npublic external open class ShadowRoot : DocumentFragment, DocumentOrShadowRoot {\n open val mode: ShadowRootMode\n open val host: Element\n override val fullscreenElement: Element?\n override fun getElementById(elementId: String): Element?\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n}\n\n/**\n * Exposes the JavaScript [Element](https://developer.mozilla.org/en/docs/Web/API/Element) to Kotlin\n */\npublic external abstract class Element : Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slotable, GeometryUtils, UnionElementOrProcessingInstruction, UnionElementOrHTMLCollection, UnionElementOrRadioNodeList, UnionElementOrMouseEvent {\n open var innerHTML: String\n open var outerHTML: String\n open val namespaceURI: String?\n open val prefix: String?\n open val localName: String\n open val tagName: String\n open var id: String\n open var className: String\n open val classList: DOMTokenList\n open var slot: String\n open val attributes: NamedNodeMap\n open val shadowRoot: ShadowRoot?\n open var scrollTop: Double\n open var scrollLeft: Double\n open val scrollWidth: Int\n open val scrollHeight: Int\n open val clientTop: Int\n open val clientLeft: Int\n open val clientWidth: Int\n open val clientHeight: Int\n fun requestFullscreen(): Promise\n fun setPointerCapture(pointerId: Int): Unit\n fun releasePointerCapture(pointerId: Int): Unit\n fun hasPointerCapture(pointerId: Int): Boolean\n fun insertAdjacentHTML(position: String, text: String): Unit\n fun hasAttributes(): Boolean\n fun getAttributeNames(): Array\n fun getAttribute(qualifiedName: String): String?\n fun getAttributeNS(namespace: String?, localName: String): String?\n fun setAttribute(qualifiedName: String, value: String): Unit\n fun setAttributeNS(namespace: String?, qualifiedName: String, value: String): Unit\n fun removeAttribute(qualifiedName: String): Unit\n fun removeAttributeNS(namespace: String?, localName: String): Unit\n fun hasAttribute(qualifiedName: String): Boolean\n fun hasAttributeNS(namespace: String?, localName: String): Boolean\n fun getAttributeNode(qualifiedName: String): Attr?\n fun getAttributeNodeNS(namespace: String?, localName: String): Attr?\n fun setAttributeNode(attr: Attr): Attr?\n fun setAttributeNodeNS(attr: Attr): Attr?\n fun removeAttributeNode(attr: Attr): Attr\n fun attachShadow(init: ShadowRootInit): ShadowRoot\n fun closest(selectors: String): Element?\n fun matches(selectors: String): Boolean\n fun webkitMatchesSelector(selectors: String): Boolean\n fun getElementsByTagName(qualifiedName: String): HTMLCollection\n fun getElementsByTagNameNS(namespace: String?, localName: String): HTMLCollection\n fun getElementsByClassName(classNames: String): HTMLCollection\n fun insertAdjacentElement(where: String, element: Element): Element?\n fun insertAdjacentText(where: String, data: String): Unit\n fun getClientRects(): Array\n fun getBoundingClientRect(): DOMRect\n fun scrollIntoView(): Unit\n fun scrollIntoView(arg: dynamic): Unit\n fun scroll(options: ScrollToOptions = definedExternally): Unit\n fun scroll(x: Double, y: Double): Unit\n fun scrollTo(options: ScrollToOptions = definedExternally): Unit\n fun scrollTo(x: Double, y: Double): Unit\n fun scrollBy(options: ScrollToOptions = definedExternally): Unit\n fun scrollBy(x: Double, y: Double): Unit\n}\n\npublic external interface ShadowRootInit {\n var mode: ShadowRootMode?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ShadowRootInit(mode: ShadowRootMode?): ShadowRootInit {\n val o = js(\"({})\")\n\n o[\"mode\"] = mode\n\n return o\n}\n\n/**\n * Exposes the JavaScript [NamedNodeMap](https://developer.mozilla.org/en/docs/Web/API/NamedNodeMap) to Kotlin\n */\npublic external abstract class NamedNodeMap : ItemArrayLike {\n override val length: Int\n override fun item(index: Int): Attr?\n fun getNamedItem(qualifiedName: String): Attr?\n fun getNamedItemNS(namespace: String?, localName: String): Attr?\n fun setNamedItem(attr: Attr): Attr?\n fun setNamedItemNS(attr: Attr): Attr?\n fun removeNamedItem(qualifiedName: String): Attr\n fun removeNamedItemNS(namespace: String?, localName: String): Attr\n}\n@kotlin.internal.InlineOnly inline operator fun NamedNodeMap.get(index: Int): Attr? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun NamedNodeMap.get(qualifiedName: String): Attr? = asDynamic()[qualifiedName]\n\n/**\n * Exposes the JavaScript [Attr](https://developer.mozilla.org/en/docs/Web/API/Attr) to Kotlin\n */\npublic external abstract class Attr : Node {\n open val namespaceURI: String?\n open val prefix: String?\n open val localName: String\n open val name: String\n open var value: String\n open val ownerElement: Element?\n open val specified: Boolean\n}\n\n/**\n * Exposes the JavaScript [CharacterData](https://developer.mozilla.org/en/docs/Web/API/CharacterData) to Kotlin\n */\npublic external abstract class CharacterData : Node, NonDocumentTypeChildNode, ChildNode {\n open var data: String\n open val length: Int\n fun substringData(offset: Int, count: Int): String\n fun appendData(data: String): Unit\n fun insertData(offset: Int, data: String): Unit\n fun deleteData(offset: Int, count: Int): Unit\n fun replaceData(offset: Int, count: Int, data: String): Unit\n}\n\n/**\n * Exposes the JavaScript [Text](https://developer.mozilla.org/en/docs/Web/API/Text) to Kotlin\n */\npublic external open class Text(data: String = definedExternally) : CharacterData, Slotable, GeometryUtils {\n open val wholeText: String\n override val previousElementSibling: Element?\n override val nextElementSibling: Element?\n override val assignedSlot: HTMLSlotElement?\n fun splitText(offset: Int): Text\n override fun before(vararg nodes: dynamic): Unit\n override fun after(vararg nodes: dynamic): Unit\n override fun replaceWith(vararg nodes: dynamic): Unit\n override fun remove(): Unit\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [CDATASection](https://developer.mozilla.org/en/docs/Web/API/CDATASection) to Kotlin\n */\npublic external open class CDATASection : Text {\n override fun before(vararg nodes: dynamic): Unit\n override fun after(vararg nodes: dynamic): Unit\n override fun replaceWith(vararg nodes: dynamic): Unit\n override fun remove(): Unit\n override fun getBoxQuads(options: BoxQuadOptions /* = definedExternally */): Array\n override fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMQuad\n override fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions /* = definedExternally */): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [ProcessingInstruction](https://developer.mozilla.org/en/docs/Web/API/ProcessingInstruction) to Kotlin\n */\npublic external abstract class ProcessingInstruction : CharacterData, LinkStyle, UnionElementOrProcessingInstruction {\n open val target: String\n}\n\n/**\n * Exposes the JavaScript [Comment](https://developer.mozilla.org/en/docs/Web/API/Comment) to Kotlin\n */\npublic external open class Comment(data: String = definedExternally) : CharacterData {\n override val previousElementSibling: Element?\n override val nextElementSibling: Element?\n override fun before(vararg nodes: dynamic): Unit\n override fun after(vararg nodes: dynamic): Unit\n override fun replaceWith(vararg nodes: dynamic): Unit\n override fun remove(): Unit\n}\n\n/**\n * Exposes the JavaScript [Range](https://developer.mozilla.org/en/docs/Web/API/Range) to Kotlin\n */\npublic external open class Range {\n open val startContainer: Node\n open val startOffset: Int\n open val endContainer: Node\n open val endOffset: Int\n open val collapsed: Boolean\n open val commonAncestorContainer: Node\n fun createContextualFragment(fragment: String): DocumentFragment\n fun setStart(node: Node, offset: Int): Unit\n fun setEnd(node: Node, offset: Int): Unit\n fun setStartBefore(node: Node): Unit\n fun setStartAfter(node: Node): Unit\n fun setEndBefore(node: Node): Unit\n fun setEndAfter(node: Node): Unit\n fun collapse(toStart: Boolean = definedExternally): Unit\n fun selectNode(node: Node): Unit\n fun selectNodeContents(node: Node): Unit\n fun compareBoundaryPoints(how: Short, sourceRange: Range): Short\n fun deleteContents(): Unit\n fun extractContents(): DocumentFragment\n fun cloneContents(): DocumentFragment\n fun insertNode(node: Node): Unit\n fun surroundContents(newParent: Node): Unit\n fun cloneRange(): Range\n fun detach(): Unit\n fun isPointInRange(node: Node, offset: Int): Boolean\n fun comparePoint(node: Node, offset: Int): Short\n fun intersectsNode(node: Node): Boolean\n fun getClientRects(): Array\n fun getBoundingClientRect(): DOMRect\n\n companion object {\n val START_TO_START: Short\n val START_TO_END: Short\n val END_TO_END: Short\n val END_TO_START: Short\n }\n}\n\n/**\n * Exposes the JavaScript [NodeIterator](https://developer.mozilla.org/en/docs/Web/API/NodeIterator) to Kotlin\n */\npublic external abstract class NodeIterator {\n open val root: Node\n open val referenceNode: Node\n open val pointerBeforeReferenceNode: Boolean\n open val whatToShow: Int\n open val filter: NodeFilter?\n fun nextNode(): Node?\n fun previousNode(): Node?\n fun detach(): Unit\n}\n\n/**\n * Exposes the JavaScript [TreeWalker](https://developer.mozilla.org/en/docs/Web/API/TreeWalker) to Kotlin\n */\npublic external abstract class TreeWalker {\n open val root: Node\n open val whatToShow: Int\n open val filter: NodeFilter?\n open var currentNode: Node\n fun parentNode(): Node?\n fun firstChild(): Node?\n fun lastChild(): Node?\n fun previousSibling(): Node?\n fun nextSibling(): Node?\n fun previousNode(): Node?\n fun nextNode(): Node?\n}\n\n/**\n * Exposes the JavaScript [NodeFilter](https://developer.mozilla.org/en/docs/Web/API/NodeFilter) to Kotlin\n */\npublic external interface NodeFilter {\n fun acceptNode(node: Node): Short\n\n companion object {\n val FILTER_ACCEPT: Short\n val FILTER_REJECT: Short\n val FILTER_SKIP: Short\n val SHOW_ALL: Int\n val SHOW_ELEMENT: Int\n val SHOW_ATTRIBUTE: Int\n val SHOW_TEXT: Int\n val SHOW_CDATA_SECTION: Int\n val SHOW_ENTITY_REFERENCE: Int\n val SHOW_ENTITY: Int\n val SHOW_PROCESSING_INSTRUCTION: Int\n val SHOW_COMMENT: Int\n val SHOW_DOCUMENT: Int\n val SHOW_DOCUMENT_TYPE: Int\n val SHOW_DOCUMENT_FRAGMENT: Int\n val SHOW_NOTATION: Int\n }\n}\n\n/**\n * Exposes the JavaScript [DOMTokenList](https://developer.mozilla.org/en/docs/Web/API/DOMTokenList) to Kotlin\n */\npublic external abstract class DOMTokenList : ItemArrayLike {\n override val length: Int\n open var value: String\n override fun item(index: Int): String?\n fun contains(token: String): Boolean\n fun add(vararg tokens: String): Unit\n fun remove(vararg tokens: String): Unit\n fun toggle(token: String, force: Boolean = definedExternally): Boolean\n fun replace(token: String, newToken: String): Unit\n fun supports(token: String): Boolean\n}\n@kotlin.internal.InlineOnly inline operator fun DOMTokenList.get(index: Int): String? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [DOMPointReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMPointReadOnly) to Kotlin\n */\npublic external open class DOMPointReadOnly(x: Double, y: Double, z: Double, w: Double) {\n open val x: Double\n open val y: Double\n open val z: Double\n open val w: Double\n fun matrixTransform(matrix: DOMMatrixReadOnly): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [DOMPoint](https://developer.mozilla.org/en/docs/Web/API/DOMPoint) to Kotlin\n */\npublic external open class DOMPoint : DOMPointReadOnly {\n constructor(point: DOMPointInit)\n constructor(x: Double = definedExternally, y: Double = definedExternally, z: Double = definedExternally, w: Double = definedExternally)\n override var x: Double\n override var y: Double\n override var z: Double\n override var w: Double\n}\n\n/**\n * Exposes the JavaScript [DOMPointInit](https://developer.mozilla.org/en/docs/Web/API/DOMPointInit) to Kotlin\n */\npublic external interface DOMPointInit {\n var x: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var y: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var z: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var w: Double? /* = 1.0 */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun DOMPointInit(x: Double? = 0.0, y: Double? = 0.0, z: Double? = 0.0, w: Double? = 1.0): DOMPointInit {\n val o = js(\"({})\")\n\n o[\"x\"] = x\n o[\"y\"] = y\n o[\"z\"] = z\n o[\"w\"] = w\n\n return o\n}\n\n/**\n * Exposes the JavaScript [DOMRect](https://developer.mozilla.org/en/docs/Web/API/DOMRect) to Kotlin\n */\npublic external open class DOMRect(x: Double = definedExternally, y: Double = definedExternally, width: Double = definedExternally, height: Double = definedExternally) : DOMRectReadOnly {\n override var x: Double\n override var y: Double\n override var width: Double\n override var height: Double\n}\n\n/**\n * Exposes the JavaScript [DOMRectReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMRectReadOnly) to Kotlin\n */\npublic external open class DOMRectReadOnly(x: Double, y: Double, width: Double, height: Double) {\n open val x: Double\n open val y: Double\n open val width: Double\n open val height: Double\n open val top: Double\n open val right: Double\n open val bottom: Double\n open val left: Double\n}\n\npublic external interface DOMRectInit {\n var x: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var y: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var width: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n var height: Double? /* = 0.0 */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun DOMRectInit(x: Double? = 0.0, y: Double? = 0.0, width: Double? = 0.0, height: Double? = 0.0): DOMRectInit {\n val o = js(\"({})\")\n\n o[\"x\"] = x\n o[\"y\"] = y\n o[\"width\"] = width\n o[\"height\"] = height\n\n return o\n}\n\npublic external interface DOMRectList : ItemArrayLike {\n override fun item(index: Int): DOMRect?\n}\n@kotlin.internal.InlineOnly inline operator fun DOMRectList.get(index: Int): DOMRect? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [DOMQuad](https://developer.mozilla.org/en/docs/Web/API/DOMQuad) to Kotlin\n */\npublic external open class DOMQuad {\n constructor(p1: DOMPointInit = definedExternally, p2: DOMPointInit = definedExternally, p3: DOMPointInit = definedExternally, p4: DOMPointInit = definedExternally)\n constructor(rect: DOMRectInit)\n open val p1: DOMPoint\n open val p2: DOMPoint\n open val p3: DOMPoint\n open val p4: DOMPoint\n open val bounds: DOMRectReadOnly\n}\n\n/**\n * Exposes the JavaScript [DOMMatrixReadOnly](https://developer.mozilla.org/en/docs/Web/API/DOMMatrixReadOnly) to Kotlin\n */\npublic external open class DOMMatrixReadOnly(numberSequence: Array) {\n open val a: Double\n open val b: Double\n open val c: Double\n open val d: Double\n open val e: Double\n open val f: Double\n open val m11: Double\n open val m12: Double\n open val m13: Double\n open val m14: Double\n open val m21: Double\n open val m22: Double\n open val m23: Double\n open val m24: Double\n open val m31: Double\n open val m32: Double\n open val m33: Double\n open val m34: Double\n open val m41: Double\n open val m42: Double\n open val m43: Double\n open val m44: Double\n open val is2D: Boolean\n open val isIdentity: Boolean\n fun translate(tx: Double, ty: Double, tz: Double = definedExternally): DOMMatrix\n fun scale(scale: Double, originX: Double = definedExternally, originY: Double = definedExternally): DOMMatrix\n fun scale3d(scale: Double, originX: Double = definedExternally, originY: Double = definedExternally, originZ: Double = definedExternally): DOMMatrix\n fun scaleNonUniform(scaleX: Double, scaleY: Double = definedExternally, scaleZ: Double = definedExternally, originX: Double = definedExternally, originY: Double = definedExternally, originZ: Double = definedExternally): DOMMatrix\n fun rotate(angle: Double, originX: Double = definedExternally, originY: Double = definedExternally): DOMMatrix\n fun rotateFromVector(x: Double, y: Double): DOMMatrix\n fun rotateAxisAngle(x: Double, y: Double, z: Double, angle: Double): DOMMatrix\n fun skewX(sx: Double): DOMMatrix\n fun skewY(sy: Double): DOMMatrix\n fun multiply(other: DOMMatrix): DOMMatrix\n fun flipX(): DOMMatrix\n fun flipY(): DOMMatrix\n fun inverse(): DOMMatrix\n fun transformPoint(point: DOMPointInit = definedExternally): DOMPoint\n fun toFloat32Array(): Float32Array\n fun toFloat64Array(): Float64Array\n}\n\n/**\n * Exposes the JavaScript [DOMMatrix](https://developer.mozilla.org/en/docs/Web/API/DOMMatrix) to Kotlin\n */\npublic external open class DOMMatrix() : DOMMatrixReadOnly {\n constructor(transformList: String)\n constructor(other: DOMMatrixReadOnly)\n constructor(array32: Float32Array)\n constructor(array64: Float64Array)\n constructor(numberSequence: Array)\n override var a: Double\n override var b: Double\n override var c: Double\n override var d: Double\n override var e: Double\n override var f: Double\n override var m11: Double\n override var m12: Double\n override var m13: Double\n override var m14: Double\n override var m21: Double\n override var m22: Double\n override var m23: Double\n override var m24: Double\n override var m31: Double\n override var m32: Double\n override var m33: Double\n override var m34: Double\n override var m41: Double\n override var m42: Double\n override var m43: Double\n override var m44: Double\n fun multiplySelf(other: DOMMatrix): DOMMatrix\n fun preMultiplySelf(other: DOMMatrix): DOMMatrix\n fun translateSelf(tx: Double, ty: Double, tz: Double = definedExternally): DOMMatrix\n fun scaleSelf(scale: Double, originX: Double = definedExternally, originY: Double = definedExternally): DOMMatrix\n fun scale3dSelf(scale: Double, originX: Double = definedExternally, originY: Double = definedExternally, originZ: Double = definedExternally): DOMMatrix\n fun scaleNonUniformSelf(scaleX: Double, scaleY: Double = definedExternally, scaleZ: Double = definedExternally, originX: Double = definedExternally, originY: Double = definedExternally, originZ: Double = definedExternally): DOMMatrix\n fun rotateSelf(angle: Double, originX: Double = definedExternally, originY: Double = definedExternally): DOMMatrix\n fun rotateFromVectorSelf(x: Double, y: Double): DOMMatrix\n fun rotateAxisAngleSelf(x: Double, y: Double, z: Double, angle: Double): DOMMatrix\n fun skewXSelf(sx: Double): DOMMatrix\n fun skewYSelf(sy: Double): DOMMatrix\n fun invertSelf(): DOMMatrix\n fun setMatrixValue(transformList: String): DOMMatrix\n}\n\npublic external interface ScrollOptions {\n var behavior: ScrollBehavior? /* = ScrollBehavior.AUTO */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ScrollOptions(behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollOptions {\n val o = js(\"({})\")\n\n o[\"behavior\"] = behavior\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ScrollToOptions](https://developer.mozilla.org/en/docs/Web/API/ScrollToOptions) to Kotlin\n */\npublic external interface ScrollToOptions : ScrollOptions {\n var left: Double?\n get() = definedExternally\n set(value) = definedExternally\n var top: Double?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ScrollToOptions(left: Double? = undefined, top: Double? = undefined, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollToOptions {\n val o = js(\"({})\")\n\n o[\"left\"] = left\n o[\"top\"] = top\n o[\"behavior\"] = behavior\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MediaQueryList](https://developer.mozilla.org/en/docs/Web/API/MediaQueryList) to Kotlin\n */\npublic external abstract class MediaQueryList : EventTarget {\n open val media: String\n open val matches: Boolean\n open var onchange: ((Event) -> dynamic)?\n fun addListener(listener: EventListener?): Unit\n fun addListener(listener: ((Event) -> Unit)?): Unit\n fun removeListener(listener: EventListener?): Unit\n fun removeListener(listener: ((Event) -> Unit)?): Unit\n}\n\n/**\n * Exposes the JavaScript [MediaQueryListEvent](https://developer.mozilla.org/en/docs/Web/API/MediaQueryListEvent) to Kotlin\n */\npublic external open class MediaQueryListEvent(type: String, eventInitDict: MediaQueryListEventInit = definedExternally) : Event {\n open val media: String\n open val matches: Boolean\n}\n\npublic external interface MediaQueryListEventInit : EventInit {\n var media: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var matches: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaQueryListEventInit(media: String? = \"\", matches: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaQueryListEventInit {\n val o = js(\"({})\")\n\n o[\"media\"] = media\n o[\"matches\"] = matches\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [Screen](https://developer.mozilla.org/en/docs/Web/API/Screen) to Kotlin\n */\npublic external abstract class Screen {\n open val availWidth: Int\n open val availHeight: Int\n open val width: Int\n open val height: Int\n open val colorDepth: Int\n open val pixelDepth: Int\n}\n\n/**\n * Exposes the JavaScript [CaretPosition](https://developer.mozilla.org/en/docs/Web/API/CaretPosition) to Kotlin\n */\npublic external abstract class CaretPosition {\n open val offsetNode: Node\n open val offset: Int\n fun getClientRect(): DOMRect?\n}\n\npublic external interface ScrollIntoViewOptions : ScrollOptions {\n var block: ScrollLogicalPosition? /* = ScrollLogicalPosition.CENTER */\n get() = definedExternally\n set(value) = definedExternally\n var inline: ScrollLogicalPosition? /* = ScrollLogicalPosition.CENTER */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ScrollIntoViewOptions(block: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, inline: ScrollLogicalPosition? = ScrollLogicalPosition.CENTER, behavior: ScrollBehavior? = ScrollBehavior.AUTO): ScrollIntoViewOptions {\n val o = js(\"({})\")\n\n o[\"block\"] = block\n o[\"inline\"] = inline\n o[\"behavior\"] = behavior\n\n return o\n}\n\npublic external interface BoxQuadOptions {\n var box: CSSBoxType? /* = CSSBoxType.BORDER */\n get() = definedExternally\n set(value) = definedExternally\n var relativeTo: dynamic\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun BoxQuadOptions(box: CSSBoxType? = CSSBoxType.BORDER, relativeTo: dynamic = undefined): BoxQuadOptions {\n val o = js(\"({})\")\n\n o[\"box\"] = box\n o[\"relativeTo\"] = relativeTo\n\n return o\n}\n\npublic external interface ConvertCoordinateOptions {\n var fromBox: CSSBoxType? /* = CSSBoxType.BORDER */\n get() = definedExternally\n set(value) = definedExternally\n var toBox: CSSBoxType? /* = CSSBoxType.BORDER */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ConvertCoordinateOptions(fromBox: CSSBoxType? = CSSBoxType.BORDER, toBox: CSSBoxType? = CSSBoxType.BORDER): ConvertCoordinateOptions {\n val o = js(\"({})\")\n\n o[\"fromBox\"] = fromBox\n o[\"toBox\"] = toBox\n\n return o\n}\n\n/**\n * Exposes the JavaScript [GeometryUtils](https://developer.mozilla.org/en/docs/Web/API/GeometryUtils) to Kotlin\n */\npublic external interface GeometryUtils {\n fun getBoxQuads(options: BoxQuadOptions = definedExternally): Array\n fun convertQuadFromNode(quad: dynamic, from: dynamic, options: ConvertCoordinateOptions = definedExternally): DOMQuad\n fun convertRectFromNode(rect: DOMRectReadOnly, from: dynamic, options: ConvertCoordinateOptions = definedExternally): DOMQuad\n fun convertPointFromNode(point: DOMPointInit, from: dynamic, options: ConvertCoordinateOptions = definedExternally): DOMPoint\n}\n\npublic external @marker interface UnionElementOrProcessingInstruction {\n}\n\npublic external @marker interface UnionElementOrHTMLCollection {\n}\n\npublic external @marker interface UnionElementOrRadioNodeList {\n}\n\npublic external @marker interface UnionHTMLOptGroupElementOrHTMLOptionElement {\n}\n\npublic external @marker interface UnionAudioTrackOrTextTrackOrVideoTrack {\n}\n\npublic external @marker interface UnionElementOrMouseEvent {\n}\n\npublic external @marker interface UnionMessagePortOrWindow {\n}\n\npublic external @marker interface UnionMessagePortOrServiceWorker {\n}\n\npublic external @marker interface HTMLOrSVGScriptElement {\n}\n\npublic external @marker interface RenderingContext {\n}\n\npublic external @marker interface HTMLOrSVGImageElement {\n}\n\n/* please, don't implement this interface! */\npublic external interface DocumentReadyState {\n companion object\n}\npublic inline val DocumentReadyState.Companion.LOADING: DocumentReadyState get() = \"loading\".asDynamic().unsafeCast()\npublic inline val DocumentReadyState.Companion.INTERACTIVE: DocumentReadyState get() = \"interactive\".asDynamic().unsafeCast()\npublic inline val DocumentReadyState.Companion.COMPLETE: DocumentReadyState get() = \"complete\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanPlayTypeResult {\n companion object\n}\npublic inline val CanPlayTypeResult.Companion.EMPTY: CanPlayTypeResult get() = \"\".asDynamic().unsafeCast()\npublic inline val CanPlayTypeResult.Companion.MAYBE: CanPlayTypeResult get() = \"maybe\".asDynamic().unsafeCast()\npublic inline val CanPlayTypeResult.Companion.PROBABLY: CanPlayTypeResult get() = \"probably\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface TextTrackMode {\n companion object\n}\npublic inline val TextTrackMode.Companion.DISABLED: TextTrackMode get() = \"disabled\".asDynamic().unsafeCast()\npublic inline val TextTrackMode.Companion.HIDDEN: TextTrackMode get() = \"hidden\".asDynamic().unsafeCast()\npublic inline val TextTrackMode.Companion.SHOWING: TextTrackMode get() = \"showing\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface TextTrackKind {\n companion object\n}\npublic inline val TextTrackKind.Companion.SUBTITLES: TextTrackKind get() = \"subtitles\".asDynamic().unsafeCast()\npublic inline val TextTrackKind.Companion.CAPTIONS: TextTrackKind get() = \"captions\".asDynamic().unsafeCast()\npublic inline val TextTrackKind.Companion.DESCRIPTIONS: TextTrackKind get() = \"descriptions\".asDynamic().unsafeCast()\npublic inline val TextTrackKind.Companion.CHAPTERS: TextTrackKind get() = \"chapters\".asDynamic().unsafeCast()\npublic inline val TextTrackKind.Companion.METADATA: TextTrackKind get() = \"metadata\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface SelectionMode {\n companion object\n}\npublic inline val SelectionMode.Companion.SELECT: SelectionMode get() = \"select\".asDynamic().unsafeCast()\npublic inline val SelectionMode.Companion.START: SelectionMode get() = \"start\".asDynamic().unsafeCast()\npublic inline val SelectionMode.Companion.END: SelectionMode get() = \"end\".asDynamic().unsafeCast()\npublic inline val SelectionMode.Companion.PRESERVE: SelectionMode get() = \"preserve\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanvasFillRule {\n companion object\n}\npublic inline val CanvasFillRule.Companion.NONZERO: CanvasFillRule get() = \"nonzero\".asDynamic().unsafeCast()\npublic inline val CanvasFillRule.Companion.EVENODD: CanvasFillRule get() = \"evenodd\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ImageSmoothingQuality {\n companion object\n}\npublic inline val ImageSmoothingQuality.Companion.LOW: ImageSmoothingQuality get() = \"low\".asDynamic().unsafeCast()\npublic inline val ImageSmoothingQuality.Companion.MEDIUM: ImageSmoothingQuality get() = \"medium\".asDynamic().unsafeCast()\npublic inline val ImageSmoothingQuality.Companion.HIGH: ImageSmoothingQuality get() = \"high\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanvasLineCap {\n companion object\n}\npublic inline val CanvasLineCap.Companion.BUTT: CanvasLineCap get() = \"butt\".asDynamic().unsafeCast()\npublic inline val CanvasLineCap.Companion.ROUND: CanvasLineCap get() = \"round\".asDynamic().unsafeCast()\npublic inline val CanvasLineCap.Companion.SQUARE: CanvasLineCap get() = \"square\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanvasLineJoin {\n companion object\n}\npublic inline val CanvasLineJoin.Companion.ROUND: CanvasLineJoin get() = \"round\".asDynamic().unsafeCast()\npublic inline val CanvasLineJoin.Companion.BEVEL: CanvasLineJoin get() = \"bevel\".asDynamic().unsafeCast()\npublic inline val CanvasLineJoin.Companion.MITER: CanvasLineJoin get() = \"miter\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanvasTextAlign {\n companion object\n}\npublic inline val CanvasTextAlign.Companion.START: CanvasTextAlign get() = \"start\".asDynamic().unsafeCast()\npublic inline val CanvasTextAlign.Companion.END: CanvasTextAlign get() = \"end\".asDynamic().unsafeCast()\npublic inline val CanvasTextAlign.Companion.LEFT: CanvasTextAlign get() = \"left\".asDynamic().unsafeCast()\npublic inline val CanvasTextAlign.Companion.RIGHT: CanvasTextAlign get() = \"right\".asDynamic().unsafeCast()\npublic inline val CanvasTextAlign.Companion.CENTER: CanvasTextAlign get() = \"center\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanvasTextBaseline {\n companion object\n}\npublic inline val CanvasTextBaseline.Companion.TOP: CanvasTextBaseline get() = \"top\".asDynamic().unsafeCast()\npublic inline val CanvasTextBaseline.Companion.HANGING: CanvasTextBaseline get() = \"hanging\".asDynamic().unsafeCast()\npublic inline val CanvasTextBaseline.Companion.MIDDLE: CanvasTextBaseline get() = \"middle\".asDynamic().unsafeCast()\npublic inline val CanvasTextBaseline.Companion.ALPHABETIC: CanvasTextBaseline get() = \"alphabetic\".asDynamic().unsafeCast()\npublic inline val CanvasTextBaseline.Companion.IDEOGRAPHIC: CanvasTextBaseline get() = \"ideographic\".asDynamic().unsafeCast()\npublic inline val CanvasTextBaseline.Companion.BOTTOM: CanvasTextBaseline get() = \"bottom\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CanvasDirection {\n companion object\n}\npublic inline val CanvasDirection.Companion.LTR: CanvasDirection get() = \"ltr\".asDynamic().unsafeCast()\npublic inline val CanvasDirection.Companion.RTL: CanvasDirection get() = \"rtl\".asDynamic().unsafeCast()\npublic inline val CanvasDirection.Companion.INHERIT: CanvasDirection get() = \"inherit\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ScrollRestoration {\n companion object\n}\npublic inline val ScrollRestoration.Companion.AUTO: ScrollRestoration get() = \"auto\".asDynamic().unsafeCast()\npublic inline val ScrollRestoration.Companion.MANUAL: ScrollRestoration get() = \"manual\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ImageOrientation {\n companion object\n}\npublic inline val ImageOrientation.Companion.NONE: ImageOrientation get() = \"none\".asDynamic().unsafeCast()\npublic inline val ImageOrientation.Companion.FLIPY: ImageOrientation get() = \"flipY\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface PremultiplyAlpha {\n companion object\n}\npublic inline val PremultiplyAlpha.Companion.NONE: PremultiplyAlpha get() = \"none\".asDynamic().unsafeCast()\npublic inline val PremultiplyAlpha.Companion.PREMULTIPLY: PremultiplyAlpha get() = \"premultiply\".asDynamic().unsafeCast()\npublic inline val PremultiplyAlpha.Companion.DEFAULT: PremultiplyAlpha get() = \"default\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ColorSpaceConversion {\n companion object\n}\npublic inline val ColorSpaceConversion.Companion.NONE: ColorSpaceConversion get() = \"none\".asDynamic().unsafeCast()\npublic inline val ColorSpaceConversion.Companion.DEFAULT: ColorSpaceConversion get() = \"default\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ResizeQuality {\n companion object\n}\npublic inline val ResizeQuality.Companion.PIXELATED: ResizeQuality get() = \"pixelated\".asDynamic().unsafeCast()\npublic inline val ResizeQuality.Companion.LOW: ResizeQuality get() = \"low\".asDynamic().unsafeCast()\npublic inline val ResizeQuality.Companion.MEDIUM: ResizeQuality get() = \"medium\".asDynamic().unsafeCast()\npublic inline val ResizeQuality.Companion.HIGH: ResizeQuality get() = \"high\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface BinaryType {\n companion object\n}\npublic inline val BinaryType.Companion.BLOB: BinaryType get() = \"blob\".asDynamic().unsafeCast()\npublic inline val BinaryType.Companion.ARRAYBUFFER: BinaryType get() = \"arraybuffer\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface WorkerType {\n companion object\n}\npublic inline val WorkerType.Companion.CLASSIC: WorkerType get() = \"classic\".asDynamic().unsafeCast()\npublic inline val WorkerType.Companion.MODULE: WorkerType get() = \"module\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ShadowRootMode {\n companion object\n}\npublic inline val ShadowRootMode.Companion.OPEN: ShadowRootMode get() = \"open\".asDynamic().unsafeCast()\npublic inline val ShadowRootMode.Companion.CLOSED: ShadowRootMode get() = \"closed\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ScrollBehavior {\n companion object\n}\npublic inline val ScrollBehavior.Companion.AUTO: ScrollBehavior get() = \"auto\".asDynamic().unsafeCast()\npublic inline val ScrollBehavior.Companion.INSTANT: ScrollBehavior get() = \"instant\".asDynamic().unsafeCast()\npublic inline val ScrollBehavior.Companion.SMOOTH: ScrollBehavior get() = \"smooth\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ScrollLogicalPosition {\n companion object\n}\npublic inline val ScrollLogicalPosition.Companion.START: ScrollLogicalPosition get() = \"start\".asDynamic().unsafeCast()\npublic inline val ScrollLogicalPosition.Companion.CENTER: ScrollLogicalPosition get() = \"center\".asDynamic().unsafeCast()\npublic inline val ScrollLogicalPosition.Companion.END: ScrollLogicalPosition get() = \"end\".asDynamic().unsafeCast()\npublic inline val ScrollLogicalPosition.Companion.NEAREST: ScrollLogicalPosition get() = \"nearest\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface CSSBoxType {\n companion object\n}\npublic inline val CSSBoxType.Companion.MARGIN: CSSBoxType get() = \"margin\".asDynamic().unsafeCast()\npublic inline val CSSBoxType.Companion.BORDER: CSSBoxType get() = \"border\".asDynamic().unsafeCast()\npublic inline val CSSBoxType.Companion.PADDING: CSSBoxType get() = \"padding\".asDynamic().unsafeCast()\npublic inline val CSSBoxType.Companion.CONTENT: CSSBoxType get() = \"content\".asDynamic().unsafeCast()\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.fetch\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [Headers](https://developer.mozilla.org/en/docs/Web/API/Headers) to Kotlin\n */\npublic external open class Headers(init: dynamic = definedExternally) {\n fun append(name: String, value: String): Unit\n fun delete(name: String): Unit\n fun get(name: String): String?\n fun has(name: String): Boolean\n fun set(name: String, value: String): Unit\n}\n\n/**\n * Exposes the JavaScript [Body](https://developer.mozilla.org/en/docs/Web/API/Body) to Kotlin\n */\npublic external interface Body {\n val bodyUsed: Boolean\n fun arrayBuffer(): Promise\n fun blob(): Promise\n fun formData(): Promise\n fun json(): Promise\n fun text(): Promise\n}\n\n/**\n * Exposes the JavaScript [Request](https://developer.mozilla.org/en/docs/Web/API/Request) to Kotlin\n */\npublic external open class Request(input: dynamic, init: RequestInit = definedExternally) : Body {\n open val method: String\n open val url: String\n open val headers: Headers\n open val type: RequestType\n open val destination: RequestDestination\n open val referrer: String\n open val referrerPolicy: dynamic\n open val mode: RequestMode\n open val credentials: RequestCredentials\n open val cache: RequestCache\n open val redirect: RequestRedirect\n open val integrity: String\n open val keepalive: Boolean\n override val bodyUsed: Boolean\n fun clone(): Request\n override fun arrayBuffer(): Promise\n override fun blob(): Promise\n override fun formData(): Promise\n override fun json(): Promise\n override fun text(): Promise\n}\n\npublic external interface RequestInit {\n var method: String?\n get() = definedExternally\n set(value) = definedExternally\n var headers: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var body: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var referrer: String?\n get() = definedExternally\n set(value) = definedExternally\n var referrerPolicy: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var mode: RequestMode?\n get() = definedExternally\n set(value) = definedExternally\n var credentials: RequestCredentials?\n get() = definedExternally\n set(value) = definedExternally\n var cache: RequestCache?\n get() = definedExternally\n set(value) = definedExternally\n var redirect: RequestRedirect?\n get() = definedExternally\n set(value) = definedExternally\n var integrity: String?\n get() = definedExternally\n set(value) = definedExternally\n var keepalive: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var window: Any?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun RequestInit(method: String? = undefined, headers: dynamic = undefined, body: dynamic = undefined, referrer: String? = undefined, referrerPolicy: dynamic = undefined, mode: RequestMode? = undefined, credentials: RequestCredentials? = undefined, cache: RequestCache? = undefined, redirect: RequestRedirect? = undefined, integrity: String? = undefined, keepalive: Boolean? = undefined, window: Any? = undefined): RequestInit {\n val o = js(\"({})\")\n\n o[\"method\"] = method\n o[\"headers\"] = headers\n o[\"body\"] = body\n o[\"referrer\"] = referrer\n o[\"referrerPolicy\"] = referrerPolicy\n o[\"mode\"] = mode\n o[\"credentials\"] = credentials\n o[\"cache\"] = cache\n o[\"redirect\"] = redirect\n o[\"integrity\"] = integrity\n o[\"keepalive\"] = keepalive\n o[\"window\"] = window\n\n return o\n}\n\n/**\n * Exposes the JavaScript [Response](https://developer.mozilla.org/en/docs/Web/API/Response) to Kotlin\n */\npublic external open class Response(body: dynamic = definedExternally, init: ResponseInit = definedExternally) : Body {\n open val type: ResponseType\n open val url: String\n open val redirected: Boolean\n open val status: Short\n open val ok: Boolean\n open val statusText: String\n open val headers: Headers\n open val body: dynamic\n open val trailer: Promise\n override val bodyUsed: Boolean\n fun clone(): Response\n override fun arrayBuffer(): Promise\n override fun blob(): Promise\n override fun formData(): Promise\n override fun json(): Promise\n override fun text(): Promise\n\n companion object {\n fun error(): Response\n fun redirect(url: String, status: Short = definedExternally): Response\n }\n}\n\npublic external interface ResponseInit {\n var status: Short? /* = 200 */\n get() = definedExternally\n set(value) = definedExternally\n var statusText: String? /* = \"OK\" */\n get() = definedExternally\n set(value) = definedExternally\n var headers: dynamic\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ResponseInit(status: Short? = 200, statusText: String? = \"OK\", headers: dynamic = undefined): ResponseInit {\n val o = js(\"({})\")\n\n o[\"status\"] = status\n o[\"statusText\"] = statusText\n o[\"headers\"] = headers\n\n return o\n}\n\n/* please, don't implement this interface! */\npublic external interface RequestType {\n companion object\n}\npublic inline val RequestType.Companion.EMPTY: RequestType get() = \"\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.AUDIO: RequestType get() = \"audio\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.FONT: RequestType get() = \"font\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.IMAGE: RequestType get() = \"image\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.SCRIPT: RequestType get() = \"script\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.STYLE: RequestType get() = \"style\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.TRACK: RequestType get() = \"track\".asDynamic().unsafeCast()\npublic inline val RequestType.Companion.VIDEO: RequestType get() = \"video\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface RequestDestination {\n companion object\n}\npublic inline val RequestDestination.Companion.EMPTY: RequestDestination get() = \"\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.DOCUMENT: RequestDestination get() = \"document\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.EMBED: RequestDestination get() = \"embed\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.FONT: RequestDestination get() = \"font\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.IMAGE: RequestDestination get() = \"image\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.MANIFEST: RequestDestination get() = \"manifest\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.MEDIA: RequestDestination get() = \"media\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.OBJECT: RequestDestination get() = \"object\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.REPORT: RequestDestination get() = \"report\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.SCRIPT: RequestDestination get() = \"script\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.SERVICEWORKER: RequestDestination get() = \"serviceworker\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.SHAREDWORKER: RequestDestination get() = \"sharedworker\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.STYLE: RequestDestination get() = \"style\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.WORKER: RequestDestination get() = \"worker\".asDynamic().unsafeCast()\npublic inline val RequestDestination.Companion.XSLT: RequestDestination get() = \"xslt\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface RequestMode {\n companion object\n}\npublic inline val RequestMode.Companion.NAVIGATE: RequestMode get() = \"navigate\".asDynamic().unsafeCast()\npublic inline val RequestMode.Companion.SAME_ORIGIN: RequestMode get() = \"same-origin\".asDynamic().unsafeCast()\npublic inline val RequestMode.Companion.NO_CORS: RequestMode get() = \"no-cors\".asDynamic().unsafeCast()\npublic inline val RequestMode.Companion.CORS: RequestMode get() = \"cors\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface RequestCredentials {\n companion object\n}\npublic inline val RequestCredentials.Companion.OMIT: RequestCredentials get() = \"omit\".asDynamic().unsafeCast()\npublic inline val RequestCredentials.Companion.SAME_ORIGIN: RequestCredentials get() = \"same-origin\".asDynamic().unsafeCast()\npublic inline val RequestCredentials.Companion.INCLUDE: RequestCredentials get() = \"include\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface RequestCache {\n companion object\n}\npublic inline val RequestCache.Companion.DEFAULT: RequestCache get() = \"default\".asDynamic().unsafeCast()\npublic inline val RequestCache.Companion.NO_STORE: RequestCache get() = \"no-store\".asDynamic().unsafeCast()\npublic inline val RequestCache.Companion.RELOAD: RequestCache get() = \"reload\".asDynamic().unsafeCast()\npublic inline val RequestCache.Companion.NO_CACHE: RequestCache get() = \"no-cache\".asDynamic().unsafeCast()\npublic inline val RequestCache.Companion.FORCE_CACHE: RequestCache get() = \"force-cache\".asDynamic().unsafeCast()\npublic inline val RequestCache.Companion.ONLY_IF_CACHED: RequestCache get() = \"only-if-cached\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface RequestRedirect {\n companion object\n}\npublic inline val RequestRedirect.Companion.FOLLOW: RequestRedirect get() = \"follow\".asDynamic().unsafeCast()\npublic inline val RequestRedirect.Companion.ERROR: RequestRedirect get() = \"error\".asDynamic().unsafeCast()\npublic inline val RequestRedirect.Companion.MANUAL: RequestRedirect get() = \"manual\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ResponseType {\n companion object\n}\npublic inline val ResponseType.Companion.BASIC: ResponseType get() = \"basic\".asDynamic().unsafeCast()\npublic inline val ResponseType.Companion.CORS: ResponseType get() = \"cors\".asDynamic().unsafeCast()\npublic inline val ResponseType.Companion.DEFAULT: ResponseType get() = \"default\".asDynamic().unsafeCast()\npublic inline val ResponseType.Companion.ERROR: ResponseType get() = \"error\".asDynamic().unsafeCast()\npublic inline val ResponseType.Companion.OPAQUE: ResponseType get() = \"opaque\".asDynamic().unsafeCast()\npublic inline val ResponseType.Companion.OPAQUEREDIRECT: ResponseType get() = \"opaqueredirect\".asDynamic().unsafeCast()\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom.mediacapture\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [MediaStream](https://developer.mozilla.org/en/docs/Web/API/MediaStream) to Kotlin\n */\npublic external open class MediaStream() : EventTarget {\n constructor(stream: MediaStream)\n constructor(tracks: Array)\n open val id: String\n open val active: Boolean\n var onaddtrack: ((MediaStreamTrackEvent) -> dynamic)?\n var onremovetrack: ((MediaStreamTrackEvent) -> dynamic)?\n fun getAudioTracks(): Array\n fun getVideoTracks(): Array\n fun getTracks(): Array\n fun getTrackById(trackId: String): MediaStreamTrack?\n fun addTrack(track: MediaStreamTrack): Unit\n fun removeTrack(track: MediaStreamTrack): Unit\n fun clone(): MediaStream\n}\n\n/**\n * Exposes the JavaScript [MediaStreamTrack](https://developer.mozilla.org/en/docs/Web/API/MediaStreamTrack) to Kotlin\n */\npublic external abstract class MediaStreamTrack : EventTarget {\n open val kind: String\n open val id: String\n open val label: String\n open var enabled: Boolean\n open val muted: Boolean\n open var onmute: ((Event) -> dynamic)?\n open var onunmute: ((Event) -> dynamic)?\n open val readyState: MediaStreamTrackState\n open var onended: ((Event) -> dynamic)?\n open var onoverconstrained: ((Event) -> dynamic)?\n fun clone(): MediaStreamTrack\n fun stop(): Unit\n fun getCapabilities(): MediaTrackCapabilities\n fun getConstraints(): MediaTrackConstraints\n fun getSettings(): MediaTrackSettings\n fun applyConstraints(constraints: MediaTrackConstraints = definedExternally): Promise\n}\n\n/**\n * Exposes the JavaScript [MediaTrackSupportedConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaTrackSupportedConstraints) to Kotlin\n */\npublic external interface MediaTrackSupportedConstraints {\n var width: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var height: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var aspectRatio: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var frameRate: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var facingMode: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var resizeMode: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var volume: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var sampleRate: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var sampleSize: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var echoCancellation: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var autoGainControl: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var noiseSuppression: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var latency: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var channelCount: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var deviceId: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var groupId: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaTrackSupportedConstraints(width: Boolean? = true, height: Boolean? = true, aspectRatio: Boolean? = true, frameRate: Boolean? = true, facingMode: Boolean? = true, resizeMode: Boolean? = true, volume: Boolean? = true, sampleRate: Boolean? = true, sampleSize: Boolean? = true, echoCancellation: Boolean? = true, autoGainControl: Boolean? = true, noiseSuppression: Boolean? = true, latency: Boolean? = true, channelCount: Boolean? = true, deviceId: Boolean? = true, groupId: Boolean? = true): MediaTrackSupportedConstraints {\n val o = js(\"({})\")\n\n o[\"width\"] = width\n o[\"height\"] = height\n o[\"aspectRatio\"] = aspectRatio\n o[\"frameRate\"] = frameRate\n o[\"facingMode\"] = facingMode\n o[\"resizeMode\"] = resizeMode\n o[\"volume\"] = volume\n o[\"sampleRate\"] = sampleRate\n o[\"sampleSize\"] = sampleSize\n o[\"echoCancellation\"] = echoCancellation\n o[\"autoGainControl\"] = autoGainControl\n o[\"noiseSuppression\"] = noiseSuppression\n o[\"latency\"] = latency\n o[\"channelCount\"] = channelCount\n o[\"deviceId\"] = deviceId\n o[\"groupId\"] = groupId\n\n return o\n}\n\npublic external interface MediaTrackCapabilities {\n var width: ULongRange?\n get() = definedExternally\n set(value) = definedExternally\n var height: ULongRange?\n get() = definedExternally\n set(value) = definedExternally\n var aspectRatio: DoubleRange?\n get() = definedExternally\n set(value) = definedExternally\n var frameRate: DoubleRange?\n get() = definedExternally\n set(value) = definedExternally\n var facingMode: Array?\n get() = definedExternally\n set(value) = definedExternally\n var resizeMode: Array?\n get() = definedExternally\n set(value) = definedExternally\n var volume: DoubleRange?\n get() = definedExternally\n set(value) = definedExternally\n var sampleRate: ULongRange?\n get() = definedExternally\n set(value) = definedExternally\n var sampleSize: ULongRange?\n get() = definedExternally\n set(value) = definedExternally\n var echoCancellation: Array?\n get() = definedExternally\n set(value) = definedExternally\n var autoGainControl: Array?\n get() = definedExternally\n set(value) = definedExternally\n var noiseSuppression: Array?\n get() = definedExternally\n set(value) = definedExternally\n var latency: DoubleRange?\n get() = definedExternally\n set(value) = definedExternally\n var channelCount: ULongRange?\n get() = definedExternally\n set(value) = definedExternally\n var deviceId: String?\n get() = definedExternally\n set(value) = definedExternally\n var groupId: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaTrackCapabilities(width: ULongRange? = undefined, height: ULongRange? = undefined, aspectRatio: DoubleRange? = undefined, frameRate: DoubleRange? = undefined, facingMode: Array? = undefined, resizeMode: Array? = undefined, volume: DoubleRange? = undefined, sampleRate: ULongRange? = undefined, sampleSize: ULongRange? = undefined, echoCancellation: Array? = undefined, autoGainControl: Array? = undefined, noiseSuppression: Array? = undefined, latency: DoubleRange? = undefined, channelCount: ULongRange? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackCapabilities {\n val o = js(\"({})\")\n\n o[\"width\"] = width\n o[\"height\"] = height\n o[\"aspectRatio\"] = aspectRatio\n o[\"frameRate\"] = frameRate\n o[\"facingMode\"] = facingMode\n o[\"resizeMode\"] = resizeMode\n o[\"volume\"] = volume\n o[\"sampleRate\"] = sampleRate\n o[\"sampleSize\"] = sampleSize\n o[\"echoCancellation\"] = echoCancellation\n o[\"autoGainControl\"] = autoGainControl\n o[\"noiseSuppression\"] = noiseSuppression\n o[\"latency\"] = latency\n o[\"channelCount\"] = channelCount\n o[\"deviceId\"] = deviceId\n o[\"groupId\"] = groupId\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MediaTrackConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaTrackConstraints) to Kotlin\n */\npublic external interface MediaTrackConstraints : MediaTrackConstraintSet {\n var advanced: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaTrackConstraints(advanced: Array? = undefined, width: dynamic = undefined, height: dynamic = undefined, aspectRatio: dynamic = undefined, frameRate: dynamic = undefined, facingMode: dynamic = undefined, resizeMode: dynamic = undefined, volume: dynamic = undefined, sampleRate: dynamic = undefined, sampleSize: dynamic = undefined, echoCancellation: dynamic = undefined, autoGainControl: dynamic = undefined, noiseSuppression: dynamic = undefined, latency: dynamic = undefined, channelCount: dynamic = undefined, deviceId: dynamic = undefined, groupId: dynamic = undefined): MediaTrackConstraints {\n val o = js(\"({})\")\n\n o[\"advanced\"] = advanced\n o[\"width\"] = width\n o[\"height\"] = height\n o[\"aspectRatio\"] = aspectRatio\n o[\"frameRate\"] = frameRate\n o[\"facingMode\"] = facingMode\n o[\"resizeMode\"] = resizeMode\n o[\"volume\"] = volume\n o[\"sampleRate\"] = sampleRate\n o[\"sampleSize\"] = sampleSize\n o[\"echoCancellation\"] = echoCancellation\n o[\"autoGainControl\"] = autoGainControl\n o[\"noiseSuppression\"] = noiseSuppression\n o[\"latency\"] = latency\n o[\"channelCount\"] = channelCount\n o[\"deviceId\"] = deviceId\n o[\"groupId\"] = groupId\n\n return o\n}\n\npublic external interface MediaTrackConstraintSet {\n var width: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var height: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var aspectRatio: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var frameRate: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var facingMode: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var resizeMode: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var volume: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var sampleRate: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var sampleSize: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var echoCancellation: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var autoGainControl: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var noiseSuppression: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var latency: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var channelCount: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var deviceId: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var groupId: dynamic\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaTrackConstraintSet(width: dynamic = undefined, height: dynamic = undefined, aspectRatio: dynamic = undefined, frameRate: dynamic = undefined, facingMode: dynamic = undefined, resizeMode: dynamic = undefined, volume: dynamic = undefined, sampleRate: dynamic = undefined, sampleSize: dynamic = undefined, echoCancellation: dynamic = undefined, autoGainControl: dynamic = undefined, noiseSuppression: dynamic = undefined, latency: dynamic = undefined, channelCount: dynamic = undefined, deviceId: dynamic = undefined, groupId: dynamic = undefined): MediaTrackConstraintSet {\n val o = js(\"({})\")\n\n o[\"width\"] = width\n o[\"height\"] = height\n o[\"aspectRatio\"] = aspectRatio\n o[\"frameRate\"] = frameRate\n o[\"facingMode\"] = facingMode\n o[\"resizeMode\"] = resizeMode\n o[\"volume\"] = volume\n o[\"sampleRate\"] = sampleRate\n o[\"sampleSize\"] = sampleSize\n o[\"echoCancellation\"] = echoCancellation\n o[\"autoGainControl\"] = autoGainControl\n o[\"noiseSuppression\"] = noiseSuppression\n o[\"latency\"] = latency\n o[\"channelCount\"] = channelCount\n o[\"deviceId\"] = deviceId\n o[\"groupId\"] = groupId\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MediaTrackSettings](https://developer.mozilla.org/en/docs/Web/API/MediaTrackSettings) to Kotlin\n */\npublic external interface MediaTrackSettings {\n var width: Int?\n get() = definedExternally\n set(value) = definedExternally\n var height: Int?\n get() = definedExternally\n set(value) = definedExternally\n var aspectRatio: Double?\n get() = definedExternally\n set(value) = definedExternally\n var frameRate: Double?\n get() = definedExternally\n set(value) = definedExternally\n var facingMode: String?\n get() = definedExternally\n set(value) = definedExternally\n var resizeMode: String?\n get() = definedExternally\n set(value) = definedExternally\n var volume: Double?\n get() = definedExternally\n set(value) = definedExternally\n var sampleRate: Int?\n get() = definedExternally\n set(value) = definedExternally\n var sampleSize: Int?\n get() = definedExternally\n set(value) = definedExternally\n var echoCancellation: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var autoGainControl: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var noiseSuppression: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var latency: Double?\n get() = definedExternally\n set(value) = definedExternally\n var channelCount: Int?\n get() = definedExternally\n set(value) = definedExternally\n var deviceId: String?\n get() = definedExternally\n set(value) = definedExternally\n var groupId: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaTrackSettings(width: Int? = undefined, height: Int? = undefined, aspectRatio: Double? = undefined, frameRate: Double? = undefined, facingMode: String? = undefined, resizeMode: String? = undefined, volume: Double? = undefined, sampleRate: Int? = undefined, sampleSize: Int? = undefined, echoCancellation: Boolean? = undefined, autoGainControl: Boolean? = undefined, noiseSuppression: Boolean? = undefined, latency: Double? = undefined, channelCount: Int? = undefined, deviceId: String? = undefined, groupId: String? = undefined): MediaTrackSettings {\n val o = js(\"({})\")\n\n o[\"width\"] = width\n o[\"height\"] = height\n o[\"aspectRatio\"] = aspectRatio\n o[\"frameRate\"] = frameRate\n o[\"facingMode\"] = facingMode\n o[\"resizeMode\"] = resizeMode\n o[\"volume\"] = volume\n o[\"sampleRate\"] = sampleRate\n o[\"sampleSize\"] = sampleSize\n o[\"echoCancellation\"] = echoCancellation\n o[\"autoGainControl\"] = autoGainControl\n o[\"noiseSuppression\"] = noiseSuppression\n o[\"latency\"] = latency\n o[\"channelCount\"] = channelCount\n o[\"deviceId\"] = deviceId\n o[\"groupId\"] = groupId\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MediaStreamTrackEvent](https://developer.mozilla.org/en/docs/Web/API/MediaStreamTrackEvent) to Kotlin\n */\npublic external open class MediaStreamTrackEvent(type: String, eventInitDict: MediaStreamTrackEventInit) : Event {\n open val track: MediaStreamTrack\n}\n\npublic external interface MediaStreamTrackEventInit : EventInit {\n var track: MediaStreamTrack?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaStreamTrackEventInit(track: MediaStreamTrack?, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): MediaStreamTrackEventInit {\n val o = js(\"({})\")\n\n o[\"track\"] = track\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external open class OverconstrainedErrorEvent(type: String, eventInitDict: OverconstrainedErrorEventInit) : Event {\n open val error: dynamic\n}\n\npublic external interface OverconstrainedErrorEventInit : EventInit {\n var error: dynamic /* = null */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun OverconstrainedErrorEventInit(error: dynamic = null, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): OverconstrainedErrorEventInit {\n val o = js(\"({})\")\n\n o[\"error\"] = error\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [MediaDevices](https://developer.mozilla.org/en/docs/Web/API/MediaDevices) to Kotlin\n */\npublic external abstract class MediaDevices : EventTarget {\n open var ondevicechange: ((Event) -> dynamic)?\n fun enumerateDevices(): Promise\n fun getSupportedConstraints(): MediaTrackSupportedConstraints\n fun getUserMedia(constraints: MediaStreamConstraints = definedExternally): Promise\n}\n\n/**\n * Exposes the JavaScript [MediaDeviceInfo](https://developer.mozilla.org/en/docs/Web/API/MediaDeviceInfo) to Kotlin\n */\npublic external abstract class MediaDeviceInfo {\n open val deviceId: String\n open val kind: MediaDeviceKind\n open val label: String\n open val groupId: String\n fun toJSON(): dynamic\n}\n\npublic external abstract class InputDeviceInfo : MediaDeviceInfo {\n fun getCapabilities(): MediaTrackCapabilities\n}\n\n/**\n * Exposes the JavaScript [MediaStreamConstraints](https://developer.mozilla.org/en/docs/Web/API/MediaStreamConstraints) to Kotlin\n */\npublic external interface MediaStreamConstraints {\n var video: dynamic /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var audio: dynamic /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun MediaStreamConstraints(video: dynamic = false, audio: dynamic = false): MediaStreamConstraints {\n val o = js(\"({})\")\n\n o[\"video\"] = video\n o[\"audio\"] = audio\n\n return o\n}\n\npublic external interface ConstrainablePattern {\n var onoverconstrained: ((Event) -> dynamic)?\n fun getCapabilities(): Capabilities\n fun getConstraints(): Constraints\n fun getSettings(): Settings\n fun applyConstraints(constraints: Constraints = definedExternally): Promise\n}\n\n/**\n * Exposes the JavaScript [DoubleRange](https://developer.mozilla.org/en/docs/Web/API/DoubleRange) to Kotlin\n */\npublic external interface DoubleRange {\n var max: Double?\n get() = definedExternally\n set(value) = definedExternally\n var min: Double?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun DoubleRange(max: Double? = undefined, min: Double? = undefined): DoubleRange {\n val o = js(\"({})\")\n\n o[\"max\"] = max\n o[\"min\"] = min\n\n return o\n}\n\npublic external interface ConstrainDoubleRange : DoubleRange {\n var exact: Double?\n get() = definedExternally\n set(value) = definedExternally\n var ideal: Double?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ConstrainDoubleRange(exact: Double? = undefined, ideal: Double? = undefined, max: Double? = undefined, min: Double? = undefined): ConstrainDoubleRange {\n val o = js(\"({})\")\n\n o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n o[\"max\"] = max\n o[\"min\"] = min\n\n return o\n}\n\npublic external interface ULongRange {\n var max: Int?\n get() = definedExternally\n set(value) = definedExternally\n var min: Int?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ULongRange(max: Int? = undefined, min: Int? = undefined): ULongRange {\n val o = js(\"({})\")\n\n o[\"max\"] = max\n o[\"min\"] = min\n\n return o\n}\n\npublic external interface ConstrainULongRange : ULongRange {\n var exact: Int?\n get() = definedExternally\n set(value) = definedExternally\n var ideal: Int?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ConstrainULongRange(exact: Int? = undefined, ideal: Int? = undefined, max: Int? = undefined, min: Int? = undefined): ConstrainULongRange {\n val o = js(\"({})\")\n\n o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n o[\"max\"] = max\n o[\"min\"] = min\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ConstrainBooleanParameters](https://developer.mozilla.org/en/docs/Web/API/ConstrainBooleanParameters) to Kotlin\n */\npublic external interface ConstrainBooleanParameters {\n var exact: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n var ideal: Boolean?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ConstrainBooleanParameters(exact: Boolean? = undefined, ideal: Boolean? = undefined): ConstrainBooleanParameters {\n val o = js(\"({})\")\n\n o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ConstrainDOMStringParameters](https://developer.mozilla.org/en/docs/Web/API/ConstrainDOMStringParameters) to Kotlin\n */\npublic external interface ConstrainDOMStringParameters {\n var exact: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var ideal: dynamic\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ConstrainDOMStringParameters(exact: dynamic = undefined, ideal: dynamic = undefined): ConstrainDOMStringParameters {\n val o = js(\"({})\")\n\n o[\"exact\"] = exact\n o[\"ideal\"] = ideal\n\n return o\n}\n\npublic external interface Capabilities {\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun Capabilities(): Capabilities {\n val o = js(\"({})\")\n\n\n return o\n}\n\npublic external interface Settings {\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun Settings(): Settings {\n val o = js(\"({})\")\n\n\n return o\n}\n\npublic external interface ConstraintSet {\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ConstraintSet(): ConstraintSet {\n val o = js(\"({})\")\n\n\n return o\n}\n\npublic external interface Constraints : ConstraintSet {\n var advanced: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun Constraints(advanced: Array? = undefined): Constraints {\n val o = js(\"({})\")\n\n o[\"advanced\"] = advanced\n\n return o\n}\n\n/* please, don't implement this interface! */\npublic external interface MediaStreamTrackState {\n companion object\n}\npublic inline val MediaStreamTrackState.Companion.LIVE: MediaStreamTrackState get() = \"live\".asDynamic().unsafeCast()\npublic inline val MediaStreamTrackState.Companion.ENDED: MediaStreamTrackState get() = \"ended\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface VideoFacingModeEnum {\n companion object\n}\npublic inline val VideoFacingModeEnum.Companion.USER: VideoFacingModeEnum get() = \"user\".asDynamic().unsafeCast()\npublic inline val VideoFacingModeEnum.Companion.ENVIRONMENT: VideoFacingModeEnum get() = \"environment\".asDynamic().unsafeCast()\npublic inline val VideoFacingModeEnum.Companion.LEFT: VideoFacingModeEnum get() = \"left\".asDynamic().unsafeCast()\npublic inline val VideoFacingModeEnum.Companion.RIGHT: VideoFacingModeEnum get() = \"right\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface VideoResizeModeEnum {\n companion object\n}\npublic inline val VideoResizeModeEnum.Companion.NONE: VideoResizeModeEnum get() = \"none\".asDynamic().unsafeCast()\npublic inline val VideoResizeModeEnum.Companion.CROP_AND_SCALE: VideoResizeModeEnum get() = \"crop-and-scale\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface MediaDeviceKind {\n companion object\n}\npublic inline val MediaDeviceKind.Companion.AUDIOINPUT: MediaDeviceKind get() = \"audioinput\".asDynamic().unsafeCast()\npublic inline val MediaDeviceKind.Companion.AUDIOOUTPUT: MediaDeviceKind get() = \"audiooutput\".asDynamic().unsafeCast()\npublic inline val MediaDeviceKind.Companion.VIDEOINPUT: MediaDeviceKind get() = \"videoinput\".asDynamic().unsafeCast()\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom.pointerevents\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\npublic external interface PointerEventInit : MouseEventInit {\n var pointerId: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var width: Double? /* = 1.0 */\n get() = definedExternally\n set(value) = definedExternally\n var height: Double? /* = 1.0 */\n get() = definedExternally\n set(value) = definedExternally\n var pressure: Float? /* = 0f */\n get() = definedExternally\n set(value) = definedExternally\n var tangentialPressure: Float? /* = 0f */\n get() = definedExternally\n set(value) = definedExternally\n var tiltX: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var tiltY: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var twist: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var pointerType: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var isPrimary: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun PointerEventInit(pointerId: Int? = 0, width: Double? = 1.0, height: Double? = 1.0, pressure: Float? = 0f, tangentialPressure: Float? = 0f, tiltX: Int? = 0, tiltY: Int? = 0, twist: Int? = 0, pointerType: String? = \"\", isPrimary: Boolean? = false, screenX: Int? = 0, screenY: Int? = 0, clientX: Int? = 0, clientY: Int? = 0, button: Short? = 0, buttons: Short? = 0, relatedTarget: EventTarget? = null, ctrlKey: Boolean? = false, shiftKey: Boolean? = false, altKey: Boolean? = false, metaKey: Boolean? = false, modifierAltGraph: Boolean? = false, modifierCapsLock: Boolean? = false, modifierFn: Boolean? = false, modifierFnLock: Boolean? = false, modifierHyper: Boolean? = false, modifierNumLock: Boolean? = false, modifierScrollLock: Boolean? = false, modifierSuper: Boolean? = false, modifierSymbol: Boolean? = false, modifierSymbolLock: Boolean? = false, view: Window? = null, detail: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): PointerEventInit {\n val o = js(\"({})\")\n\n o[\"pointerId\"] = pointerId\n o[\"width\"] = width\n o[\"height\"] = height\n o[\"pressure\"] = pressure\n o[\"tangentialPressure\"] = tangentialPressure\n o[\"tiltX\"] = tiltX\n o[\"tiltY\"] = tiltY\n o[\"twist\"] = twist\n o[\"pointerType\"] = pointerType\n o[\"isPrimary\"] = isPrimary\n o[\"screenX\"] = screenX\n o[\"screenY\"] = screenY\n o[\"clientX\"] = clientX\n o[\"clientY\"] = clientY\n o[\"button\"] = button\n o[\"buttons\"] = buttons\n o[\"relatedTarget\"] = relatedTarget\n o[\"ctrlKey\"] = ctrlKey\n o[\"shiftKey\"] = shiftKey\n o[\"altKey\"] = altKey\n o[\"metaKey\"] = metaKey\n o[\"modifierAltGraph\"] = modifierAltGraph\n o[\"modifierCapsLock\"] = modifierCapsLock\n o[\"modifierFn\"] = modifierFn\n o[\"modifierFnLock\"] = modifierFnLock\n o[\"modifierHyper\"] = modifierHyper\n o[\"modifierNumLock\"] = modifierNumLock\n o[\"modifierScrollLock\"] = modifierScrollLock\n o[\"modifierSuper\"] = modifierSuper\n o[\"modifierSymbol\"] = modifierSymbol\n o[\"modifierSymbolLock\"] = modifierSymbolLock\n o[\"view\"] = view\n o[\"detail\"] = detail\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [PointerEvent](https://developer.mozilla.org/en/docs/Web/API/PointerEvent) to Kotlin\n */\npublic external open class PointerEvent(type: String, eventInitDict: PointerEventInit = definedExternally) : MouseEvent {\n open val pointerId: Int\n open val width: Double\n open val height: Double\n open val pressure: Float\n open val tangentialPressure: Float\n open val tiltX: Int\n open val tiltY: Int\n open val twist: Int\n open val pointerType: String\n open val isPrimary: Boolean\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.dom.svg\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [SVGElement](https://developer.mozilla.org/en/docs/Web/API/SVGElement) to Kotlin\n */\npublic external abstract class SVGElement : Element, ElementCSSInlineStyle, GlobalEventHandlers, SVGElementInstance {\n open val dataset: DOMStringMap\n open val ownerSVGElement: SVGSVGElement?\n open val viewportElement: SVGElement?\n open var tabIndex: Int\n fun focus(): Unit\n fun blur(): Unit\n}\n\npublic external interface SVGBoundingBoxOptions {\n var fill: Boolean? /* = true */\n get() = definedExternally\n set(value) = definedExternally\n var stroke: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var markers: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var clipped: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun SVGBoundingBoxOptions(fill: Boolean? = true, stroke: Boolean? = false, markers: Boolean? = false, clipped: Boolean? = false): SVGBoundingBoxOptions {\n val o = js(\"({})\")\n\n o[\"fill\"] = fill\n o[\"stroke\"] = stroke\n o[\"markers\"] = markers\n o[\"clipped\"] = clipped\n\n return o\n}\n\n/**\n * Exposes the JavaScript [SVGGraphicsElement](https://developer.mozilla.org/en/docs/Web/API/SVGGraphicsElement) to Kotlin\n */\npublic external abstract class SVGGraphicsElement : SVGElement, SVGTests {\n open val transform: SVGAnimatedTransformList\n fun getBBox(options: SVGBoundingBoxOptions = definedExternally): DOMRect\n fun getCTM(): DOMMatrix?\n fun getScreenCTM(): DOMMatrix?\n}\n\n/**\n * Exposes the JavaScript [SVGGeometryElement](https://developer.mozilla.org/en/docs/Web/API/SVGGeometryElement) to Kotlin\n */\npublic external abstract class SVGGeometryElement : SVGGraphicsElement {\n open val pathLength: SVGAnimatedNumber\n fun isPointInFill(point: DOMPoint): Boolean\n fun isPointInStroke(point: DOMPoint): Boolean\n fun getTotalLength(): Float\n fun getPointAtLength(distance: Float): DOMPoint\n}\n\n/**\n * Exposes the JavaScript [SVGNumber](https://developer.mozilla.org/en/docs/Web/API/SVGNumber) to Kotlin\n */\npublic external abstract class SVGNumber {\n open var value: Float\n}\n\n/**\n * Exposes the JavaScript [SVGLength](https://developer.mozilla.org/en/docs/Web/API/SVGLength) to Kotlin\n */\npublic external abstract class SVGLength {\n open val unitType: Short\n open var value: Float\n open var valueInSpecifiedUnits: Float\n open var valueAsString: String\n fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float): Unit\n fun convertToSpecifiedUnits(unitType: Short): Unit\n\n companion object {\n val SVG_LENGTHTYPE_UNKNOWN: Short\n val SVG_LENGTHTYPE_NUMBER: Short\n val SVG_LENGTHTYPE_PERCENTAGE: Short\n val SVG_LENGTHTYPE_EMS: Short\n val SVG_LENGTHTYPE_EXS: Short\n val SVG_LENGTHTYPE_PX: Short\n val SVG_LENGTHTYPE_CM: Short\n val SVG_LENGTHTYPE_MM: Short\n val SVG_LENGTHTYPE_IN: Short\n val SVG_LENGTHTYPE_PT: Short\n val SVG_LENGTHTYPE_PC: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGAngle](https://developer.mozilla.org/en/docs/Web/API/SVGAngle) to Kotlin\n */\npublic external abstract class SVGAngle {\n open val unitType: Short\n open var value: Float\n open var valueInSpecifiedUnits: Float\n open var valueAsString: String\n fun newValueSpecifiedUnits(unitType: Short, valueInSpecifiedUnits: Float): Unit\n fun convertToSpecifiedUnits(unitType: Short): Unit\n\n companion object {\n val SVG_ANGLETYPE_UNKNOWN: Short\n val SVG_ANGLETYPE_UNSPECIFIED: Short\n val SVG_ANGLETYPE_DEG: Short\n val SVG_ANGLETYPE_RAD: Short\n val SVG_ANGLETYPE_GRAD: Short\n }\n}\n\npublic external abstract class SVGNameList {\n open val length: Int\n open val numberOfItems: Int\n fun clear(): Unit\n fun initialize(newItem: dynamic): dynamic\n fun getItem(index: Int): dynamic\n fun insertItemBefore(newItem: dynamic, index: Int): dynamic\n fun replaceItem(newItem: dynamic, index: Int): dynamic\n fun removeItem(index: Int): dynamic\n fun appendItem(newItem: dynamic): dynamic\n}\n@kotlin.internal.InlineOnly inline operator fun SVGNameList.get(index: Int): dynamic = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun SVGNameList.set(index: Int, newItem: dynamic): Unit { asDynamic()[index] = newItem; }\n\n/**\n * Exposes the JavaScript [SVGNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGNumberList) to Kotlin\n */\npublic external abstract class SVGNumberList {\n open val length: Int\n open val numberOfItems: Int\n fun clear(): Unit\n fun initialize(newItem: SVGNumber): SVGNumber\n fun getItem(index: Int): SVGNumber\n fun insertItemBefore(newItem: SVGNumber, index: Int): SVGNumber\n fun replaceItem(newItem: SVGNumber, index: Int): SVGNumber\n fun removeItem(index: Int): SVGNumber\n fun appendItem(newItem: SVGNumber): SVGNumber\n}\n@kotlin.internal.InlineOnly inline operator fun SVGNumberList.get(index: Int): SVGNumber? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun SVGNumberList.set(index: Int, newItem: SVGNumber): Unit { asDynamic()[index] = newItem; }\n\n/**\n * Exposes the JavaScript [SVGLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGLengthList) to Kotlin\n */\npublic external abstract class SVGLengthList {\n open val length: Int\n open val numberOfItems: Int\n fun clear(): Unit\n fun initialize(newItem: SVGLength): SVGLength\n fun getItem(index: Int): SVGLength\n fun insertItemBefore(newItem: SVGLength, index: Int): SVGLength\n fun replaceItem(newItem: SVGLength, index: Int): SVGLength\n fun removeItem(index: Int): SVGLength\n fun appendItem(newItem: SVGLength): SVGLength\n}\n@kotlin.internal.InlineOnly inline operator fun SVGLengthList.get(index: Int): SVGLength? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun SVGLengthList.set(index: Int, newItem: SVGLength): Unit { asDynamic()[index] = newItem; }\n\n/**\n * Exposes the JavaScript [SVGAnimatedBoolean](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedBoolean) to Kotlin\n */\npublic external abstract class SVGAnimatedBoolean {\n open var baseVal: Boolean\n open val animVal: Boolean\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedEnumeration](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedEnumeration) to Kotlin\n */\npublic external abstract class SVGAnimatedEnumeration {\n open var baseVal: Short\n open val animVal: Short\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedInteger](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedInteger) to Kotlin\n */\npublic external abstract class SVGAnimatedInteger {\n open var baseVal: Int\n open val animVal: Int\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedNumber](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedNumber) to Kotlin\n */\npublic external abstract class SVGAnimatedNumber {\n open var baseVal: Float\n open val animVal: Float\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedLength](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedLength) to Kotlin\n */\npublic external abstract class SVGAnimatedLength {\n open val baseVal: SVGLength\n open val animVal: SVGLength\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedAngle](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedAngle) to Kotlin\n */\npublic external abstract class SVGAnimatedAngle {\n open val baseVal: SVGAngle\n open val animVal: SVGAngle\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedString](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedString) to Kotlin\n */\npublic external abstract class SVGAnimatedString {\n open var baseVal: String\n open val animVal: String\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedRect](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedRect) to Kotlin\n */\npublic external abstract class SVGAnimatedRect {\n open val baseVal: DOMRect\n open val animVal: DOMRectReadOnly\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedNumberList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedNumberList) to Kotlin\n */\npublic external abstract class SVGAnimatedNumberList {\n open val baseVal: SVGNumberList\n open val animVal: SVGNumberList\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedLengthList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedLengthList) to Kotlin\n */\npublic external abstract class SVGAnimatedLengthList {\n open val baseVal: SVGLengthList\n open val animVal: SVGLengthList\n}\n\n/**\n * Exposes the JavaScript [SVGStringList](https://developer.mozilla.org/en/docs/Web/API/SVGStringList) to Kotlin\n */\npublic external abstract class SVGStringList {\n open val length: Int\n open val numberOfItems: Int\n fun clear(): Unit\n fun initialize(newItem: String): String\n fun getItem(index: Int): String\n fun insertItemBefore(newItem: String, index: Int): String\n fun replaceItem(newItem: String, index: Int): String\n fun removeItem(index: Int): String\n fun appendItem(newItem: String): String\n}\n@kotlin.internal.InlineOnly inline operator fun SVGStringList.get(index: Int): String? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun SVGStringList.set(index: Int, newItem: String): Unit { asDynamic()[index] = newItem; }\n\n/**\n * Exposes the JavaScript [SVGUnitTypes](https://developer.mozilla.org/en/docs/Web/API/SVGUnitTypes) to Kotlin\n */\npublic external interface SVGUnitTypes {\n\n companion object {\n val SVG_UNIT_TYPE_UNKNOWN: Short\n val SVG_UNIT_TYPE_USERSPACEONUSE: Short\n val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGTests](https://developer.mozilla.org/en/docs/Web/API/SVGTests) to Kotlin\n */\npublic external interface SVGTests {\n val requiredExtensions: SVGStringList\n val systemLanguage: SVGStringList\n}\n\npublic external interface SVGFitToViewBox {\n val viewBox: SVGAnimatedRect\n val preserveAspectRatio: SVGAnimatedPreserveAspectRatio\n}\n\n/**\n * Exposes the JavaScript [SVGZoomAndPan](https://developer.mozilla.org/en/docs/Web/API/SVGZoomAndPan) to Kotlin\n */\npublic external interface SVGZoomAndPan {\n var zoomAndPan: Short\n\n companion object {\n val SVG_ZOOMANDPAN_UNKNOWN: Short\n val SVG_ZOOMANDPAN_DISABLE: Short\n val SVG_ZOOMANDPAN_MAGNIFY: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGURIReference](https://developer.mozilla.org/en/docs/Web/API/SVGURIReference) to Kotlin\n */\npublic external interface SVGURIReference {\n val href: SVGAnimatedString\n}\n\n/**\n * Exposes the JavaScript [SVGSVGElement](https://developer.mozilla.org/en/docs/Web/API/SVGSVGElement) to Kotlin\n */\npublic external abstract class SVGSVGElement : SVGGraphicsElement, SVGFitToViewBox, SVGZoomAndPan, WindowEventHandlers {\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n open val width: SVGAnimatedLength\n open val height: SVGAnimatedLength\n open var currentScale: Float\n open val currentTranslate: DOMPointReadOnly\n fun getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement?): NodeList\n fun getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement?): NodeList\n fun checkIntersection(element: SVGElement, rect: DOMRectReadOnly): Boolean\n fun checkEnclosure(element: SVGElement, rect: DOMRectReadOnly): Boolean\n fun deselectAll(): Unit\n fun createSVGNumber(): SVGNumber\n fun createSVGLength(): SVGLength\n fun createSVGAngle(): SVGAngle\n fun createSVGPoint(): DOMPoint\n fun createSVGMatrix(): DOMMatrix\n fun createSVGRect(): DOMRect\n fun createSVGTransform(): SVGTransform\n fun createSVGTransformFromMatrix(matrix: DOMMatrixReadOnly): SVGTransform\n fun getElementById(elementId: String): Element\n fun suspendRedraw(maxWaitMilliseconds: Int): Int\n fun unsuspendRedraw(suspendHandleID: Int): Unit\n fun unsuspendRedrawAll(): Unit\n fun forceRedraw(): Unit\n\n companion object {\n val SVG_ZOOMANDPAN_UNKNOWN: Short\n val SVG_ZOOMANDPAN_DISABLE: Short\n val SVG_ZOOMANDPAN_MAGNIFY: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGGElement](https://developer.mozilla.org/en/docs/Web/API/SVGGElement) to Kotlin\n */\npublic external abstract class SVGGElement : SVGGraphicsElement {\n}\n\npublic external abstract class SVGUnknownElement : SVGGraphicsElement {\n}\n\n/**\n * Exposes the JavaScript [SVGDefsElement](https://developer.mozilla.org/en/docs/Web/API/SVGDefsElement) to Kotlin\n */\npublic external abstract class SVGDefsElement : SVGGraphicsElement {\n}\n\n/**\n * Exposes the JavaScript [SVGDescElement](https://developer.mozilla.org/en/docs/Web/API/SVGDescElement) to Kotlin\n */\npublic external abstract class SVGDescElement : SVGElement {\n}\n\n/**\n * Exposes the JavaScript [SVGMetadataElement](https://developer.mozilla.org/en/docs/Web/API/SVGMetadataElement) to Kotlin\n */\npublic external abstract class SVGMetadataElement : SVGElement {\n}\n\n/**\n * Exposes the JavaScript [SVGTitleElement](https://developer.mozilla.org/en/docs/Web/API/SVGTitleElement) to Kotlin\n */\npublic external abstract class SVGTitleElement : SVGElement {\n}\n\n/**\n * Exposes the JavaScript [SVGSymbolElement](https://developer.mozilla.org/en/docs/Web/API/SVGSymbolElement) to Kotlin\n */\npublic external abstract class SVGSymbolElement : SVGGraphicsElement, SVGFitToViewBox {\n}\n\n/**\n * Exposes the JavaScript [SVGUseElement](https://developer.mozilla.org/en/docs/Web/API/SVGUseElement) to Kotlin\n */\npublic external abstract class SVGUseElement : SVGGraphicsElement, SVGURIReference {\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n open val width: SVGAnimatedLength\n open val height: SVGAnimatedLength\n open val instanceRoot: SVGElement?\n open val animatedInstanceRoot: SVGElement?\n}\n\npublic external open class SVGUseElementShadowRoot : ShadowRoot {\n override fun getElementById(elementId: String): Element?\n override fun prepend(vararg nodes: dynamic): Unit\n override fun append(vararg nodes: dynamic): Unit\n override fun querySelector(selectors: String): Element?\n override fun querySelectorAll(selectors: String): NodeList\n}\n\npublic external interface SVGElementInstance {\n val correspondingElement: SVGElement?\n val correspondingUseElement: SVGUseElement?\n}\n\npublic external open class ShadowAnimation(source: dynamic, newTarget: dynamic) {\n open val sourceAnimation: dynamic\n}\n\n/**\n * Exposes the JavaScript [SVGSwitchElement](https://developer.mozilla.org/en/docs/Web/API/SVGSwitchElement) to Kotlin\n */\npublic external abstract class SVGSwitchElement : SVGGraphicsElement {\n}\n\npublic external interface GetSVGDocument {\n fun getSVGDocument(): Document\n}\n\n/**\n * Exposes the JavaScript [SVGStyleElement](https://developer.mozilla.org/en/docs/Web/API/SVGStyleElement) to Kotlin\n */\npublic external abstract class SVGStyleElement : SVGElement, LinkStyle {\n open var type: String\n open var media: String\n open var title: String\n}\n\n/**\n * Exposes the JavaScript [SVGTransform](https://developer.mozilla.org/en/docs/Web/API/SVGTransform) to Kotlin\n */\npublic external abstract class SVGTransform {\n open val type: Short\n open val matrix: DOMMatrix\n open val angle: Float\n fun setMatrix(matrix: DOMMatrixReadOnly): Unit\n fun setTranslate(tx: Float, ty: Float): Unit\n fun setScale(sx: Float, sy: Float): Unit\n fun setRotate(angle: Float, cx: Float, cy: Float): Unit\n fun setSkewX(angle: Float): Unit\n fun setSkewY(angle: Float): Unit\n\n companion object {\n val SVG_TRANSFORM_UNKNOWN: Short\n val SVG_TRANSFORM_MATRIX: Short\n val SVG_TRANSFORM_TRANSLATE: Short\n val SVG_TRANSFORM_SCALE: Short\n val SVG_TRANSFORM_ROTATE: Short\n val SVG_TRANSFORM_SKEWX: Short\n val SVG_TRANSFORM_SKEWY: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGTransformList) to Kotlin\n */\npublic external abstract class SVGTransformList {\n open val length: Int\n open val numberOfItems: Int\n fun clear(): Unit\n fun initialize(newItem: SVGTransform): SVGTransform\n fun getItem(index: Int): SVGTransform\n fun insertItemBefore(newItem: SVGTransform, index: Int): SVGTransform\n fun replaceItem(newItem: SVGTransform, index: Int): SVGTransform\n fun removeItem(index: Int): SVGTransform\n fun appendItem(newItem: SVGTransform): SVGTransform\n fun createSVGTransformFromMatrix(matrix: DOMMatrixReadOnly): SVGTransform\n fun consolidate(): SVGTransform?\n}\n@kotlin.internal.InlineOnly inline operator fun SVGTransformList.get(index: Int): SVGTransform? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun SVGTransformList.set(index: Int, newItem: SVGTransform): Unit { asDynamic()[index] = newItem; }\n\n/**\n * Exposes the JavaScript [SVGAnimatedTransformList](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedTransformList) to Kotlin\n */\npublic external abstract class SVGAnimatedTransformList {\n open val baseVal: SVGTransformList\n open val animVal: SVGTransformList\n}\n\n/**\n * Exposes the JavaScript [SVGPreserveAspectRatio](https://developer.mozilla.org/en/docs/Web/API/SVGPreserveAspectRatio) to Kotlin\n */\npublic external abstract class SVGPreserveAspectRatio {\n open var align: Short\n open var meetOrSlice: Short\n\n companion object {\n val SVG_PRESERVEASPECTRATIO_UNKNOWN: Short\n val SVG_PRESERVEASPECTRATIO_NONE: Short\n val SVG_PRESERVEASPECTRATIO_XMINYMIN: Short\n val SVG_PRESERVEASPECTRATIO_XMIDYMIN: Short\n val SVG_PRESERVEASPECTRATIO_XMAXYMIN: Short\n val SVG_PRESERVEASPECTRATIO_XMINYMID: Short\n val SVG_PRESERVEASPECTRATIO_XMIDYMID: Short\n val SVG_PRESERVEASPECTRATIO_XMAXYMID: Short\n val SVG_PRESERVEASPECTRATIO_XMINYMAX: Short\n val SVG_PRESERVEASPECTRATIO_XMIDYMAX: Short\n val SVG_PRESERVEASPECTRATIO_XMAXYMAX: Short\n val SVG_MEETORSLICE_UNKNOWN: Short\n val SVG_MEETORSLICE_MEET: Short\n val SVG_MEETORSLICE_SLICE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedPreserveAspectRatio](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedPreserveAspectRatio) to Kotlin\n */\npublic external abstract class SVGAnimatedPreserveAspectRatio {\n open val baseVal: SVGPreserveAspectRatio\n open val animVal: SVGPreserveAspectRatio\n}\n\n/**\n * Exposes the JavaScript [SVGPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGPathElement) to Kotlin\n */\npublic external abstract class SVGPathElement : SVGGeometryElement {\n}\n\n/**\n * Exposes the JavaScript [SVGRectElement](https://developer.mozilla.org/en/docs/Web/API/SVGRectElement) to Kotlin\n */\npublic external abstract class SVGRectElement : SVGGeometryElement {\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n open val width: SVGAnimatedLength\n open val height: SVGAnimatedLength\n open val rx: SVGAnimatedLength\n open val ry: SVGAnimatedLength\n}\n\n/**\n * Exposes the JavaScript [SVGCircleElement](https://developer.mozilla.org/en/docs/Web/API/SVGCircleElement) to Kotlin\n */\npublic external abstract class SVGCircleElement : SVGGeometryElement {\n open val cx: SVGAnimatedLength\n open val cy: SVGAnimatedLength\n open val r: SVGAnimatedLength\n}\n\n/**\n * Exposes the JavaScript [SVGEllipseElement](https://developer.mozilla.org/en/docs/Web/API/SVGEllipseElement) to Kotlin\n */\npublic external abstract class SVGEllipseElement : SVGGeometryElement {\n open val cx: SVGAnimatedLength\n open val cy: SVGAnimatedLength\n open val rx: SVGAnimatedLength\n open val ry: SVGAnimatedLength\n}\n\n/**\n * Exposes the JavaScript [SVGLineElement](https://developer.mozilla.org/en/docs/Web/API/SVGLineElement) to Kotlin\n */\npublic external abstract class SVGLineElement : SVGGeometryElement {\n open val x1: SVGAnimatedLength\n open val y1: SVGAnimatedLength\n open val x2: SVGAnimatedLength\n open val y2: SVGAnimatedLength\n}\n\n/**\n * Exposes the JavaScript [SVGMeshElement](https://developer.mozilla.org/en/docs/Web/API/SVGMeshElement) to Kotlin\n */\npublic external abstract class SVGMeshElement : SVGGeometryElement, SVGURIReference {\n}\n\n/**\n * Exposes the JavaScript [SVGAnimatedPoints](https://developer.mozilla.org/en/docs/Web/API/SVGAnimatedPoints) to Kotlin\n */\npublic external interface SVGAnimatedPoints {\n val points: SVGPointList\n val animatedPoints: SVGPointList\n}\n\npublic external abstract class SVGPointList {\n open val length: Int\n open val numberOfItems: Int\n fun clear(): Unit\n fun initialize(newItem: DOMPoint): DOMPoint\n fun getItem(index: Int): DOMPoint\n fun insertItemBefore(newItem: DOMPoint, index: Int): DOMPoint\n fun replaceItem(newItem: DOMPoint, index: Int): DOMPoint\n fun removeItem(index: Int): DOMPoint\n fun appendItem(newItem: DOMPoint): DOMPoint\n}\n@kotlin.internal.InlineOnly inline operator fun SVGPointList.get(index: Int): DOMPoint? = asDynamic()[index]\n@kotlin.internal.InlineOnly inline operator fun SVGPointList.set(index: Int, newItem: DOMPoint): Unit { asDynamic()[index] = newItem; }\n\n/**\n * Exposes the JavaScript [SVGPolylineElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolylineElement) to Kotlin\n */\npublic external abstract class SVGPolylineElement : SVGGeometryElement, SVGAnimatedPoints {\n}\n\n/**\n * Exposes the JavaScript [SVGPolygonElement](https://developer.mozilla.org/en/docs/Web/API/SVGPolygonElement) to Kotlin\n */\npublic external abstract class SVGPolygonElement : SVGGeometryElement, SVGAnimatedPoints {\n}\n\n/**\n * Exposes the JavaScript [SVGTextContentElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextContentElement) to Kotlin\n */\npublic external abstract class SVGTextContentElement : SVGGraphicsElement {\n open val textLength: SVGAnimatedLength\n open val lengthAdjust: SVGAnimatedEnumeration\n fun getNumberOfChars(): Int\n fun getComputedTextLength(): Float\n fun getSubStringLength(charnum: Int, nchars: Int): Float\n fun getStartPositionOfChar(charnum: Int): DOMPoint\n fun getEndPositionOfChar(charnum: Int): DOMPoint\n fun getExtentOfChar(charnum: Int): DOMRect\n fun getRotationOfChar(charnum: Int): Float\n fun getCharNumAtPosition(point: DOMPoint): Int\n fun selectSubString(charnum: Int, nchars: Int): Unit\n\n companion object {\n val LENGTHADJUST_UNKNOWN: Short\n val LENGTHADJUST_SPACING: Short\n val LENGTHADJUST_SPACINGANDGLYPHS: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGTextPositioningElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextPositioningElement) to Kotlin\n */\npublic external abstract class SVGTextPositioningElement : SVGTextContentElement {\n open val x: SVGAnimatedLengthList\n open val y: SVGAnimatedLengthList\n open val dx: SVGAnimatedLengthList\n open val dy: SVGAnimatedLengthList\n open val rotate: SVGAnimatedNumberList\n}\n\n/**\n * Exposes the JavaScript [SVGTextElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextElement) to Kotlin\n */\npublic external abstract class SVGTextElement : SVGTextPositioningElement {\n}\n\n/**\n * Exposes the JavaScript [SVGTSpanElement](https://developer.mozilla.org/en/docs/Web/API/SVGTSpanElement) to Kotlin\n */\npublic external abstract class SVGTSpanElement : SVGTextPositioningElement {\n}\n\n/**\n * Exposes the JavaScript [SVGTextPathElement](https://developer.mozilla.org/en/docs/Web/API/SVGTextPathElement) to Kotlin\n */\npublic external abstract class SVGTextPathElement : SVGTextContentElement, SVGURIReference {\n open val startOffset: SVGAnimatedLength\n open val method: SVGAnimatedEnumeration\n open val spacing: SVGAnimatedEnumeration\n\n companion object {\n val TEXTPATH_METHODTYPE_UNKNOWN: Short\n val TEXTPATH_METHODTYPE_ALIGN: Short\n val TEXTPATH_METHODTYPE_STRETCH: Short\n val TEXTPATH_SPACINGTYPE_UNKNOWN: Short\n val TEXTPATH_SPACINGTYPE_AUTO: Short\n val TEXTPATH_SPACINGTYPE_EXACT: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGImageElement](https://developer.mozilla.org/en/docs/Web/API/SVGImageElement) to Kotlin\n */\npublic external abstract class SVGImageElement : SVGGraphicsElement, SVGURIReference, HTMLOrSVGImageElement {\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n open val width: SVGAnimatedLength\n open val height: SVGAnimatedLength\n open val preserveAspectRatio: SVGAnimatedPreserveAspectRatio\n open var crossOrigin: String?\n}\n\n/**\n * Exposes the JavaScript [SVGForeignObjectElement](https://developer.mozilla.org/en/docs/Web/API/SVGForeignObjectElement) to Kotlin\n */\npublic external abstract class SVGForeignObjectElement : SVGGraphicsElement {\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n open val width: SVGAnimatedLength\n open val height: SVGAnimatedLength\n}\n\npublic external abstract class SVGMarkerElement : SVGElement, SVGFitToViewBox {\n open val refX: SVGAnimatedLength\n open val refY: SVGAnimatedLength\n open val markerUnits: SVGAnimatedEnumeration\n open val markerWidth: SVGAnimatedLength\n open val markerHeight: SVGAnimatedLength\n open val orientType: SVGAnimatedEnumeration\n open val orientAngle: SVGAnimatedAngle\n open var orient: String\n fun setOrientToAuto(): Unit\n fun setOrientToAngle(angle: SVGAngle): Unit\n\n companion object {\n val SVG_MARKERUNITS_UNKNOWN: Short\n val SVG_MARKERUNITS_USERSPACEONUSE: Short\n val SVG_MARKERUNITS_STROKEWIDTH: Short\n val SVG_MARKER_ORIENT_UNKNOWN: Short\n val SVG_MARKER_ORIENT_AUTO: Short\n val SVG_MARKER_ORIENT_ANGLE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGSolidcolorElement](https://developer.mozilla.org/en/docs/Web/API/SVGSolidcolorElement) to Kotlin\n */\npublic external abstract class SVGSolidcolorElement : SVGElement {\n}\n\n/**\n * Exposes the JavaScript [SVGGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGGradientElement) to Kotlin\n */\npublic external abstract class SVGGradientElement : SVGElement, SVGURIReference, SVGUnitTypes {\n open val gradientUnits: SVGAnimatedEnumeration\n open val gradientTransform: SVGAnimatedTransformList\n open val spreadMethod: SVGAnimatedEnumeration\n\n companion object {\n val SVG_SPREADMETHOD_UNKNOWN: Short\n val SVG_SPREADMETHOD_PAD: Short\n val SVG_SPREADMETHOD_REFLECT: Short\n val SVG_SPREADMETHOD_REPEAT: Short\n val SVG_UNIT_TYPE_UNKNOWN: Short\n val SVG_UNIT_TYPE_USERSPACEONUSE: Short\n val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short\n }\n}\n\n/**\n * Exposes the JavaScript [SVGLinearGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGLinearGradientElement) to Kotlin\n */\npublic external abstract class SVGLinearGradientElement : SVGGradientElement {\n open val x1: SVGAnimatedLength\n open val y1: SVGAnimatedLength\n open val x2: SVGAnimatedLength\n open val y2: SVGAnimatedLength\n}\n\n/**\n * Exposes the JavaScript [SVGRadialGradientElement](https://developer.mozilla.org/en/docs/Web/API/SVGRadialGradientElement) to Kotlin\n */\npublic external abstract class SVGRadialGradientElement : SVGGradientElement {\n open val cx: SVGAnimatedLength\n open val cy: SVGAnimatedLength\n open val r: SVGAnimatedLength\n open val fx: SVGAnimatedLength\n open val fy: SVGAnimatedLength\n open val fr: SVGAnimatedLength\n}\n\npublic external abstract class SVGMeshGradientElement : SVGGradientElement {\n}\n\npublic external abstract class SVGMeshrowElement : SVGElement {\n}\n\npublic external abstract class SVGMeshpatchElement : SVGElement {\n}\n\n/**\n * Exposes the JavaScript [SVGStopElement](https://developer.mozilla.org/en/docs/Web/API/SVGStopElement) to Kotlin\n */\npublic external abstract class SVGStopElement : SVGElement {\n open val offset: SVGAnimatedNumber\n}\n\n/**\n * Exposes the JavaScript [SVGPatternElement](https://developer.mozilla.org/en/docs/Web/API/SVGPatternElement) to Kotlin\n */\npublic external abstract class SVGPatternElement : SVGElement, SVGFitToViewBox, SVGURIReference, SVGUnitTypes {\n open val patternUnits: SVGAnimatedEnumeration\n open val patternContentUnits: SVGAnimatedEnumeration\n open val patternTransform: SVGAnimatedTransformList\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n open val width: SVGAnimatedLength\n open val height: SVGAnimatedLength\n\n companion object {\n val SVG_UNIT_TYPE_UNKNOWN: Short\n val SVG_UNIT_TYPE_USERSPACEONUSE: Short\n val SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: Short\n }\n}\n\npublic external abstract class SVGHatchElement : SVGElement {\n}\n\npublic external abstract class SVGHatchpathElement : SVGElement {\n}\n\n/**\n * Exposes the JavaScript [SVGCursorElement](https://developer.mozilla.org/en/docs/Web/API/SVGCursorElement) to Kotlin\n */\npublic external abstract class SVGCursorElement : SVGElement, SVGURIReference {\n open val x: SVGAnimatedLength\n open val y: SVGAnimatedLength\n}\n\n/**\n * Exposes the JavaScript [SVGScriptElement](https://developer.mozilla.org/en/docs/Web/API/SVGScriptElement) to Kotlin\n */\npublic external abstract class SVGScriptElement : SVGElement, SVGURIReference, HTMLOrSVGScriptElement {\n open var type: String\n open var crossOrigin: String?\n}\n\n/**\n * Exposes the JavaScript [SVGAElement](https://developer.mozilla.org/en/docs/Web/API/SVGAElement) to Kotlin\n */\npublic external abstract class SVGAElement : SVGGraphicsElement, SVGURIReference {\n open val target: SVGAnimatedString\n open val download: SVGAnimatedString\n open val rel: SVGAnimatedString\n open val relList: SVGAnimatedString\n open val hreflang: SVGAnimatedString\n open val type: SVGAnimatedString\n}\n\n/**\n * Exposes the JavaScript [SVGViewElement](https://developer.mozilla.org/en/docs/Web/API/SVGViewElement) to Kotlin\n */\npublic external abstract class SVGViewElement : SVGElement, SVGFitToViewBox, SVGZoomAndPan {\n\n companion object {\n val SVG_ZOOMANDPAN_UNKNOWN: Short\n val SVG_ZOOMANDPAN_DISABLE: Short\n val SVG_ZOOMANDPAN_MAGNIFY: Short\n }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.files\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [Blob](https://developer.mozilla.org/en/docs/Web/API/Blob) to Kotlin\n */\npublic external open class Blob(blobParts: Array = definedExternally, options: BlobPropertyBag = definedExternally) {\n open val size: Int\n open val type: String\n open val isClosed: Boolean\n fun slice(start: Int = definedExternally, end: Int = definedExternally, contentType: String = definedExternally): Blob\n fun close(): Unit\n}\n\npublic external interface BlobPropertyBag {\n var type: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun BlobPropertyBag(type: String? = \"\"): BlobPropertyBag {\n val o = js(\"({})\")\n\n o[\"type\"] = type\n\n return o\n}\n\n/**\n * Exposes the JavaScript [File](https://developer.mozilla.org/en/docs/Web/API/File) to Kotlin\n */\npublic external open class File(fileBits: Array, fileName: String, options: FilePropertyBag = definedExternally) : Blob {\n open val name: String\n open val lastModified: Int\n}\n\npublic external interface FilePropertyBag : BlobPropertyBag {\n var lastModified: Int?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun FilePropertyBag(lastModified: Int? = undefined, type: String? = \"\"): FilePropertyBag {\n val o = js(\"({})\")\n\n o[\"lastModified\"] = lastModified\n o[\"type\"] = type\n\n return o\n}\n\n/**\n * Exposes the JavaScript [FileList](https://developer.mozilla.org/en/docs/Web/API/FileList) to Kotlin\n */\npublic external abstract class FileList : ItemArrayLike {\n override val length: Int\n override fun item(index: Int): File?\n}\n@kotlin.internal.InlineOnly inline operator fun FileList.get(index: Int): File? = asDynamic()[index]\n\n/**\n * Exposes the JavaScript [FileReader](https://developer.mozilla.org/en/docs/Web/API/FileReader) to Kotlin\n */\npublic external open class FileReader : EventTarget {\n open val readyState: Short\n open val result: dynamic\n open val error: dynamic\n var onloadstart: ((ProgressEvent) -> dynamic)?\n var onprogress: ((ProgressEvent) -> dynamic)?\n var onload: ((Event) -> dynamic)?\n var onabort: ((Event) -> dynamic)?\n var onerror: ((Event) -> dynamic)?\n var onloadend: ((Event) -> dynamic)?\n fun readAsArrayBuffer(blob: Blob): Unit\n fun readAsBinaryString(blob: Blob): Unit\n fun readAsText(blob: Blob, label: String = definedExternally): Unit\n fun readAsDataURL(blob: Blob): Unit\n fun abort(): Unit\n\n companion object {\n val EMPTY: Short\n val LOADING: Short\n val DONE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [FileReaderSync](https://developer.mozilla.org/en/docs/Web/API/FileReaderSync) to Kotlin\n */\npublic external open class FileReaderSync {\n fun readAsArrayBuffer(blob: Blob): ArrayBuffer\n fun readAsBinaryString(blob: Blob): String\n fun readAsText(blob: Blob, label: String = definedExternally): String\n fun readAsDataURL(blob: Blob): String\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.notifications\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [Notification](https://developer.mozilla.org/en/docs/Web/API/Notification) to Kotlin\n */\npublic external open class Notification(title: String, options: NotificationOptions = definedExternally) : EventTarget {\n var onclick: ((MouseEvent) -> dynamic)?\n var onerror: ((Event) -> dynamic)?\n open val title: String\n open val dir: NotificationDirection\n open val lang: String\n open val body: String\n open val tag: String\n open val image: String\n open val icon: String\n open val badge: String\n open val sound: String\n open val vibrate: Array\n open val timestamp: Number\n open val renotify: Boolean\n open val silent: Boolean\n open val noscreen: Boolean\n open val requireInteraction: Boolean\n open val sticky: Boolean\n open val data: Any?\n open val actions: Array\n fun close(): Unit\n\n companion object {\n var permission: NotificationPermission\n var maxActions: Int\n fun requestPermission(deprecatedCallback: (NotificationPermission) -> Unit = definedExternally): Promise\n }\n}\n\npublic external interface NotificationOptions {\n var dir: NotificationDirection? /* = NotificationDirection.AUTO */\n get() = definedExternally\n set(value) = definedExternally\n var lang: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var body: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var tag: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n var image: String?\n get() = definedExternally\n set(value) = definedExternally\n var icon: String?\n get() = definedExternally\n set(value) = definedExternally\n var badge: String?\n get() = definedExternally\n set(value) = definedExternally\n var sound: String?\n get() = definedExternally\n set(value) = definedExternally\n var vibrate: dynamic\n get() = definedExternally\n set(value) = definedExternally\n var timestamp: Number?\n get() = definedExternally\n set(value) = definedExternally\n var renotify: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var silent: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var noscreen: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var requireInteraction: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var sticky: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var data: Any? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var actions: Array? /* = arrayOf() */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun NotificationOptions(dir: NotificationDirection? = NotificationDirection.AUTO, lang: String? = \"\", body: String? = \"\", tag: String? = \"\", image: String? = undefined, icon: String? = undefined, badge: String? = undefined, sound: String? = undefined, vibrate: dynamic = undefined, timestamp: Number? = undefined, renotify: Boolean? = false, silent: Boolean? = false, noscreen: Boolean? = false, requireInteraction: Boolean? = false, sticky: Boolean? = false, data: Any? = null, actions: Array? = arrayOf()): NotificationOptions {\n val o = js(\"({})\")\n\n o[\"dir\"] = dir\n o[\"lang\"] = lang\n o[\"body\"] = body\n o[\"tag\"] = tag\n o[\"image\"] = image\n o[\"icon\"] = icon\n o[\"badge\"] = badge\n o[\"sound\"] = sound\n o[\"vibrate\"] = vibrate\n o[\"timestamp\"] = timestamp\n o[\"renotify\"] = renotify\n o[\"silent\"] = silent\n o[\"noscreen\"] = noscreen\n o[\"requireInteraction\"] = requireInteraction\n o[\"sticky\"] = sticky\n o[\"data\"] = data\n o[\"actions\"] = actions\n\n return o\n}\n\npublic external interface NotificationAction {\n var action: String?\n get() = definedExternally\n set(value) = definedExternally\n var title: String?\n get() = definedExternally\n set(value) = definedExternally\n var icon: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun NotificationAction(action: String?, title: String?, icon: String? = undefined): NotificationAction {\n val o = js(\"({})\")\n\n o[\"action\"] = action\n o[\"title\"] = title\n o[\"icon\"] = icon\n\n return o\n}\n\npublic external interface GetNotificationOptions {\n var tag: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun GetNotificationOptions(tag: String? = \"\"): GetNotificationOptions {\n val o = js(\"({})\")\n\n o[\"tag\"] = tag\n\n return o\n}\n\n/**\n * Exposes the JavaScript [NotificationEvent](https://developer.mozilla.org/en/docs/Web/API/NotificationEvent) to Kotlin\n */\npublic external open class NotificationEvent(type: String, eventInitDict: NotificationEventInit) : ExtendableEvent {\n open val notification: Notification\n open val action: String\n}\n\npublic external interface NotificationEventInit : ExtendableEventInit {\n var notification: Notification?\n get() = definedExternally\n set(value) = definedExternally\n var action: String? /* = \"\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun NotificationEventInit(notification: Notification?, action: String? = \"\", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): NotificationEventInit {\n val o = js(\"({})\")\n\n o[\"notification\"] = notification\n o[\"action\"] = action\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/* please, don't implement this interface! */\npublic external interface NotificationPermission {\n companion object\n}\npublic inline val NotificationPermission.Companion.DEFAULT: NotificationPermission get() = \"default\".asDynamic().unsafeCast()\npublic inline val NotificationPermission.Companion.DENIED: NotificationPermission get() = \"denied\".asDynamic().unsafeCast()\npublic inline val NotificationPermission.Companion.GRANTED: NotificationPermission get() = \"granted\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface NotificationDirection {\n companion object\n}\npublic inline val NotificationDirection.Companion.AUTO: NotificationDirection get() = \"auto\".asDynamic().unsafeCast()\npublic inline val NotificationDirection.Companion.LTR: NotificationDirection get() = \"ltr\".asDynamic().unsafeCast()\npublic inline val NotificationDirection.Companion.RTL: NotificationDirection get() = \"rtl\".asDynamic().unsafeCast()\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.workers\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.xhr.*\n\n/**\n * Exposes the JavaScript [ServiceWorkerRegistration](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerRegistration) to Kotlin\n */\npublic external abstract class ServiceWorkerRegistration : EventTarget {\n open val installing: ServiceWorker?\n open val waiting: ServiceWorker?\n open val active: ServiceWorker?\n open val scope: String\n open var onupdatefound: ((Event) -> dynamic)?\n open val APISpace: dynamic\n fun update(): Promise\n fun unregister(): Promise\n fun methodName(): Promise\n fun showNotification(title: String, options: NotificationOptions = definedExternally): Promise\n fun getNotifications(filter: GetNotificationOptions = definedExternally): Promise\n}\n\n/**\n * Exposes the JavaScript [ServiceWorkerGlobalScope](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerGlobalScope) to Kotlin\n */\npublic external abstract class ServiceWorkerGlobalScope : WorkerGlobalScope {\n open val clients: Clients\n open val registration: ServiceWorkerRegistration\n open var oninstall: ((Event) -> dynamic)?\n open var onactivate: ((Event) -> dynamic)?\n open var onfetch: ((FetchEvent) -> dynamic)?\n open var onforeignfetch: ((Event) -> dynamic)?\n open var onmessage: ((MessageEvent) -> dynamic)?\n open var onfunctionalevent: ((Event) -> dynamic)?\n open var onnotificationclick: ((NotificationEvent) -> dynamic)?\n open var onnotificationclose: ((NotificationEvent) -> dynamic)?\n fun skipWaiting(): Promise\n}\n\n/**\n * Exposes the JavaScript [ServiceWorker](https://developer.mozilla.org/en/docs/Web/API/ServiceWorker) to Kotlin\n */\npublic external abstract class ServiceWorker : EventTarget, AbstractWorker, UnionMessagePortOrServiceWorker, UnionClientOrMessagePortOrServiceWorker {\n open val scriptURL: String\n open val state: ServiceWorkerState\n open var onstatechange: ((Event) -> dynamic)?\n fun postMessage(message: Any?, transfer: Array = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [ServiceWorkerContainer](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerContainer) to Kotlin\n */\npublic external abstract class ServiceWorkerContainer : EventTarget {\n open val controller: ServiceWorker?\n open val ready: Promise\n open var oncontrollerchange: ((Event) -> dynamic)?\n open var onmessage: ((MessageEvent) -> dynamic)?\n fun register(scriptURL: String, options: RegistrationOptions = definedExternally): Promise\n fun getRegistration(clientURL: String = definedExternally): Promise\n fun getRegistrations(): Promise\n fun startMessages(): Unit\n}\n\npublic external interface RegistrationOptions {\n var scope: String?\n get() = definedExternally\n set(value) = definedExternally\n var type: WorkerType? /* = WorkerType.CLASSIC */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun RegistrationOptions(scope: String? = undefined, type: WorkerType? = WorkerType.CLASSIC): RegistrationOptions {\n val o = js(\"({})\")\n\n o[\"scope\"] = scope\n o[\"type\"] = type\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ServiceWorkerMessageEvent](https://developer.mozilla.org/en/docs/Web/API/ServiceWorkerMessageEvent) to Kotlin\n */\npublic external open class ServiceWorkerMessageEvent(type: String, eventInitDict: ServiceWorkerMessageEventInit = definedExternally) : Event {\n open val data: Any?\n open val origin: String\n open val lastEventId: String\n open val source: UnionMessagePortOrServiceWorker?\n open val ports: Array?\n}\n\npublic external interface ServiceWorkerMessageEventInit : EventInit {\n var data: Any?\n get() = definedExternally\n set(value) = definedExternally\n var origin: String?\n get() = definedExternally\n set(value) = definedExternally\n var lastEventId: String?\n get() = definedExternally\n set(value) = definedExternally\n var source: UnionMessagePortOrServiceWorker?\n get() = definedExternally\n set(value) = definedExternally\n var ports: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ServiceWorkerMessageEventInit(data: Any? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionMessagePortOrServiceWorker? = undefined, ports: Array? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ServiceWorkerMessageEventInit {\n val o = js(\"({})\")\n\n o[\"data\"] = data\n o[\"origin\"] = origin\n o[\"lastEventId\"] = lastEventId\n o[\"source\"] = source\n o[\"ports\"] = ports\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [Client](https://developer.mozilla.org/en/docs/Web/API/Client) to Kotlin\n */\npublic external abstract class Client : UnionClientOrMessagePortOrServiceWorker {\n open val url: String\n open val frameType: FrameType\n open val id: String\n fun postMessage(message: Any?, transfer: Array = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [WindowClient](https://developer.mozilla.org/en/docs/Web/API/WindowClient) to Kotlin\n */\npublic external abstract class WindowClient : Client {\n open val visibilityState: dynamic\n open val focused: Boolean\n fun focus(): Promise\n fun navigate(url: String): Promise\n}\n\n/**\n * Exposes the JavaScript [Clients](https://developer.mozilla.org/en/docs/Web/API/Clients) to Kotlin\n */\npublic external abstract class Clients {\n fun get(id: String): Promise\n fun matchAll(options: ClientQueryOptions = definedExternally): Promise\n fun openWindow(url: String): Promise\n fun claim(): Promise\n}\n\npublic external interface ClientQueryOptions {\n var includeUncontrolled: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var type: ClientType? /* = ClientType.WINDOW */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ClientQueryOptions(includeUncontrolled: Boolean? = false, type: ClientType? = ClientType.WINDOW): ClientQueryOptions {\n val o = js(\"({})\")\n\n o[\"includeUncontrolled\"] = includeUncontrolled\n o[\"type\"] = type\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ExtendableEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableEvent) to Kotlin\n */\npublic external open class ExtendableEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : Event {\n fun waitUntil(f: Promise): Unit\n}\n\npublic external interface ExtendableEventInit : EventInit {\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ExtendableEventInit(bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableEventInit {\n val o = js(\"({})\")\n\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [InstallEvent](https://developer.mozilla.org/en/docs/Web/API/InstallEvent) to Kotlin\n */\npublic external open class InstallEvent(type: String, eventInitDict: ExtendableEventInit = definedExternally) : ExtendableEvent {\n fun registerForeignFetch(options: ForeignFetchOptions): Unit\n}\n\npublic external interface ForeignFetchOptions {\n var scopes: Array?\n get() = definedExternally\n set(value) = definedExternally\n var origins: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ForeignFetchOptions(scopes: Array?, origins: Array?): ForeignFetchOptions {\n val o = js(\"({})\")\n\n o[\"scopes\"] = scopes\n o[\"origins\"] = origins\n\n return o\n}\n\n/**\n * Exposes the JavaScript [FetchEvent](https://developer.mozilla.org/en/docs/Web/API/FetchEvent) to Kotlin\n */\npublic external open class FetchEvent(type: String, eventInitDict: FetchEventInit) : ExtendableEvent {\n open val request: Request\n open val clientId: String?\n open val isReload: Boolean\n fun respondWith(r: Promise): Unit\n}\n\npublic external interface FetchEventInit : ExtendableEventInit {\n var request: Request?\n get() = definedExternally\n set(value) = definedExternally\n var clientId: String? /* = null */\n get() = definedExternally\n set(value) = definedExternally\n var isReload: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun FetchEventInit(request: Request?, clientId: String? = null, isReload: Boolean? = false, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): FetchEventInit {\n val o = js(\"({})\")\n\n o[\"request\"] = request\n o[\"clientId\"] = clientId\n o[\"isReload\"] = isReload\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external open class ForeignFetchEvent(type: String, eventInitDict: ForeignFetchEventInit) : ExtendableEvent {\n open val request: Request\n open val origin: String\n fun respondWith(r: Promise): Unit\n}\n\npublic external interface ForeignFetchEventInit : ExtendableEventInit {\n var request: Request?\n get() = definedExternally\n set(value) = definedExternally\n var origin: String? /* = \"null\" */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ForeignFetchEventInit(request: Request?, origin: String? = \"null\", bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ForeignFetchEventInit {\n val o = js(\"({})\")\n\n o[\"request\"] = request\n o[\"origin\"] = origin\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\npublic external interface ForeignFetchResponse {\n var response: Response?\n get() = definedExternally\n set(value) = definedExternally\n var origin: String?\n get() = definedExternally\n set(value) = definedExternally\n var headers: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ForeignFetchResponse(response: Response?, origin: String? = undefined, headers: Array? = undefined): ForeignFetchResponse {\n val o = js(\"({})\")\n\n o[\"response\"] = response\n o[\"origin\"] = origin\n o[\"headers\"] = headers\n\n return o\n}\n\n/**\n * Exposes the JavaScript [ExtendableMessageEvent](https://developer.mozilla.org/en/docs/Web/API/ExtendableMessageEvent) to Kotlin\n */\npublic external open class ExtendableMessageEvent(type: String, eventInitDict: ExtendableMessageEventInit = definedExternally) : ExtendableEvent {\n open val data: Any?\n open val origin: String\n open val lastEventId: String\n open val source: UnionClientOrMessagePortOrServiceWorker?\n open val ports: Array?\n}\n\npublic external interface ExtendableMessageEventInit : ExtendableEventInit {\n var data: Any?\n get() = definedExternally\n set(value) = definedExternally\n var origin: String?\n get() = definedExternally\n set(value) = definedExternally\n var lastEventId: String?\n get() = definedExternally\n set(value) = definedExternally\n var source: UnionClientOrMessagePortOrServiceWorker?\n get() = definedExternally\n set(value) = definedExternally\n var ports: Array?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ExtendableMessageEventInit(data: Any? = undefined, origin: String? = undefined, lastEventId: String? = undefined, source: UnionClientOrMessagePortOrServiceWorker? = undefined, ports: Array? = undefined, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ExtendableMessageEventInit {\n val o = js(\"({})\")\n\n o[\"data\"] = data\n o[\"origin\"] = origin\n o[\"lastEventId\"] = lastEventId\n o[\"source\"] = source\n o[\"ports\"] = ports\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/**\n * Exposes the JavaScript [Cache](https://developer.mozilla.org/en/docs/Web/API/Cache) to Kotlin\n */\npublic external abstract class Cache {\n fun match(request: dynamic, options: CacheQueryOptions = definedExternally): Promise\n fun matchAll(request: dynamic = definedExternally, options: CacheQueryOptions = definedExternally): Promise\n fun add(request: dynamic): Promise\n fun addAll(requests: Array): Promise\n fun put(request: dynamic, response: Response): Promise\n fun delete(request: dynamic, options: CacheQueryOptions = definedExternally): Promise\n fun keys(request: dynamic = definedExternally, options: CacheQueryOptions = definedExternally): Promise\n}\n\npublic external interface CacheQueryOptions {\n var ignoreSearch: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var ignoreMethod: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var ignoreVary: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var cacheName: String?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun CacheQueryOptions(ignoreSearch: Boolean? = false, ignoreMethod: Boolean? = false, ignoreVary: Boolean? = false, cacheName: String? = undefined): CacheQueryOptions {\n val o = js(\"({})\")\n\n o[\"ignoreSearch\"] = ignoreSearch\n o[\"ignoreMethod\"] = ignoreMethod\n o[\"ignoreVary\"] = ignoreVary\n o[\"cacheName\"] = cacheName\n\n return o\n}\n\npublic external interface CacheBatchOperation {\n var type: String?\n get() = definedExternally\n set(value) = definedExternally\n var request: Request?\n get() = definedExternally\n set(value) = definedExternally\n var response: Response?\n get() = definedExternally\n set(value) = definedExternally\n var options: CacheQueryOptions?\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun CacheBatchOperation(type: String? = undefined, request: Request? = undefined, response: Response? = undefined, options: CacheQueryOptions? = undefined): CacheBatchOperation {\n val o = js(\"({})\")\n\n o[\"type\"] = type\n o[\"request\"] = request\n o[\"response\"] = response\n o[\"options\"] = options\n\n return o\n}\n\n/**\n * Exposes the JavaScript [CacheStorage](https://developer.mozilla.org/en/docs/Web/API/CacheStorage) to Kotlin\n */\npublic external abstract class CacheStorage {\n fun match(request: dynamic, options: CacheQueryOptions = definedExternally): Promise\n fun has(cacheName: String): Promise\n fun open(cacheName: String): Promise\n fun delete(cacheName: String): Promise\n fun keys(): Promise\n}\n\npublic external open class FunctionalEvent : ExtendableEvent {\n}\n\npublic external @marker interface UnionClientOrMessagePortOrServiceWorker {\n}\n\n/* please, don't implement this interface! */\npublic external interface ServiceWorkerState {\n companion object\n}\npublic inline val ServiceWorkerState.Companion.INSTALLING: ServiceWorkerState get() = \"installing\".asDynamic().unsafeCast()\npublic inline val ServiceWorkerState.Companion.INSTALLED: ServiceWorkerState get() = \"installed\".asDynamic().unsafeCast()\npublic inline val ServiceWorkerState.Companion.ACTIVATING: ServiceWorkerState get() = \"activating\".asDynamic().unsafeCast()\npublic inline val ServiceWorkerState.Companion.ACTIVATED: ServiceWorkerState get() = \"activated\".asDynamic().unsafeCast()\npublic inline val ServiceWorkerState.Companion.REDUNDANT: ServiceWorkerState get() = \"redundant\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface FrameType {\n companion object\n}\npublic inline val FrameType.Companion.AUXILIARY: FrameType get() = \"auxiliary\".asDynamic().unsafeCast()\npublic inline val FrameType.Companion.TOP_LEVEL: FrameType get() = \"top-level\".asDynamic().unsafeCast()\npublic inline val FrameType.Companion.NESTED: FrameType get() = \"nested\".asDynamic().unsafeCast()\npublic inline val FrameType.Companion.NONE: FrameType get() = \"none\".asDynamic().unsafeCast()\n\n/* please, don't implement this interface! */\npublic external interface ClientType {\n companion object\n}\npublic inline val ClientType.Companion.WINDOW: ClientType get() = \"window\".asDynamic().unsafeCast()\npublic inline val ClientType.Companion.WORKER: ClientType get() = \"worker\".asDynamic().unsafeCast()\npublic inline val ClientType.Companion.SHAREDWORKER: ClientType get() = \"sharedworker\".asDynamic().unsafeCast()\npublic inline val ClientType.Companion.ALL: ClientType get() = \"all\".asDynamic().unsafeCast()\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// NOTE: THIS FILE IS AUTO-GENERATED, DO NOT EDIT!\n// See libraries/tools/idl2k for details\n\n@file:Suppress(\"NESTED_CLASS_IN_EXTERNAL_INTERFACE\")\npackage org.w3c.xhr\n\nimport kotlin.js.*\nimport org.khronos.webgl.*\nimport org.w3c.css.masking.*\nimport org.w3c.dom.*\nimport org.w3c.dom.clipboard.*\nimport org.w3c.dom.css.*\nimport org.w3c.dom.events.*\nimport org.w3c.dom.mediacapture.*\nimport org.w3c.dom.parsing.*\nimport org.w3c.dom.pointerevents.*\nimport org.w3c.dom.svg.*\nimport org.w3c.dom.url.*\nimport org.w3c.fetch.*\nimport org.w3c.files.*\nimport org.w3c.notifications.*\nimport org.w3c.performance.*\nimport org.w3c.workers.*\n\n/**\n * Exposes the JavaScript [XMLHttpRequestEventTarget](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequestEventTarget) to Kotlin\n */\npublic external abstract class XMLHttpRequestEventTarget : EventTarget {\n open var onloadstart: ((ProgressEvent) -> dynamic)?\n open var onprogress: ((ProgressEvent) -> dynamic)?\n open var onabort: ((Event) -> dynamic)?\n open var onerror: ((Event) -> dynamic)?\n open var onload: ((Event) -> dynamic)?\n open var ontimeout: ((Event) -> dynamic)?\n open var onloadend: ((Event) -> dynamic)?\n}\n\npublic external abstract class XMLHttpRequestUpload : XMLHttpRequestEventTarget {\n}\n\n/**\n * Exposes the JavaScript [XMLHttpRequest](https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest) to Kotlin\n */\npublic external open class XMLHttpRequest : XMLHttpRequestEventTarget {\n var onreadystatechange: ((Event) -> dynamic)?\n open val readyState: Short\n var timeout: Int\n var withCredentials: Boolean\n open val upload: XMLHttpRequestUpload\n open val responseURL: String\n open val status: Short\n open val statusText: String\n var responseType: XMLHttpRequestResponseType\n open val response: Any?\n open val responseText: String\n open val responseXML: Document?\n fun open(method: String, url: String): Unit\n fun open(method: String, url: String, async: Boolean, username: String? = definedExternally, password: String? = definedExternally): Unit\n fun setRequestHeader(name: String, value: String): Unit\n fun send(body: dynamic = definedExternally): Unit\n fun abort(): Unit\n fun getResponseHeader(name: String): String?\n fun getAllResponseHeaders(): String\n fun overrideMimeType(mime: String): Unit\n\n companion object {\n val UNSENT: Short\n val OPENED: Short\n val HEADERS_RECEIVED: Short\n val LOADING: Short\n val DONE: Short\n }\n}\n\n/**\n * Exposes the JavaScript [FormData](https://developer.mozilla.org/en/docs/Web/API/FormData) to Kotlin\n */\npublic external open class FormData(form: HTMLFormElement = definedExternally) {\n fun append(name: String, value: String): Unit\n fun append(name: String, value: Blob, filename: String = definedExternally): Unit\n fun delete(name: String): Unit\n fun get(name: String): dynamic\n fun getAll(name: String): Array\n fun has(name: String): Boolean\n fun set(name: String, value: String): Unit\n fun set(name: String, value: Blob, filename: String = definedExternally): Unit\n}\n\n/**\n * Exposes the JavaScript [ProgressEvent](https://developer.mozilla.org/en/docs/Web/API/ProgressEvent) to Kotlin\n */\npublic external open class ProgressEvent(type: String, eventInitDict: ProgressEventInit = definedExternally) : Event {\n open val lengthComputable: Boolean\n open val loaded: Int\n open val total: Int\n}\n\npublic external interface ProgressEventInit : EventInit {\n var lengthComputable: Boolean? /* = false */\n get() = definedExternally\n set(value) = definedExternally\n var loaded: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n var total: Int? /* = 0 */\n get() = definedExternally\n set(value) = definedExternally\n}\n\n@kotlin.internal.InlineOnly\npublic inline fun ProgressEventInit(lengthComputable: Boolean? = false, loaded: Int? = 0, total: Int? = 0, bubbles: Boolean? = false, cancelable: Boolean? = false, composed: Boolean? = false): ProgressEventInit {\n val o = js(\"({})\")\n\n o[\"lengthComputable\"] = lengthComputable\n o[\"loaded\"] = loaded\n o[\"total\"] = total\n o[\"bubbles\"] = bubbles\n o[\"cancelable\"] = cancelable\n o[\"composed\"] = composed\n\n return o\n}\n\n/* please, don't implement this interface! */\npublic external interface XMLHttpRequestResponseType {\n companion object\n}\npublic inline val XMLHttpRequestResponseType.Companion.EMPTY: XMLHttpRequestResponseType get() = \"\".asDynamic().unsafeCast()\npublic inline val XMLHttpRequestResponseType.Companion.ARRAYBUFFER: XMLHttpRequestResponseType get() = \"arraybuffer\".asDynamic().unsafeCast()\npublic inline val XMLHttpRequestResponseType.Companion.BLOB: XMLHttpRequestResponseType get() = \"blob\".asDynamic().unsafeCast()\npublic inline val XMLHttpRequestResponseType.Companion.DOCUMENT: XMLHttpRequestResponseType get() = \"document\".asDynamic().unsafeCast()\npublic inline val XMLHttpRequestResponseType.Companion.JSON: XMLHttpRequestResponseType get() = \"json\".asDynamic().unsafeCast()\npublic inline val XMLHttpRequestResponseType.Companion.TEXT: XMLHttpRequestResponseType get() = \"text\".asDynamic().unsafeCast()\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\nimport kotlin.annotation.AnnotationRetention.BINARY\nimport kotlin.annotation.AnnotationRetention.SOURCE\nimport kotlin.annotation.AnnotationTarget.*\nimport kotlin.internal.RequireKotlin\nimport kotlin.internal.RequireKotlinVersionKind\nimport kotlin.reflect.KClass\n\n/**\n * Signals that the annotated annotation class is a marker of an experimental API.\n *\n * Any declaration annotated with that marker is considered an experimental declaration\n * and its call sites should accept the experimental aspect of it either by using [UseExperimental],\n * or by being annotated with that marker themselves, effectively causing further propagation of that experimental aspect.\n *\n * This class is experimental itself and can only be used with the compiler argument `-Xuse-experimental=kotlin.Experimental`.\n */\n@Target(ANNOTATION_CLASS)\n@Retention(BINARY)\n@SinceKotlin(\"1.2\")\n@RequireKotlin(\"1.2.50\", versionKind = RequireKotlinVersionKind.COMPILER_VERSION)\n@Suppress(\"ANNOTATION_CLASS_MEMBER\")\npublic annotation class Experimental(val level: Level = Level.ERROR) {\n /**\n * Severity of the diagnostic that should be reported on usages of experimental API which did not explicitly accept the experimental aspect\n * of that API either by using [UseExperimental] or by being annotated with the corresponding marker annotation.\n */\n public enum class Level {\n /** Specifies that a warning should be reported on incorrect usages of this experimental API. */\n WARNING,\n /** Specifies that an error should be reported on incorrect usages of this experimental API. */\n ERROR,\n }\n}\n\n/**\n * Allows to use experimental API denoted by the given markers in the annotated file, declaration, or expression.\n * If a declaration is annotated with [UseExperimental], its usages are **not** required to opt-in to that experimental API.\n *\n * This class is experimental itself and can only be used with the compiler argument `-Xuse-experimental=kotlin.Experimental`.\n */\n@Target(\n CLASS, PROPERTY, LOCAL_VARIABLE, VALUE_PARAMETER, CONSTRUCTOR, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, EXPRESSION, FILE, TYPEALIAS\n)\n@Retention(SOURCE)\n@SinceKotlin(\"1.2\")\n@RequireKotlin(\"1.2.50\", versionKind = RequireKotlinVersionKind.COMPILER_VERSION)\npublic annotation class UseExperimental(\n vararg val markerClass: KClass\n)\n\n\n@Target(CLASS, PROPERTY, CONSTRUCTOR, FUNCTION, TYPEALIAS)\n@Retention(BINARY)\ninternal annotation class WasExperimental(\n vararg val markerClass: KClass\n)\n","package kotlin\n\nimport kotlin.annotation.AnnotationTarget.*\n\n/**\n * This annotation marks the standard library API that is considered experimental and is not subject to the\n * [general compatibility guarantees](https://kotlinlang.org/docs/reference/evolution/components-stability.html) given for the standard library:\n * the behavior of such API may be changed or the API may be removed completely in any further release.\n *\n * > Beware using the annotated API especially if you're developing a library, since your library might become binary incompatible\n * with the future versions of the standard library.\n *\n * Any usage of a declaration annotated with `@ExperimentalStdlibApi` must be accepted either by\n * annotating that usage with the [UseExperimental] annotation, e.g. `@UseExperimental(ExperimentalStdlibApi::class)`,\n * or by using the compiler argument `-Xuse-experimental=kotlin.ExperimentalStdlibApi`.\n */\n@Experimental(level = Experimental.Level.ERROR)\n@Retention(AnnotationRetention.BINARY)\n@Target(\n CLASS,\n ANNOTATION_CLASS,\n PROPERTY,\n FIELD,\n LOCAL_VARIABLE,\n VALUE_PARAMETER,\n CONSTRUCTOR,\n FUNCTION,\n PROPERTY_GETTER,\n PROPERTY_SETTER,\n TYPEALIAS\n)\n@MustBeDocumented\n@ExperimentalStdlibApi\n@SinceKotlin(\"1.3\") // TODO: Remove experimental status from itself and advance SinceKotlin to 1.4\npublic annotation class ExperimentalStdlibApi\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\nimport kotlin.annotation.AnnotationTarget.*\nimport kotlin.experimental.ExperimentalTypeInference\n\n/**\n * Allows to infer generic type arguments of a function from the calls in the annotated function parameter of that function.\n *\n * When this annotation is placed on a generic function parameter of a function,\n * it enables to infer the type arguments of that generic function from the lambda body passed to that parameter.\n *\n * The calls that affect inference are either members of the receiver type of an annotated function parameter or\n * extensions for that type. The extensions must be themselves annotated with `@BuilderInference`.\n *\n * Example: we declare\n * ```\n * fun sequence(@BuilderInference block: suspend SequenceScope.() -> Unit): Sequence\n * ```\n * and use it like\n * ```\n * val result = sequence { yield(\"result\") }\n * ```\n * Here the type argument of the resulting sequence is inferred to `String` from\n * the argument of the [SequenceScope.yield] function, that is called inside the lambda passed to [sequence].\n *\n * Note: this annotation is experimental, see [ExperimentalTypeInference] on how to opt-in for it.\n */\n@Target(VALUE_PARAMETER, FUNCTION, PROPERTY)\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.3\")\n@ExperimentalTypeInference\npublic annotation class BuilderInference\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\nimport kotlin.annotation.AnnotationTarget.*\nimport kotlin.internal.RequireKotlin\nimport kotlin.internal.RequireKotlinVersionKind\n\n/**\n * The experimental multiplatform support API marker.\n *\n * Any usage of a declaration annotated with `@ExperimentalMultiplatform` must be accepted either by\n * annotating that usage with the [UseExperimental] annotation, e.g. `@UseExperimental(ExperimentalMultiplatform::class)`,\n * or by using the compiler argument `-Xuse-experimental=kotlin.ExperimentalMultiplatform`.\n */\n@Experimental\n@MustBeDocumented\n@Target(\n CLASS,\n ANNOTATION_CLASS,\n PROPERTY,\n FIELD,\n LOCAL_VARIABLE,\n VALUE_PARAMETER,\n CONSTRUCTOR,\n FUNCTION,\n PROPERTY_GETTER,\n PROPERTY_SETTER,\n TYPEALIAS\n)\n@Retention(AnnotationRetention.BINARY)\n@RequireKotlin(\"1.2.50\", versionKind = RequireKotlinVersionKind.COMPILER_VERSION)\npublic annotation class ExperimentalMultiplatform\n\n/**\n * Marks an expected annotation class that it isn't required to have actual counterparts in all platforms.\n *\n * This annotation is only applicable to `expect` annotation classes in multi-platform projects and marks that class as \"optional\".\n * Optional expected class is allowed to have no corresponding actual class on the platform. Optional annotations can only be used\n * to annotate something, not as types in signatures. If an optional annotation has no corresponding actual class on a platform,\n * the annotation entries where it's used are simply erased when compiling code on that platform.\n *\n * Note: this annotation is experimental, see [ExperimentalMultiplatform] on how to opt-in for it.\n */\n@Target(ANNOTATION_CLASS)\n@Retention(AnnotationRetention.BINARY)\n@ExperimentalMultiplatform\n@RequireKotlin(\"1.2.50\", versionKind = RequireKotlinVersionKind.COMPILER_VERSION)\npublic annotation class OptionalExpectation\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the read-only [Collection] interface.\n *\n * @param E the type of elements contained in the collection. The collection is covariant on its element type.\n */\n@SinceKotlin(\"1.1\")\npublic abstract class AbstractCollection protected constructor() : Collection {\n abstract override val size: Int\n abstract override fun iterator(): Iterator\n\n override fun contains(element: @UnsafeVariance E): Boolean = any { it == element }\n\n override fun containsAll(elements: Collection<@UnsafeVariance E>): Boolean =\n elements.all { contains(it) } // use when js will support bound refs: elements.all(this::contains)\n\n override fun isEmpty(): Boolean = size == 0\n\n override fun toString(): String = joinToString(\", \", \"[\", \"]\") {\n if (it === this) \"(this Collection)\" else it.toString()\n }\n\n /**\n * Returns new array of type `Array` with the elements of this collection.\n */\n protected open fun toArray(): Array = copyToArrayImpl(this)\n\n /**\n * Fills the provided [array] or creates new array of the same type\n * and fills it with the elements of this collection.\n */\n protected open fun toArray(array: Array): Array = copyToArrayImpl(this, array)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n\nprivate enum class State {\n Ready,\n NotReady,\n Done,\n Failed\n}\n\n/**\n * A base class to simplify implementing iterators so that implementations only have to implement [computeNext]\n * to implement the iterator, calling [done] when the iteration is complete.\n */\npublic abstract class AbstractIterator : Iterator {\n private var state = State.NotReady\n private var nextValue: T? = null\n\n override fun hasNext(): Boolean {\n require(state != State.Failed)\n return when (state) {\n State.Done -> false\n State.Ready -> true\n else -> tryToComputeNext()\n }\n }\n\n override fun next(): T {\n if (!hasNext()) throw NoSuchElementException()\n state = State.NotReady\n @Suppress(\"UNCHECKED_CAST\")\n return nextValue as T\n }\n\n private fun tryToComputeNext(): Boolean {\n state = State.Failed\n computeNext()\n return state == State.Ready\n }\n\n /**\n * Computes the next item in the iterator.\n *\n * This callback method should call one of these two methods:\n *\n * * [setNext] with the next value of the iteration\n * * [done] to indicate there are no more elements\n *\n * Failure to call either method will result in the iteration terminating with a failed state\n */\n abstract protected fun computeNext(): Unit\n\n /**\n * Sets the next value in the iteration, called from the [computeNext] function\n */\n protected fun setNext(value: T): Unit {\n nextValue = value\n state = State.Ready\n }\n\n /**\n * Sets the state to done so that the iteration terminates.\n */\n protected fun done() {\n state = State.Done\n }\n}\n\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT AbstractList\n * Copyright 2007 Google Inc.\n*/\n\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the read-only [List] interface.\n *\n * This class is intended to help implementing read-only lists so it doesn't support concurrent modification tracking.\n *\n * @param E the type of elements contained in the list. The list is covariant on its element type.\n */\n@SinceKotlin(\"1.1\")\npublic abstract class AbstractList protected constructor() : AbstractCollection(), List {\n abstract override val size: Int\n abstract override fun get(index: Int): E\n\n override fun iterator(): Iterator = IteratorImpl()\n\n override fun indexOf(element: @UnsafeVariance E): Int = indexOfFirst { it == element }\n\n override fun lastIndexOf(element: @UnsafeVariance E): Int = indexOfLast { it == element }\n\n override fun listIterator(): ListIterator = ListIteratorImpl(0)\n\n override fun listIterator(index: Int): ListIterator = ListIteratorImpl(index)\n\n override fun subList(fromIndex: Int, toIndex: Int): List = SubList(this, fromIndex, toIndex)\n\n private class SubList(private val list: AbstractList, private val fromIndex: Int, toIndex: Int) : AbstractList(), RandomAccess {\n private var _size: Int = 0\n\n init {\n checkRangeIndexes(fromIndex, toIndex, list.size)\n this._size = toIndex - fromIndex\n }\n\n override fun get(index: Int): E {\n checkElementIndex(index, _size)\n\n return list[fromIndex + index]\n }\n\n override val size: Int get() = _size\n }\n\n /**\n * Compares this list with other list instance with the ordered structural equality.\n *\n * @return true, if [other] instance is a [List] of the same size, which contains the same elements in the same order.\n */\n override fun equals(other: Any?): Boolean {\n if (other === this) return true\n if (other !is List<*>) return false\n\n return orderedEquals(this, other)\n }\n\n /**\n * Returns the hash code value for this list.\n */\n override fun hashCode(): Int = orderedHashCode(this)\n\n private open inner class IteratorImpl : Iterator {\n /** the index of the item that will be returned on the next call to [next]`()` */\n protected var index = 0\n\n override fun hasNext(): Boolean = index < size\n\n override fun next(): E {\n if (!hasNext()) throw NoSuchElementException()\n return get(index++)\n }\n }\n\n /**\n * Implementation of [ListIterator] for abstract lists.\n */\n private open inner class ListIteratorImpl(index: Int) : IteratorImpl(), ListIterator {\n\n init {\n checkPositionIndex(index, this@AbstractList.size)\n this.index = index\n }\n\n override fun hasPrevious(): Boolean = index > 0\n\n override fun nextIndex(): Int = index\n\n override fun previous(): E {\n if (!hasPrevious()) throw NoSuchElementException()\n return get(--index)\n }\n\n override fun previousIndex(): Int = index - 1\n }\n\n internal companion object {\n internal fun checkElementIndex(index: Int, size: Int) {\n if (index < 0 || index >= size) {\n throw IndexOutOfBoundsException(\"index: $index, size: $size\")\n }\n }\n\n internal fun checkPositionIndex(index: Int, size: Int) {\n if (index < 0 || index > size) {\n throw IndexOutOfBoundsException(\"index: $index, size: $size\")\n }\n }\n\n internal fun checkRangeIndexes(fromIndex: Int, toIndex: Int, size: Int) {\n if (fromIndex < 0 || toIndex > size) {\n throw IndexOutOfBoundsException(\"fromIndex: $fromIndex, toIndex: $toIndex, size: $size\")\n }\n if (fromIndex > toIndex) {\n throw IllegalArgumentException(\"fromIndex: $fromIndex > toIndex: $toIndex\")\n }\n }\n\n internal fun checkBoundsIndexes(startIndex: Int, endIndex: Int, size: Int) {\n if (startIndex < 0 || endIndex > size) {\n throw IndexOutOfBoundsException(\"startIndex: $startIndex, endIndex: $endIndex, size: $size\")\n }\n if (startIndex > endIndex) {\n throw IllegalArgumentException(\"startIndex: $startIndex > endIndex: $endIndex\")\n }\n }\n\n internal fun orderedHashCode(c: Collection<*>): Int {\n var hashCode = 1\n for (e in c) {\n hashCode = 31 * hashCode + (e?.hashCode() ?: 0)\n }\n return hashCode\n }\n\n internal fun orderedEquals(c: Collection<*>, other: Collection<*>): Boolean {\n if (c.size != other.size) return false\n\n val otherIterator = other.iterator()\n for (elem in c) {\n val elemOther = otherIterator.next()\n if (elem != elemOther) {\n return false\n }\n }\n return true\n }\n }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n/*\n * Based on GWT AbstractMap\n * Copyright 2007 Google Inc.\n */\n\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the read-only [Map] interface.\n *\n * The implementor is required to implement [entries] property, which should return read-only set of map entries.\n *\n * @param K the type of map keys. The map is invariant on its key type.\n * @param V the type of map values. The map is covariant on its value type.\n */\n@SinceKotlin(\"1.1\")\npublic abstract class AbstractMap protected constructor() : Map {\n\n override fun containsKey(key: K): Boolean {\n return implFindEntry(key) != null\n }\n\n override fun containsValue(value: @UnsafeVariance V): Boolean = entries.any { it.value == value }\n\n internal fun containsEntry(entry: Map.Entry<*, *>?): Boolean {\n // since entry comes from @UnsafeVariance parameters it can be virtually anything\n if (entry !is Map.Entry<*, *>) return false\n val key = entry.key\n val value = entry.value\n val ourValue = get(key)\n\n if (value != ourValue) {\n return false\n }\n\n // Perhaps it was null and we don't contain the key?\n if (ourValue == null && !containsKey(key)) {\n return false\n }\n\n return true\n }\n\n\n /**\n * Compares this map with other instance with the ordered structural equality.\n *\n * @return true, if [other] instance is a [Map] of the same size, all entries of which are contained in the [entries] set of this map.\n */\n override fun equals(other: Any?): Boolean {\n if (other === this) return true\n if (other !is Map<*, *>) return false\n if (size != other.size) return false\n\n return other.entries.all { containsEntry(it) }\n }\n\n override operator fun get(key: K): V? = implFindEntry(key)?.value\n\n\n /**\n * Returns the hash code value for this map.\n *\n * It is the same as the hashCode of [entries] set.\n */\n override fun hashCode(): Int = entries.hashCode()\n\n override fun isEmpty(): Boolean = size == 0\n override val size: Int get() = entries.size\n\n /**\n * Returns a read-only [Set] of all keys in this map.\n *\n * Accessing this property first time creates a keys view from [entries].\n * All subsequent accesses just return the created instance.\n */\n override val keys: Set\n get() {\n if (_keys == null) {\n _keys = object : AbstractSet() {\n override operator fun contains(element: K): Boolean = containsKey(element)\n\n override operator fun iterator(): Iterator {\n val entryIterator = entries.iterator()\n return object : Iterator {\n override fun hasNext(): Boolean = entryIterator.hasNext()\n override fun next(): K = entryIterator.next().key\n }\n }\n\n override val size: Int get() = this@AbstractMap.size\n }\n }\n return _keys!!\n }\n\n @kotlin.jvm.Volatile\n private var _keys: Set? = null\n\n\n override fun toString(): String = entries.joinToString(\", \", \"{\", \"}\") { toString(it) }\n\n private fun toString(entry: Map.Entry): String = toString(entry.key) + \"=\" + toString(entry.value)\n\n private fun toString(o: Any?): String = if (o === this) \"(this Map)\" else o.toString()\n\n /**\n * Returns a read-only [Collection] of all values in this map.\n *\n * Accessing this property first time creates a values view from [entries].\n * All subsequent accesses just return the created instance.\n */\n override val values: Collection\n get() {\n if (_values == null) {\n _values = object : AbstractCollection() {\n override operator fun contains(element: @UnsafeVariance V): Boolean = containsValue(element)\n\n override operator fun iterator(): Iterator {\n val entryIterator = entries.iterator()\n return object : Iterator {\n override fun hasNext(): Boolean = entryIterator.hasNext()\n override fun next(): V = entryIterator.next().value\n }\n }\n\n override val size: Int get() = this@AbstractMap.size\n }\n }\n return _values!!\n }\n\n @kotlin.jvm.Volatile\n private var _values: Collection? = null\n\n private fun implFindEntry(key: K): Map.Entry? = entries.firstOrNull { it.key == key }\n\n internal companion object {\n\n internal fun entryHashCode(e: Map.Entry<*, *>): Int = with(e) { (key?.hashCode() ?: 0) xor (value?.hashCode() ?: 0) }\n internal fun entryToString(e: Map.Entry<*, *>): String = with(e) { \"$key=$value\" }\n internal fun entryEquals(e: Map.Entry<*, *>, other: Any?): Boolean {\n if (other !is Map.Entry<*, *>) return false\n return e.key == other.key && e.value == other.value\n }\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\npackage kotlin.collections\n\n/**\n * Provides a skeletal implementation of the read-only [Set] interface.\n *\n * This class is intended to help implementing read-only sets so it doesn't support concurrent modification tracking.\n *\n * @param E the type of elements contained in the set. The set is covariant on its element type.\n */\n@SinceKotlin(\"1.1\")\npublic abstract class AbstractSet protected constructor() : AbstractCollection(), Set {\n\n /**\n * Compares this set with other set instance with the unordered structural equality.\n *\n * @return true, if [other] instance is a [Set] of the same size, all elements of which are contained in this set.\n */\n override fun equals(other: Any?): Boolean {\n if (other === this) return true\n if (other !is Set<*>) return false\n return setEquals(this, other)\n }\n\n /**\n * Returns the hash code value for this set.\n */\n override fun hashCode(): Int = unorderedHashCode(this)\n\n internal companion object {\n internal fun unorderedHashCode(c: Collection<*>): Int {\n var hashCode = 0\n for (element in c) {\n hashCode += (element?.hashCode() ?: 0)\n }\n return hashCode\n }\n\n internal fun setEquals(c: Set<*>, other: Set<*>): Boolean {\n if (c.size != other.size) return false\n return c.containsAll(other)\n }\n }\n\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"ArraysKt\")\n\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\n\n/**\n * Returns a single list of all elements from all arrays in the given array.\n * @sample samples.collections.Arrays.Transformations.flattenArray\n */\npublic fun Array>.flatten(): List {\n val result = ArrayList(sumBy { it.size })\n for (element in this) {\n result.addAll(element)\n }\n return result\n}\n\n/**\n * Returns a pair of lists, where\n * *first* list is built from the first values of each pair from this array,\n * *second* list is built from the second values of each pair from this array.\n * @sample samples.collections.Arrays.Transformations.unzipArray\n */\npublic fun Array>.unzip(): Pair, List> {\n val listT = ArrayList(size)\n val listR = ArrayList(size)\n for (pair in this) {\n listT.add(pair.first)\n listR.add(pair.second)\n }\n return listT to listR\n}\n\n/**\n * Returns `true` if this nullable array is either null or empty.\n * @sample samples.collections.Arrays.Usage.arrayIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Array<*>?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.isEmpty()\n}\n\n/**\n * Returns this array if it's not empty\n * or the result of calling [defaultValue] function if the array is empty.\n *\n * @sample samples.collections.Arrays.Usage.arrayIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"UPPER_BOUND_CANNOT_BE_ARRAY\")\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : Array<*>, C : R =\n if (isEmpty()) defaultValue() else this\n\n\n@UseExperimental(ExperimentalUnsignedTypes::class)\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@kotlin.jvm.JvmName(\"contentDeepEquals\")\n@kotlin.js.JsName(\"contentDeepEqualsImpl\")\ninternal fun Array.contentDeepEqualsImpl(other: Array): Boolean {\n if (this === other) return true\n if (this.size != other.size) return false\n\n for (i in indices) {\n val v1 = this[i]\n val v2 = other[i]\n\n if (v1 === v2) {\n continue\n } else if (v1 == null || v2 == null) {\n return false\n }\n\n when {\n v1 is Array<*> && v2 is Array<*> -> if (!v1.contentDeepEquals(v2)) return false\n v1 is ByteArray && v2 is ByteArray -> if (!v1.contentEquals(v2)) return false\n v1 is ShortArray && v2 is ShortArray -> if (!v1.contentEquals(v2)) return false\n v1 is IntArray && v2 is IntArray -> if (!v1.contentEquals(v2)) return false\n v1 is LongArray && v2 is LongArray -> if (!v1.contentEquals(v2)) return false\n v1 is FloatArray && v2 is FloatArray -> if (!v1.contentEquals(v2)) return false\n v1 is DoubleArray && v2 is DoubleArray -> if (!v1.contentEquals(v2)) return false\n v1 is CharArray && v2 is CharArray -> if (!v1.contentEquals(v2)) return false\n v1 is BooleanArray && v2 is BooleanArray -> if (!v1.contentEquals(v2)) return false\n\n v1 is UByteArray && v2 is UByteArray -> if (!v1.contentEquals(v2)) return false\n v1 is UShortArray && v2 is UShortArray -> if (!v1.contentEquals(v2)) return false\n v1 is UIntArray && v2 is UIntArray -> if (!v1.contentEquals(v2)) return false\n v1 is ULongArray && v2 is ULongArray -> if (!v1.contentEquals(v2)) return false\n\n else -> if (v1 != v2) return false\n }\n\n }\n return true\n}\n\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@kotlin.jvm.JvmName(\"contentDeepToString\")\n@kotlin.js.JsName(\"contentDeepToStringImpl\")\ninternal fun Array.contentDeepToStringImpl(): String {\n val length = size.coerceAtMost((Int.MAX_VALUE - 2) / 5) * 5 + 2 // in order not to overflow Int.MAX_VALUE\n return buildString(length) {\n contentDeepToStringInternal(this, mutableListOf())\n }\n}\n\n@UseExperimental(ExperimentalUnsignedTypes::class)\nprivate fun Array.contentDeepToStringInternal(result: StringBuilder, processed: MutableList>) {\n if (this in processed) {\n result.append(\"[...]\")\n return\n }\n processed.add(this)\n result.append('[')\n\n for (i in indices) {\n if (i != 0) {\n result.append(\", \")\n }\n val element = this[i]\n when (element) {\n null -> result.append(\"null\")\n is Array<*> -> element.contentDeepToStringInternal(result, processed)\n is ByteArray -> result.append(element.contentToString())\n is ShortArray -> result.append(element.contentToString())\n is IntArray -> result.append(element.contentToString())\n is LongArray -> result.append(element.contentToString())\n is FloatArray -> result.append(element.contentToString())\n is DoubleArray -> result.append(element.contentToString())\n is CharArray -> result.append(element.contentToString())\n is BooleanArray -> result.append(element.contentToString())\n\n is UByteArray -> result.append(element.contentToString())\n is UShortArray -> result.append(element.contentToString())\n is UIntArray -> result.append(element.contentToString())\n is ULongArray -> result.append(element.contentToString())\n\n else -> result.append(element.toString())\n }\n }\n\n result.append(']')\n processed.removeAt(processed.lastIndex)\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n/**\n * Data class representing a value from a collection or sequence, along with its index in that collection or sequence.\n *\n * @property value the underlying value.\n * @property index the index of the value in the collection or sequence.\n */\npublic data class IndexedValue(public val index: Int, public val value: T)\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"MapAccessorsKt\")\n\npackage kotlin.collections\n\nimport kotlin.reflect.KProperty\nimport kotlin.internal.Exact\n\n/**\n * Returns the value of the property for the given object from this read-only map.\n * @param thisRef the object for which the value is requested (not used).\n * @param property the metadata for the property, used to get the name of property and lookup the value corresponding to this name in the map.\n * @return the property value.\n *\n * @throws NoSuchElementException when the map doesn't contain value for the property name and doesn't provide an implicit default (see [withDefault]).\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.getValue(thisRef: Any?, property: KProperty<*>): V1 =\n @Suppress(\"UNCHECKED_CAST\") (getOrImplicitDefault(property.name) as V1)\n\n/**\n * Returns the value of the property for the given object from this mutable map.\n * @param thisRef the object for which the value is requested (not used).\n * @param property the metadata for the property, used to get the name of property and lookup the value corresponding to this name in the map.\n * @return the property value.\n *\n * @throws NoSuchElementException when the map doesn't contain value for the property name and doesn't provide an implicit default (see [withDefault]).\n */\n@kotlin.jvm.JvmName(\"getVar\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.getValue(thisRef: Any?, property: KProperty<*>): V1 =\n @Suppress(\"UNCHECKED_CAST\") (getOrImplicitDefault(property.name) as V1)\n\n@Deprecated(\"Use getValue() with two type parameters instead\", level = DeprecationLevel.ERROR)\n@kotlin.jvm.JvmName(\"getVarContravariant\")\n@kotlin.internal.LowPriorityInOverloadResolution\n@kotlin.internal.InlineOnly\npublic inline fun MutableMap.getValue(thisRef: Any?, property: KProperty<*>): V =\n @Suppress(\"UNCHECKED_CAST\") (getOrImplicitDefault(property.name) as V)\n\n/**\n * Stores the value of the property for the given object in this mutable map.\n * @param thisRef the object for which the value is requested (not used).\n * @param property the metadata for the property, used to get the name of property and store the value associated with that name in the map.\n * @param value the value to set.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.setValue(thisRef: Any?, property: KProperty<*>, value: V) {\n this.put(property.name, value)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MapsKt\")\n\npackage kotlin.collections\n\n/**\n * Returns the value for the given key, or the implicit default value for this map.\n * By default no implicit value is provided for maps and a [NoSuchElementException] is thrown.\n * To create a map with implicit default value use [withDefault] method.\n *\n * @throws NoSuchElementException when the map doesn't contain a value for the specified key and no implicit default was provided for that map.\n */\n@kotlin.jvm.JvmName(\"getOrImplicitDefaultNullable\")\n@PublishedApi\ninternal fun Map.getOrImplicitDefault(key: K): V {\n if (this is MapWithDefault)\n return this.getOrImplicitDefault(key)\n\n return getOrElseNullable(key, { throw NoSuchElementException(\"Key $key is missing in the map.\") })\n}\n\n/**\n * Returns a wrapper of this read-only map, having the implicit default value provided with the specified function [defaultValue].\n *\n * This implicit default value is used when the original map doesn't contain a value for the key specified\n * and a value is obtained with [Map.getValue] function, for example when properties are delegated to the map.\n *\n * When this map already has an implicit default value provided with a former call to [withDefault], it is being replaced by this call.\n */\npublic fun Map.withDefault(defaultValue: (key: K) -> V): Map =\n when (this) {\n is MapWithDefault -> this.map.withDefault(defaultValue)\n else -> MapWithDefaultImpl(this, defaultValue)\n }\n\n/**\n * Returns a wrapper of this mutable map, having the implicit default value provided with the specified function [defaultValue].\n *\n * This implicit default value is used when the original map doesn't contain a value for the key specified\n * and a value is obtained with [Map.getValue] function, for example when properties are delegated to the map.\n *\n * When this map already has an implicit default value provided with a former call to [withDefault], it is being replaced by this call.\n */\n@kotlin.jvm.JvmName(\"withDefaultMutable\")\npublic fun MutableMap.withDefault(defaultValue: (key: K) -> V): MutableMap =\n when (this) {\n is MutableMapWithDefault -> this.map.withDefault(defaultValue)\n else -> MutableMapWithDefaultImpl(this, defaultValue)\n }\n\n\nprivate interface MapWithDefault : Map {\n public val map: Map\n public fun getOrImplicitDefault(key: K): V\n}\n\nprivate interface MutableMapWithDefault : MutableMap, MapWithDefault {\n public override val map: MutableMap\n}\n\n\nprivate class MapWithDefaultImpl(public override val map: Map, private val default: (key: K) -> V) : MapWithDefault {\n override fun equals(other: Any?): Boolean = map.equals(other)\n override fun hashCode(): Int = map.hashCode()\n override fun toString(): String = map.toString()\n override val size: Int get() = map.size\n override fun isEmpty(): Boolean = map.isEmpty()\n override fun containsKey(key: K): Boolean = map.containsKey(key)\n override fun containsValue(value: @UnsafeVariance V): Boolean = map.containsValue(value)\n override fun get(key: K): V? = map.get(key)\n override val keys: Set get() = map.keys\n override val values: Collection get() = map.values\n override val entries: Set> get() = map.entries\n\n override fun getOrImplicitDefault(key: K): V = map.getOrElseNullable(key, { default(key) })\n}\n\nprivate class MutableMapWithDefaultImpl(public override val map: MutableMap, private val default: (key: K) -> V) : MutableMapWithDefault {\n override fun equals(other: Any?): Boolean = map.equals(other)\n override fun hashCode(): Int = map.hashCode()\n override fun toString(): String = map.toString()\n override val size: Int get() = map.size\n override fun isEmpty(): Boolean = map.isEmpty()\n override fun containsKey(key: K): Boolean = map.containsKey(key)\n override fun containsValue(value: @UnsafeVariance V): Boolean = map.containsValue(value)\n override fun get(key: K): V? = map.get(key)\n override val keys: MutableSet get() = map.keys\n override val values: MutableCollection get() = map.values\n override val entries: MutableSet> get() = map.entries\n\n override fun put(key: K, value: V): V? = map.put(key, value)\n override fun remove(key: K): V? = map.remove(key)\n override fun putAll(from: Map) = map.putAll(from)\n override fun clear() = map.clear()\n\n override fun getOrImplicitDefault(key: K): V = map.getOrElseNullable(key, { default(key) })\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\nimport kotlin.random.Random\n\n/**\n * Removes a single instance of the specified element from this\n * collection, if it is present.\n *\n * Allows to overcome type-safety restriction of `remove` that requires to pass an element of type `E`.\n *\n * @return `true` if the element has been successfully removed; `false` if it was not present in the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.remove(element: T): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).remove(element)\n\n/**\n * Removes all of this collection's elements that are also contained in the specified collection.\n\n * Allows to overcome type-safety restriction of `removeAll` that requires to pass a collection of type `Collection`.\n *\n * @return `true` if any of the specified elements was removed from the collection, `false` if the collection was not modified.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.removeAll(elements: Collection): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).removeAll(elements)\n\n/**\n * Retains only the elements in this collection that are contained in the specified collection.\n *\n * Allows to overcome type-safety restriction of `retainAll` that requires to pass a collection of type `Collection`.\n *\n * @return `true` if any element was removed from the collection, `false` if the collection was not modified.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.retainAll(elements: Collection): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).retainAll(elements)\n\n/**\n * Removes the element at the specified [index] from this list.\n * In Kotlin one should use the [MutableList.removeAt] function instead.\n */\n@Deprecated(\"Use removeAt(index) instead.\", ReplaceWith(\"removeAt(index)\"), level = DeprecationLevel.ERROR)\n@kotlin.internal.InlineOnly\npublic inline fun MutableList.remove(index: Int): T = removeAt(index)\n\n/**\n * Adds the specified [element] to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(element: T) {\n this.add(element)\n}\n\n/**\n * Adds all elements of the given [elements] collection to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Iterable) {\n this.addAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] array to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Array) {\n this.addAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] sequence to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Sequence) {\n this.addAll(elements)\n}\n\n/**\n * Removes a single instance of the specified [element] from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(element: T) {\n this.remove(element)\n}\n\n/**\n * Removes all elements contained in the given [elements] collection from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Iterable) {\n this.removeAll(elements)\n}\n\n/**\n * Removes all elements contained in the given [elements] array from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Array) {\n this.removeAll(elements)\n}\n\n/**\n * Removes all elements contained in the given [elements] sequence from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Sequence) {\n this.removeAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] collection to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Iterable): Boolean {\n when (elements) {\n is Collection -> return addAll(elements)\n else -> {\n var result: Boolean = false\n for (item in elements)\n if (add(item)) result = true\n return result\n }\n }\n}\n\n/**\n * Adds all elements of the given [elements] sequence to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Sequence): Boolean {\n var result: Boolean = false\n for (item in elements) {\n if (add(item)) result = true\n }\n return result\n}\n\n/**\n * Adds all elements of the given [elements] array to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Array): Boolean {\n return addAll(elements.asList())\n}\n\n/**\n * Removes all elements from this [MutableIterable] that match the given [predicate].\n */\npublic fun MutableIterable.removeAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, true)\n\n/**\n * Retains only elements of this [MutableIterable] that match the given [predicate].\n */\npublic fun MutableIterable.retainAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, false)\n\nprivate fun MutableIterable.filterInPlace(predicate: (T) -> Boolean, predicateResultToRemove: Boolean): Boolean {\n var result = false\n with(iterator()) {\n while (hasNext())\n if (predicate(next()) == predicateResultToRemove) {\n remove()\n result = true\n }\n }\n return result\n}\n\n/**\n * Removes all elements from this [MutableList] that match the given [predicate].\n */\npublic fun MutableList.removeAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, true)\n\n/**\n * Retains only elements of this [MutableList] that match the given [predicate].\n */\npublic fun MutableList.retainAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, false)\n\nprivate fun MutableList.filterInPlace(predicate: (T) -> Boolean, predicateResultToRemove: Boolean): Boolean {\n if (this !is RandomAccess)\n return (this as MutableIterable).filterInPlace(predicate, predicateResultToRemove)\n\n var writeIndex: Int = 0\n for (readIndex in 0..lastIndex) {\n val element = this[readIndex]\n if (predicate(element) == predicateResultToRemove)\n continue\n\n if (writeIndex != readIndex)\n this[writeIndex] = element\n\n writeIndex++\n }\n if (writeIndex < size) {\n for (removeIndex in lastIndex downTo writeIndex)\n removeAt(removeIndex)\n\n return true\n } else {\n return false\n }\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] collection.\n */\npublic fun MutableCollection.removeAll(elements: Iterable): Boolean {\n return removeAll(elements.convertToSetForSetOperationWith(this))\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] sequence.\n */\npublic fun MutableCollection.removeAll(elements: Sequence): Boolean {\n val set = elements.toHashSet()\n return set.isNotEmpty() && removeAll(set)\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] array.\n */\npublic fun MutableCollection.removeAll(elements: Array): Boolean {\n return elements.isNotEmpty() && removeAll(elements.toHashSet())\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] collection.\n */\npublic fun MutableCollection.retainAll(elements: Iterable): Boolean {\n return retainAll(elements.convertToSetForSetOperationWith(this))\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] array.\n */\npublic fun MutableCollection.retainAll(elements: Array): Boolean {\n if (elements.isNotEmpty())\n return retainAll(elements.toHashSet())\n else\n return retainNothing()\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] sequence.\n */\npublic fun MutableCollection.retainAll(elements: Sequence): Boolean {\n val set = elements.toHashSet()\n if (set.isNotEmpty())\n return retainAll(set)\n else\n return retainNothing()\n}\n\nprivate fun MutableCollection<*>.retainNothing(): Boolean {\n val result = isNotEmpty()\n clear()\n return result\n}\n\n/**\n * Randomly shuffles elements in this mutable list using the specified [random] instance as the source of randomness.\n *\n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.3\")\npublic fun MutableList.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Returns a new list with the elements of this list randomly shuffled\n * using the specified [random] instance as the source of randomness.\n */\n@SinceKotlin(\"1.3\")\npublic fun Iterable.shuffled(random: Random): List = toMutableList().apply { shuffle(random) }\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\nprivate open class ReversedListReadOnly(private val delegate: List) : AbstractList() {\n override val size: Int get() = delegate.size\n override fun get(index: Int): T = delegate[reverseElementIndex(index)]\n}\n\nprivate class ReversedList(private val delegate: MutableList) : AbstractMutableList() {\n override val size: Int get() = delegate.size\n override fun get(index: Int): T = delegate[reverseElementIndex(index)]\n\n override fun clear() = delegate.clear()\n override fun removeAt(index: Int): T = delegate.removeAt(reverseElementIndex(index))\n\n override fun set(index: Int, element: T): T = delegate.set(reverseElementIndex(index), element)\n override fun add(index: Int, element: T) {\n delegate.add(reversePositionIndex(index), element)\n }\n}\n\nprivate fun List<*>.reverseElementIndex(index: Int) =\n if (index in 0..lastIndex) lastIndex - index else throw IndexOutOfBoundsException(\"Element index $index must be in range [${0..lastIndex}].\")\n\nprivate fun List<*>.reversePositionIndex(index: Int) =\n if (index in 0..size) size - index else throw IndexOutOfBoundsException(\"Position index $index must be in range [${0..size}].\")\n\n\n/**\n * Returns a reversed read-only view of the original List.\n * All changes made in the original list will be reflected in the reversed one.\n * @sample samples.collections.ReversedViews.asReversedList\n */\npublic fun List.asReversed(): List = ReversedListReadOnly(this)\n\n/**\n * Returns a reversed mutable view of the original mutable List.\n * All changes made in the original list will be reflected in the reversed one and vice versa.\n * @sample samples.collections.ReversedViews.asReversedMutableList\n */\n@kotlin.jvm.JvmName(\"asReversedMutable\")\npublic fun MutableList.asReversed(): MutableList = ReversedList(this)\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"SequencesKt\")\n@file:UseExperimental(ExperimentalTypeInference::class)\n\npackage kotlin.sequences\n\nimport kotlin.coroutines.*\nimport kotlin.coroutines.intrinsics.*\nimport kotlin.experimental.ExperimentalTypeInference\n\n/**\n * Builds a [Sequence] lazily yielding values one by one.\n *\n * @see kotlin.sequences.generateSequence\n *\n * @sample samples.collections.Sequences.Building.buildSequenceYieldAll\n * @sample samples.collections.Sequences.Building.buildFibonacciSequence\n */\n@SinceKotlin(\"1.3\")\npublic fun sequence(@BuilderInference block: suspend SequenceScope.() -> Unit): Sequence = Sequence { iterator(block) }\n\n@SinceKotlin(\"1.3\")\n@Deprecated(\"Use 'sequence { }' function instead.\", ReplaceWith(\"sequence(builderAction)\"), level = DeprecationLevel.ERROR)\n@kotlin.internal.InlineOnly\npublic inline fun buildSequence(@BuilderInference noinline builderAction: suspend SequenceScope.() -> Unit): Sequence = Sequence { iterator(builderAction) }\n\n/**\n * Builds an [Iterator] lazily yielding values one by one.\n *\n * @sample samples.collections.Sequences.Building.buildIterator\n * @sample samples.collections.Iterables.Building.iterable\n */\n@SinceKotlin(\"1.3\")\npublic fun iterator(@BuilderInference block: suspend SequenceScope.() -> Unit): Iterator {\n val iterator = SequenceBuilderIterator()\n iterator.nextStep = block.createCoroutineUnintercepted(receiver = iterator, completion = iterator)\n return iterator\n}\n\n@SinceKotlin(\"1.3\")\n@Deprecated(\"Use 'iterator { }' function instead.\", ReplaceWith(\"iterator(builderAction)\"), level = DeprecationLevel.ERROR)\n@kotlin.internal.InlineOnly\npublic inline fun buildIterator(@BuilderInference noinline builderAction: suspend SequenceScope.() -> Unit): Iterator = iterator(builderAction)\n\n/**\n * The scope for yielding values of a [Sequence] or an [Iterator], provides [yield] and [yieldAll] suspension functions.\n *\n * @see sequence\n * @see iterator\n *\n * @sample samples.collections.Sequences.Building.buildSequenceYieldAll\n * @sample samples.collections.Sequences.Building.buildFibonacciSequence\n */\n@RestrictsSuspension\n@SinceKotlin(\"1.3\")\npublic abstract class SequenceScope internal constructor() {\n /**\n * Yields a value to the [Iterator] being built and suspends\n * until the next value is requested.\n *\n * @sample samples.collections.Sequences.Building.buildSequenceYieldAll\n * @sample samples.collections.Sequences.Building.buildFibonacciSequence\n */\n public abstract suspend fun yield(value: T)\n\n /**\n * Yields all values from the `iterator` to the [Iterator] being built\n * and suspends until all these values are iterated and the next one is requested.\n *\n * The sequence of values returned by the given iterator can be potentially infinite.\n *\n * @sample samples.collections.Sequences.Building.buildSequenceYieldAll\n */\n public abstract suspend fun yieldAll(iterator: Iterator)\n\n /**\n * Yields a collections of values to the [Iterator] being built\n * and suspends until all these values are iterated and the next one is requested.\n *\n * @sample samples.collections.Sequences.Building.buildSequenceYieldAll\n */\n public suspend fun yieldAll(elements: Iterable) {\n if (elements is Collection && elements.isEmpty()) return\n return yieldAll(elements.iterator())\n }\n\n /**\n * Yields potentially infinite sequence of values to the [Iterator] being built\n * and suspends until all these values are iterated and the next one is requested.\n *\n * The sequence can be potentially infinite.\n *\n * @sample samples.collections.Sequences.Building.buildSequenceYieldAll\n */\n public suspend fun yieldAll(sequence: Sequence) = yieldAll(sequence.iterator())\n}\n\n@Deprecated(\"Use SequenceScope class instead.\", ReplaceWith(\"SequenceScope\"), level = DeprecationLevel.ERROR)\npublic typealias SequenceBuilder = SequenceScope\n\nprivate typealias State = Int\n\nprivate const val State_NotReady: State = 0\nprivate const val State_ManyNotReady: State = 1\nprivate const val State_ManyReady: State = 2\nprivate const val State_Ready: State = 3\nprivate const val State_Done: State = 4\nprivate const val State_Failed: State = 5\n\nprivate class SequenceBuilderIterator : SequenceScope(), Iterator, Continuation {\n private var state = State_NotReady\n private var nextValue: T? = null\n private var nextIterator: Iterator? = null\n var nextStep: Continuation? = null\n\n override fun hasNext(): Boolean {\n while (true) {\n when (state) {\n State_NotReady -> {}\n State_ManyNotReady ->\n if (nextIterator!!.hasNext()) {\n state = State_ManyReady\n return true\n } else {\n nextIterator = null\n }\n State_Done -> return false\n State_Ready, State_ManyReady -> return true\n else -> throw exceptionalState()\n }\n\n state = State_Failed\n val step = nextStep!!\n nextStep = null\n step.resume(Unit)\n }\n }\n\n override fun next(): T {\n when (state) {\n State_NotReady, State_ManyNotReady -> return nextNotReady()\n State_ManyReady -> {\n state = State_ManyNotReady\n return nextIterator!!.next()\n }\n State_Ready -> {\n state = State_NotReady\n @Suppress(\"UNCHECKED_CAST\")\n val result = nextValue as T\n nextValue = null\n return result\n }\n else -> throw exceptionalState()\n }\n }\n\n private fun nextNotReady(): T {\n if (!hasNext()) throw NoSuchElementException() else return next()\n }\n\n private fun exceptionalState(): Throwable = when (state) {\n State_Done -> NoSuchElementException()\n State_Failed -> IllegalStateException(\"Iterator has failed.\")\n else -> IllegalStateException(\"Unexpected state of the iterator: $state\")\n }\n\n\n override suspend fun yield(value: T) {\n nextValue = value\n state = State_Ready\n return suspendCoroutineUninterceptedOrReturn { c ->\n nextStep = c\n COROUTINE_SUSPENDED\n }\n }\n\n override suspend fun yieldAll(iterator: Iterator) {\n if (!iterator.hasNext()) return\n nextIterator = iterator\n state = State_ManyReady\n return suspendCoroutineUninterceptedOrReturn { c ->\n nextStep = c\n COROUTINE_SUSPENDED\n }\n }\n\n // Completion continuation implementation\n override fun resumeWith(result: Result) {\n result.getOrThrow() // just rethrow exception if it is there\n state = State_Done\n }\n\n override val context: CoroutineContext\n get() = EmptyCoroutineContext\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\ninternal fun checkWindowSizeStep(size: Int, step: Int) {\n require(size > 0 && step > 0) {\n if (size != step)\n \"Both size $size and step $step must be greater than zero.\"\n else\n \"size $size must be greater than zero.\"\n }\n}\n\ninternal fun Sequence.windowedSequence(size: Int, step: Int, partialWindows: Boolean, reuseBuffer: Boolean): Sequence> {\n checkWindowSizeStep(size, step)\n return Sequence { windowedIterator(iterator(), size, step, partialWindows, reuseBuffer) }\n}\n\ninternal fun windowedIterator(iterator: Iterator, size: Int, step: Int, partialWindows: Boolean, reuseBuffer: Boolean): Iterator> {\n if (!iterator.hasNext()) return EmptyIterator\n return iterator> {\n val gap = step - size\n if (gap >= 0) {\n var buffer = ArrayList(size)\n var skip = 0\n for (e in iterator) {\n if (skip > 0) { skip -= 1; continue }\n buffer.add(e)\n if (buffer.size == size) {\n yield(buffer)\n if (reuseBuffer) buffer.clear() else buffer = ArrayList(size)\n skip = gap\n }\n }\n if (buffer.isNotEmpty()) {\n if (partialWindows || buffer.size == size) yield(buffer)\n }\n } else {\n val buffer = RingBuffer(size)\n for (e in iterator) {\n buffer.add(e)\n if (buffer.isFull()) {\n yield(if (reuseBuffer) buffer else ArrayList(buffer))\n buffer.removeFirst(step)\n }\n }\n if (partialWindows) {\n while (buffer.size > step) {\n yield(if (reuseBuffer) buffer else ArrayList(buffer))\n buffer.removeFirst(step)\n }\n if (buffer.isNotEmpty()) yield(buffer)\n }\n }\n }\n}\n\ninternal class MovingSubList(private val list: List) : AbstractList(), RandomAccess {\n private var fromIndex: Int = 0\n private var _size: Int = 0\n\n fun move(fromIndex: Int, toIndex: Int) {\n checkRangeIndexes(fromIndex, toIndex, list.size)\n this.fromIndex = fromIndex\n this._size = toIndex - fromIndex\n }\n\n override fun get(index: Int): E {\n checkElementIndex(index, _size)\n\n return list[fromIndex + index]\n }\n\n override val size: Int get() = _size\n}\n\n\n/**\n * Provides ring buffer implementation.\n *\n * Buffer overflow is not allowed so [add] doesn't overwrite tail but raises an exception.\n */\nprivate class RingBuffer(val capacity: Int) : AbstractList(), RandomAccess {\n init {\n require(capacity >= 0) { \"ring buffer capacity should not be negative but it is $capacity\" }\n }\n\n private val buffer = arrayOfNulls(capacity)\n private var startIndex: Int = 0\n\n override var size: Int = 0\n private set\n\n override fun get(index: Int): T {\n checkElementIndex(index, size)\n @Suppress(\"UNCHECKED_CAST\")\n return buffer[startIndex.forward(index)] as T\n }\n\n fun isFull() = size == capacity\n\n override fun iterator(): Iterator = object : AbstractIterator() {\n private var count = size\n private var index = startIndex\n\n override fun computeNext() {\n if (count == 0) {\n done()\n } else {\n @Suppress(\"UNCHECKED_CAST\")\n setNext(buffer[index] as T)\n index = index.forward(1)\n count--\n }\n }\n }\n\n @Suppress(\"UNCHECKED_CAST\")\n override fun toArray(array: Array): Array {\n val result: Array =\n if (array.size < this.size) array.copyOf(this.size) else array as Array\n\n val size = this.size\n\n var widx = 0\n var idx = startIndex\n\n while (widx < size && idx < capacity) {\n result[widx] = buffer[idx] as T\n widx++\n idx++\n }\n\n idx = 0\n while (widx < size) {\n result[widx] = buffer[idx] as T\n widx++\n idx++\n }\n if (result.size > this.size) result[this.size] = null\n\n return result as Array\n }\n\n override fun toArray(): Array {\n return toArray(arrayOfNulls(size))\n }\n\n /**\n * Add [element] to the buffer or fail with [IllegalStateException] if no free space available in the buffer\n */\n fun add(element: T) {\n if (isFull()) {\n throw IllegalStateException(\"ring buffer is full\")\n }\n\n buffer[startIndex.forward(size)] = element\n size++\n }\n\n /**\n * Removes [n] first elements from the buffer or fails with [IllegalArgumentException] if not enough elements in the buffer to remove\n */\n fun removeFirst(n: Int) {\n require(n >= 0) { \"n shouldn't be negative but it is $n\" }\n require(n <= size) { \"n shouldn't be greater than the buffer size: n = $n, size = $size\" }\n\n if (n > 0) {\n val start = startIndex\n val end = start.forward(n)\n\n if (start > end) {\n buffer.fill(null, start, capacity)\n buffer.fill(null, 0, end)\n } else {\n buffer.fill(null, start, end)\n }\n\n startIndex = end\n size -= n\n }\n }\n\n\n @Suppress(\"NOTHING_TO_INLINE\")\n private inline fun Int.forward(n: Int): Int = (this + n) % capacity\n\n // TODO: replace with Array.fill from stdlib when available in common\n private fun Array.fill(element: T, fromIndex: Int = 0, toIndex: Int = size): Unit {\n for (idx in fromIndex until toIndex) {\n this[idx] = element\n }\n }\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n// UByteArray =============================================================================\n@ExperimentalUnsignedTypes\nprivate fun partition(\n array: UByteArray, left: Int, right: Int): Int {\n var i = left\n var j = right\n val pivot = array[(left + right) / 2]\n while (i <= j) {\n while (array[i] < pivot)\n i++\n while (array[j] > pivot)\n j--\n if (i <= j) {\n val tmp = array[i]\n array[i] = array[j]\n array[j] = tmp\n i++\n j--\n }\n }\n return i\n}\n\n@ExperimentalUnsignedTypes\nprivate fun quickSort(\n array: UByteArray, left: Int, right: Int) {\n val index = partition(array, left, right)\n if (left < index - 1)\n quickSort(array, left, index - 1)\n if (index < right)\n quickSort(array, index, right)\n}\n\n// UShortArray =============================================================================\n@ExperimentalUnsignedTypes\nprivate fun partition(\n array: UShortArray, left: Int, right: Int): Int {\n var i = left\n var j = right\n val pivot = array[(left + right) / 2]\n while (i <= j) {\n while (array[i] < pivot)\n i++\n while (array[j] > pivot)\n j--\n if (i <= j) {\n val tmp = array[i]\n array[i] = array[j]\n array[j] = tmp\n i++\n j--\n }\n }\n return i\n}\n\n@ExperimentalUnsignedTypes\nprivate fun quickSort(\n array: UShortArray, left: Int, right: Int) {\n val index = partition(array, left, right)\n if (left < index - 1)\n quickSort(array, left, index - 1)\n if (index < right)\n quickSort(array, index, right)\n}\n\n// UIntArray =============================================================================\n@ExperimentalUnsignedTypes\nprivate fun partition(\n array: UIntArray, left: Int, right: Int): Int {\n var i = left\n var j = right\n val pivot = array[(left + right) / 2]\n while (i <= j) {\n while (array[i] < pivot)\n i++\n while (array[j] > pivot)\n j--\n if (i <= j) {\n val tmp = array[i]\n array[i] = array[j]\n array[j] = tmp\n i++\n j--\n }\n }\n return i\n}\n\n@ExperimentalUnsignedTypes\nprivate fun quickSort(\n array: UIntArray, left: Int, right: Int) {\n val index = partition(array, left, right)\n if (left < index - 1)\n quickSort(array, left, index - 1)\n if (index < right)\n quickSort(array, index, right)\n}\n\n// ULongArray =============================================================================\n@ExperimentalUnsignedTypes\nprivate fun partition(\n array: ULongArray, left: Int, right: Int): Int {\n var i = left\n var j = right\n val pivot = array[(left + right) / 2]\n while (i <= j) {\n while (array[i] < pivot)\n i++\n while (array[j] > pivot)\n j--\n if (i <= j) {\n val tmp = array[i]\n array[i] = array[j]\n array[j] = tmp\n i++\n j--\n }\n }\n return i\n}\n\n@ExperimentalUnsignedTypes\nprivate fun quickSort(\n array: ULongArray, left: Int, right: Int) {\n val index = partition(array, left, right)\n if (left < index - 1)\n quickSort(array, left, index - 1)\n if (index < right)\n quickSort(array, index, right)\n}\n\n\n// Interfaces =============================================================================\n/**\n * Sorts the given array using qsort algorithm.\n */\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: UByteArray) = quickSort(array, 0, array.size - 1)\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: UShortArray) = quickSort(array, 0, array.size - 1)\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: UIntArray) = quickSort(array, 0, array.size - 1)\n@ExperimentalUnsignedTypes\ninternal fun sortArray(array: ULongArray) = quickSort(array, 0, array.size - 1)","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.contracts\n\nimport kotlin.internal.ContractsDsl\nimport kotlin.internal.InlineOnly\n\n/**\n * This marker distinguishes the experimental contract declaration API and is used to opt-in for that feature\n * when declaring contracts of user functions.\n *\n * Any usage of a declaration annotated with `@ExperimentalContracts` must be accepted either by\n * annotating that usage with the [UseExperimental] annotation, e.g. `@UseExperimental(ExperimentalContracts::class)`,\n * or by using the compiler argument `-Xuse-experimental=kotlin.contracts.ExperimentalContracts`.\n */\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.3\")\n@Experimental\n@MustBeDocumented\npublic annotation class ExperimentalContracts\n\n/**\n * Provides a scope, where the functions of the contract DSL, such as [returns], [callsInPlace], etc.,\n * can be used to describe the contract of a function.\n *\n * This type is used as a receiver type of the lambda function passed to the [contract] function.\n *\n * @see contract\n */\n@ContractsDsl\n@ExperimentalContracts\n@SinceKotlin(\"1.3\")\npublic interface ContractBuilder {\n /**\n * Describes a situation when a function returns normally, without any exceptions thrown.\n *\n * Use [SimpleEffect.implies] function to describe a conditional effect that happens in such case.\n *\n */\n // @sample samples.contracts.returnsContract\n @ContractsDsl public fun returns(): Returns\n\n /**\n * Describes a situation when a function returns normally with the specified return [value].\n *\n * The possible values of [value] are limited to `true`, `false` or `null`.\n *\n * Use [SimpleEffect.implies] function to describe a conditional effect that happens in such case.\n *\n */\n // @sample samples.contracts.returnsTrueContract\n // @sample samples.contracts.returnsFalseContract\n // @sample samples.contracts.returnsNullContract\n @ContractsDsl public fun returns(value: Any?): Returns\n\n /**\n * Describes a situation when a function returns normally with any value that is not `null`.\n *\n * Use [SimpleEffect.implies] function to describe a conditional effect that happens in such case.\n *\n */\n // @sample samples.contracts.returnsNotNullContract\n @ContractsDsl public fun returnsNotNull(): ReturnsNotNull\n\n /**\n * Specifies that the function parameter [lambda] is invoked in place.\n *\n * This contract specifies that:\n * 1. the function [lambda] can only be invoked during the call of the owner function,\n * and it won't be invoked after that owner function call is completed;\n * 2. _(optionally)_ the function [lambda] is invoked the amount of times specified by the [kind] parameter,\n * see the [InvocationKind] enum for possible values.\n *\n * A function declaring the `callsInPlace` effect must be _inline_.\n *\n */\n /* @sample samples.contracts.callsInPlaceAtMostOnceContract\n * @sample samples.contracts.callsInPlaceAtLeastOnceContract\n * @sample samples.contracts.callsInPlaceExactlyOnceContract\n * @sample samples.contracts.callsInPlaceUnknownContract\n */\n @ContractsDsl public fun callsInPlace(lambda: Function, kind: InvocationKind = InvocationKind.UNKNOWN): CallsInPlace\n}\n\n/**\n * Specifies how many times a function invokes its function parameter in place.\n *\n * See [ContractBuilder.callsInPlace] for the details of the call-in-place function contract.\n */\n@ContractsDsl\n@ExperimentalContracts\n@SinceKotlin(\"1.3\")\npublic enum class InvocationKind {\n /**\n * A function parameter will be invoked one time or not invoked at all.\n */\n // @sample samples.contracts.callsInPlaceAtMostOnceContract\n @ContractsDsl AT_MOST_ONCE,\n\n /**\n * A function parameter will be invoked one or more times.\n *\n */\n // @sample samples.contracts.callsInPlaceAtLeastOnceContract\n @ContractsDsl AT_LEAST_ONCE,\n\n /**\n * A function parameter will be invoked exactly one time.\n *\n */\n // @sample samples.contracts.callsInPlaceExactlyOnceContract\n @ContractsDsl EXACTLY_ONCE,\n\n /**\n * A function parameter is called in place, but it's unknown how many times it can be called.\n *\n */\n // @sample samples.contracts.callsInPlaceUnknownContract\n @ContractsDsl UNKNOWN\n}\n\n/**\n * Specifies the contract of a function.\n *\n * The contract description must be at the beginning of a function and have at least one effect.\n *\n * Only the top-level functions can have a contract for now.\n *\n * @param builder the lambda where the contract of a function is described with the help of the [ContractBuilder] members.\n *\n */\n/* @sample samples.contracts.returnsContract\n* @sample samples.contracts.returnsTrueContract\n* @sample samples.contracts.returnsFalseContract\n* @sample samples.contracts.returnsNullContract\n* @sample samples.contracts.returnsNotNullContract\n* @sample samples.contracts.callsInPlaceAtMostOnceContract\n* @sample samples.contracts.callsInPlaceAtLeastOnceContract\n* @sample samples.contracts.callsInPlaceExactlyOnceContract\n* @sample samples.contracts.callsInPlaceUnknownContract\n*/\n@ContractsDsl\n@ExperimentalContracts\n@InlineOnly\n@SinceKotlin(\"1.3\")\n@Suppress(\"UNUSED_PARAMETER\")\npublic inline fun contract(builder: ContractBuilder.() -> Unit) { }","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines\n\n/**\n * Marks coroutine context element that intercepts coroutine continuations.\n * The coroutines framework uses [ContinuationInterceptor.Key] to retrieve the interceptor and\n * intercepts all coroutine continuations with [interceptContinuation] invocations.\n */\n@SinceKotlin(\"1.3\")\npublic interface ContinuationInterceptor : CoroutineContext.Element {\n /**\n * The key that defines *the* context interceptor.\n */\n companion object Key : CoroutineContext.Key\n\n /**\n * Returns continuation that wraps the original [continuation], thus intercepting all resumptions.\n * This function is invoked by coroutines framework when needed and the resulting continuations are\n * cached internally per each instance of the original [continuation].\n *\n * This function may simply return original [continuation] if it does not want to intercept this particular continuation.\n *\n * When the original [continuation] completes, coroutine framework invokes [releaseInterceptedContinuation]\n * with the resulting continuation if it was intercepted, that is if `interceptContinuation` had previously\n * returned a different continuation instance.\n */\n public fun interceptContinuation(continuation: Continuation): Continuation\n\n /**\n * Invoked for the continuation instance returned by [interceptContinuation] when the original\n * continuation completes and will not be used anymore. This function is invoked only if [interceptContinuation]\n * had returned a different continuation instance from the one it was invoked with.\n *\n * Default implementation does nothing.\n *\n * @param continuation Continuation instance returned by this interceptor's [interceptContinuation] invocation.\n */\n public fun releaseInterceptedContinuation(continuation: Continuation<*>) {\n /* do nothing by default */\n }\n\n // Performance optimization for a singleton Key\n public override operator fun get(key: CoroutineContext.Key): E? =\n @Suppress(\"UNCHECKED_CAST\")\n if (key === Key) this as E else null\n\n // Performance optimization to a singleton Key\n public override fun minusKey(key: CoroutineContext.Key<*>): CoroutineContext =\n if (key === Key) EmptyCoroutineContext else this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines\n\n/**\n * Persistent context for the coroutine. It is an indexed set of [Element] instances.\n * An indexed set is a mix between a set and a map.\n * Every element in this set has a unique [Key].\n */\n@SinceKotlin(\"1.3\")\npublic interface CoroutineContext {\n /**\n * Returns the element with the given [key] from this context or `null`.\n */\n public operator fun get(key: Key): E?\n\n /**\n * Accumulates entries of this context starting with [initial] value and applying [operation]\n * from left to right to current accumulator value and each element of this context.\n */\n public fun fold(initial: R, operation: (R, Element) -> R): R\n\n /**\n * Returns a context containing elements from this context and elements from other [context].\n * The elements from this context with the same key as in the other one are dropped.\n */\n public operator fun plus(context: CoroutineContext): CoroutineContext =\n if (context === EmptyCoroutineContext) this else // fast path -- avoid lambda creation\n context.fold(this) { acc, element ->\n val removed = acc.minusKey(element.key)\n if (removed === EmptyCoroutineContext) element else {\n // make sure interceptor is always last in the context (and thus is fast to get when present)\n val interceptor = removed[ContinuationInterceptor]\n if (interceptor == null) CombinedContext(removed, element) else {\n val left = removed.minusKey(ContinuationInterceptor)\n if (left === EmptyCoroutineContext) CombinedContext(element, interceptor) else\n CombinedContext(CombinedContext(left, element), interceptor)\n }\n }\n }\n\n /**\n * Returns a context containing elements from this context, but without an element with\n * the specified [key].\n */\n public fun minusKey(key: Key<*>): CoroutineContext\n\n /**\n * Key for the elements of [CoroutineContext]. [E] is a type of element with this key.\n */\n public interface Key\n\n /**\n * An element of the [CoroutineContext]. An element of the coroutine context is a singleton context by itself.\n */\n public interface Element : CoroutineContext {\n /**\n * A key of this coroutine context element.\n */\n public val key: Key<*>\n\n public override operator fun get(key: Key): E? =\n @Suppress(\"UNCHECKED_CAST\")\n if (this.key == key) this as E else null\n\n public override fun fold(initial: R, operation: (R, Element) -> R): R =\n operation(initial, this)\n\n public override fun minusKey(key: Key<*>): CoroutineContext =\n if (this.key == key) EmptyCoroutineContext else this\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.coroutines\n\nimport kotlin.coroutines.CoroutineContext.*\nimport kotlin.io.Serializable\n\n/**\n * Base class for [CoroutineContext.Element] implementations.\n */\n@SinceKotlin(\"1.3\")\npublic abstract class AbstractCoroutineContextElement(public override val key: Key<*>) : Element\n\n/**\n * An empty coroutine context.\n */\n@SinceKotlin(\"1.3\")\npublic object EmptyCoroutineContext : CoroutineContext, Serializable {\n private const val serialVersionUID: Long = 0\n private fun readResolve(): Any = EmptyCoroutineContext\n\n public override fun get(key: Key): E? = null\n public override fun fold(initial: R, operation: (R, Element) -> R): R = initial\n public override fun plus(context: CoroutineContext): CoroutineContext = context\n public override fun minusKey(key: Key<*>): CoroutineContext = this\n public override fun hashCode(): Int = 0\n public override fun toString(): String = \"EmptyCoroutineContext\"\n}\n\n//--------------------- internal impl ---------------------\n\n// this class is not exposed, but is hidden inside implementations\n// this is a left-biased list, so that `plus` works naturally\n@SinceKotlin(\"1.3\")\ninternal class CombinedContext(\n private val left: CoroutineContext,\n private val element: Element\n) : CoroutineContext, Serializable {\n\n override fun get(key: Key): E? {\n var cur = this\n while (true) {\n cur.element[key]?.let { return it }\n val next = cur.left\n if (next is CombinedContext) {\n cur = next\n } else {\n return next[key]\n }\n }\n }\n\n public override fun fold(initial: R, operation: (R, Element) -> R): R =\n operation(left.fold(initial, operation), element)\n\n public override fun minusKey(key: Key<*>): CoroutineContext {\n element[key]?.let { return left }\n val newLeft = left.minusKey(key)\n return when {\n newLeft === left -> this\n newLeft === EmptyCoroutineContext -> element\n else -> CombinedContext(newLeft, element)\n }\n }\n\n private fun size(): Int {\n var cur = this\n var size = 2\n while (true) {\n cur = cur.left as? CombinedContext ?: return size\n size++\n }\n }\n\n private fun contains(element: Element): Boolean =\n get(element.key) == element\n\n private fun containsAll(context: CombinedContext): Boolean {\n var cur = context\n while (true) {\n if (!contains(cur.element)) return false\n val next = cur.left\n if (next is CombinedContext) {\n cur = next\n } else {\n return contains(next as Element)\n }\n }\n }\n\n override fun equals(other: Any?): Boolean =\n this === other || other is CombinedContext && other.size() == size() && other.containsAll(this)\n\n override fun hashCode(): Int = left.hashCode() + element.hashCode()\n\n override fun toString(): String =\n \"[\" + fold(\"\") { acc, element ->\n if (acc.isEmpty()) element.toString() else \"$acc, $element\"\n } + \"]\"\n\n private fun writeReplace(): Any {\n val n = size()\n val elements = arrayOfNulls(n)\n var index = 0\n fold(Unit) { _, element -> elements[index++] = element }\n check(index == n)\n @Suppress(\"UNCHECKED_CAST\")\n return Serialized(elements as Array)\n }\n\n private class Serialized(val elements: Array) : Serializable {\n companion object {\n private const val serialVersionUID: Long = 0L\n }\n\n private fun readResolve(): Any = elements.fold(EmptyCoroutineContext, CoroutineContext::plus)\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"IntrinsicsKt\")\n@file:kotlin.jvm.JvmMultifileClass\n\npackage kotlin.coroutines.intrinsics\n\nimport kotlin.coroutines.*\nimport kotlin.internal.InlineOnly\n\n/**\n * Obtains the current continuation instance inside suspend functions and either suspends\n * currently running coroutine or returns result immediately without suspension.\n *\n * If the [block] returns the special [COROUTINE_SUSPENDED] value, it means that suspend function did suspend the execution and will\n * not return any result immediately. In this case, the [Continuation] provided to the [block] shall be\n * resumed by invoking [Continuation.resumeWith] at some moment in the\n * future when the result becomes available to resume the computation.\n *\n * Otherwise, the return value of the [block] must have a type assignable to [T] and represents the result of this suspend function.\n * It means that the execution was not suspended and the [Continuation] provided to the [block] shall not be invoked.\n * As the result type of the [block] is declared as `Any?` and cannot be correctly type-checked,\n * its proper return type remains on the conscience of the suspend function's author.\n *\n * Invocation of [Continuation.resumeWith] resumes coroutine directly in the invoker's thread without going through the\n * [ContinuationInterceptor] that might be present in the coroutine's [CoroutineContext].\n * It is the invoker's responsibility to ensure that a proper invocation context is established.\n * [Continuation.intercepted] can be used to acquire the intercepted continuation.\n *\n * Note that it is not recommended to call either [Continuation.resume] nor [Continuation.resumeWithException] functions synchronously\n * in the same stackframe where suspension function is run. Use [suspendCoroutine] as a safer way to obtain current\n * continuation instance.\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\n@Suppress(\"UNUSED_PARAMETER\", \"RedundantSuspendModifier\")\npublic suspend inline fun suspendCoroutineUninterceptedOrReturn(crossinline block: (Continuation) -> Any?): T =\n throw NotImplementedError(\"Implementation of suspendCoroutineUninterceptedOrReturn is intrinsic\")\n\n/**\n * This value is used as a return value of [suspendCoroutineUninterceptedOrReturn] `block` argument to state that\n * the execution was suspended and will not return any result immediately.\n *\n * **Note: this value should not be used in general code.** Using it outside of the context of\n * `suspendCoroutineUninterceptedOrReturn` function return value (including, but not limited to,\n * storing this value in other properties, returning it from other functions, etc)\n * can lead to unspecified behavior of the code.\n */\n// It is implemented as property with getter to avoid ProGuard problem with multifile IntrinsicsKt class\n@SinceKotlin(\"1.3\")\npublic val COROUTINE_SUSPENDED: Any get() = CoroutineSingletons.COROUTINE_SUSPENDED\n\n// Using enum here ensures two important properties:\n// 1. It makes SafeContinuation serializable with all kinds of serialization frameworks (since all of them natively support enums)\n// 2. It improves debugging experience, since you clearly see toString() value of those objects and what package they come from\n@SinceKotlin(\"1.3\")\n@PublishedApi // This class is Published API via serialized representation of SafeContinuation, don't rename/move\ninternal enum class CoroutineSingletons { COROUTINE_SUSPENDED, UNDECIDED, RESUMED }\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.experimental\n\n/** Performs a bitwise AND operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Byte.and(other: Byte): Byte = (this.toInt() and other.toInt()).toByte()\n\n/** Performs a bitwise OR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Byte.or(other: Byte): Byte = (this.toInt() or other.toInt()).toByte()\n\n/** Performs a bitwise XOR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Byte.xor(other: Byte): Byte = (this.toInt() xor other.toInt()).toByte()\n\n/** Inverts the bits in this value. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun Byte.inv(): Byte = (this.toInt().inv()).toByte()\n\n\n/** Performs a bitwise AND operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Short.and(other: Short): Short = (this.toInt() and other.toInt()).toShort()\n\n/** Performs a bitwise OR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Short.or(other: Short): Short = (this.toInt() or other.toInt()).toShort()\n\n/** Performs a bitwise XOR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Short.xor(other: Short): Short = (this.toInt() xor other.toInt()).toShort()\n\n/** Inverts the bits in this value. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun Short.inv(): Short = (this.toInt().inv()).toShort()\n\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.experimental\n\n/**\n * The experimental marker for type inference augmenting annotations.\n *\n * Any usage of a declaration annotated with `@ExperimentalTypeInference` must be accepted either by\n * annotating that usage with the [UseExperimental] annotation, e.g. `@UseExperimental(ExperimentalTypeInference::class)`,\n * or by using the compiler argument `-Xuse-experimental=kotlin.experimental.ExperimentalTypeInference`.\n */\n@Experimental(level = Experimental.Level.ERROR)\n@MustBeDocumented\n@Retention(AnnotationRetention.BINARY)\n@Target(AnnotationTarget.ANNOTATION_CLASS)\n@SinceKotlin(\"1.3\")\npublic annotation class ExperimentalTypeInference\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.internal\n\n/**\n * Specifies that the corresponding type should be ignored during type inference.\n */\n@Target(AnnotationTarget.TYPE)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class NoInfer\n\n/**\n * Specifies that the constraint built for the type during type inference should be an equality one.\n */\n@Target(AnnotationTarget.TYPE)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class Exact\n\n/**\n * Specifies that a corresponding member has the lowest priority in overload resolution.\n */\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class LowPriorityInOverloadResolution\n\n/**\n * Specifies that the corresponding member has the highest priority in overload resolution. Effectively this means that\n * an extension annotated with this annotation will win in overload resolution over a member with the same signature.\n */\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class HidesMembers\n\n/**\n * The value of this type parameter should be mentioned in input types (argument types, receiver type or expected type).\n */\n@Target(AnnotationTarget.TYPE_PARAMETER)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class OnlyInputTypes\n\n/**\n * Specifies that this function should not be called directly without inlining\n */\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class InlineOnly\n\n/**\n * Specifies that this declaration can have dynamic receiver type.\n */\n@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY)\n@Retention(AnnotationRetention.BINARY)\ninternal annotation class DynamicExtension\n\n/**\n * The value of this parameter should be a property reference expression (`this::foo`), referencing a `lateinit` property,\n * the backing field of which is accessible at the point where the corresponding argument is passed.\n */\n@Target(AnnotationTarget.VALUE_PARAMETER)\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.2\")\ninternal annotation class AccessibleLateinitPropertyLiteral\n\n/**\n * Specifies that this declaration is only completely supported since the specified version.\n *\n * The Kotlin compiler of an earlier version is going to report a diagnostic on usages of this declaration.\n * The diagnostic message can be specified with [message], or via [errorCode] (takes less space, but might not be immediately clear\n * to the user). The diagnostic severity can be specified with [level]: WARNING/ERROR mean that either a warning or an error\n * is going to be reported, HIDDEN means that the declaration is going to be removed from resolution completely.\n *\n * [versionKind] specifies which version should be compared with the [version] value, when compiling the usage of the annotated declaration.\n * Note that prior to 1.2, only [RequireKotlinVersionKind.LANGUAGE_VERSION] was supported, so the Kotlin compiler before 1.2 is going to\n * treat any [RequireKotlin] as if it requires the language version. Since 1.2, the Kotlin compiler supports\n * [RequireKotlinVersionKind.LANGUAGE_VERSION], [RequireKotlinVersionKind.COMPILER_VERSION] and [RequireKotlinVersionKind.API_VERSION].\n * If the actual value of [versionKind] is something different (e.g. a new version kind, added in future versions of Kotlin),\n * Kotlin 1.2 is going to ignore this [RequireKotlin] altogether, where as Kotlin before 1.2 is going to treat this as a requirement\n * on the language version.\n *\n * This annotation is erased at compile time; its arguments are stored in a more compact form in the Kotlin metadata.\n */\n@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.TYPEALIAS)\n@Retention(AnnotationRetention.SOURCE)\n@Repeatable\n@SinceKotlin(\"1.2\")\ninternal annotation class RequireKotlin(\n val version: String,\n val message: String = \"\",\n val level: DeprecationLevel = DeprecationLevel.ERROR,\n val versionKind: RequireKotlinVersionKind = RequireKotlinVersionKind.LANGUAGE_VERSION,\n val errorCode: Int = -1\n)\n\n/**\n * The kind of the version that is required by [RequireKotlin].\n */\n@SinceKotlin(\"1.2\")\ninternal enum class RequireKotlinVersionKind {\n LANGUAGE_VERSION,\n COMPILER_VERSION,\n API_VERSION,\n}\n\n/**\n * Specifies that this declaration is a part of special DSL, used for constructing function's contract.\n */\n@Retention(AnnotationRetention.BINARY)\n@SinceKotlin(\"1.2\")\ninternal annotation class ContractsDsl\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.properties\n\nimport kotlin.reflect.KProperty\n\n/**\n * Standard property delegates.\n */\npublic object Delegates {\n /**\n * Returns a property delegate for a read/write property with a non-`null` value that is initialized not during\n * object construction time but at a later time. Trying to read the property before the initial value has been\n * assigned results in an exception.\n *\n * @sample samples.properties.Delegates.notNullDelegate\n */\n public fun notNull(): ReadWriteProperty = NotNullVar()\n\n /**\n * Returns a property delegate for a read/write property that calls a specified callback function when changed.\n * @param initialValue the initial value of the property.\n * @param onChange the callback which is called after the change of the property is made. The value of the property\n * has already been changed when this callback is invoked.\n *\n * @sample samples.properties.Delegates.observableDelegate\n */\n public inline fun observable(initialValue: T, crossinline onChange: (property: KProperty<*>, oldValue: T, newValue: T) -> Unit):\n ReadWriteProperty =\n object : ObservableProperty(initialValue) {\n override fun afterChange(property: KProperty<*>, oldValue: T, newValue: T) = onChange(property, oldValue, newValue)\n }\n\n /**\n * Returns a property delegate for a read/write property that calls a specified callback function when changed,\n * allowing the callback to veto the modification.\n * @param initialValue the initial value of the property.\n * @param onChange the callback which is called before a change to the property value is attempted.\n * The value of the property hasn't been changed yet, when this callback is invoked.\n * If the callback returns `true` the value of the property is being set to the new value,\n * and if the callback returns `false` the new value is discarded and the property remains its old value.\n *\n * @sample samples.properties.Delegates.vetoableDelegate\n * @sample samples.properties.Delegates.throwVetoableDelegate\n */\n public inline fun vetoable(initialValue: T, crossinline onChange: (property: KProperty<*>, oldValue: T, newValue: T) -> Boolean):\n ReadWriteProperty =\n object : ObservableProperty(initialValue) {\n override fun beforeChange(property: KProperty<*>, oldValue: T, newValue: T): Boolean = onChange(property, oldValue, newValue)\n }\n\n}\n\n\nprivate class NotNullVar() : ReadWriteProperty {\n private var value: T? = null\n\n public override fun getValue(thisRef: Any?, property: KProperty<*>): T {\n return value ?: throw IllegalStateException(\"Property ${property.name} should be initialized before get.\")\n }\n\n public override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {\n this.value = value\n }\n}\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.properties\n\nimport kotlin.reflect.KProperty\n\n/**\n * Implements the core logic of a property delegate for a read/write property that calls callback functions when changed.\n * @param initialValue the initial value of the property.\n */\npublic abstract class ObservableProperty(initialValue: T) : ReadWriteProperty {\n private var value = initialValue\n\n /**\n * The callback which is called before a change to the property value is attempted.\n * The value of the property hasn't been changed yet, when this callback is invoked.\n * If the callback returns `true` the value of the property is being set to the new value,\n * and if the callback returns `false` the new value is discarded and the property remains its old value.\n */\n protected open fun beforeChange(property: KProperty<*>, oldValue: T, newValue: T): Boolean = true\n\n /**\n * The callback which is called after the change of the property is made. The value of the property\n * has already been changed when this callback is invoked.\n */\n protected open fun afterChange(property: KProperty<*>, oldValue: T, newValue: T): Unit {}\n\n public override fun getValue(thisRef: Any?, property: KProperty<*>): T {\n return value\n }\n\n public override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) {\n val oldValue = this.value\n if (!beforeChange(property, oldValue, value)) {\n return\n }\n this.value = value\n afterChange(property, oldValue, value)\n }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.random\n\nimport kotlin.math.nextDown\n\n/**\n * An abstract class that is implemented by random number generator algorithms.\n *\n * The companion object [Random.Default] is the default instance of [Random].\n *\n * To get a seeded instance of random generator use [Random] function.\n *\n * @sample samples.random.Randoms.defaultRandom\n */\n@SinceKotlin(\"1.3\")\npublic abstract class Random {\n\n /**\n * Gets the next random [bitCount] number of bits.\n *\n * Generates an `Int` whose lower [bitCount] bits are filled with random values and the remaining upper bits are zero.\n *\n * @param bitCount number of bits to generate, must be in range 0..32, otherwise the behavior is unspecified.\n */\n public abstract fun nextBits(bitCount: Int): Int\n\n /**\n * Gets the next random `Int` from the random number generator.\n *\n * Generates an `Int` random value uniformly distributed between `Int.MIN_VALUE` and `Int.MAX_VALUE` (inclusive).\n */\n public open fun nextInt(): Int = nextBits(32)\n\n /**\n * Gets the next random non-negative `Int` from the random number generator less than the specified [until] bound.\n *\n * Generates an `Int` random value uniformly distributed between `0` (inclusive) and the specified [until] bound (exclusive).\n *\n * @param until must be positive.\n *\n * @throws IllegalArgumentException if [until] is negative or zero.\n */\n public open fun nextInt(until: Int): Int = nextInt(0, until)\n\n /**\n * Gets the next random `Int` from the random number generator in the specified range.\n *\n * Generates an `Int` random value uniformly distributed between the specified [from] (inclusive) and [until] (exclusive) bounds.\n *\n * @throws IllegalArgumentException if [from] is greater than or equal to [until].\n */\n public open fun nextInt(from: Int, until: Int): Int {\n checkRangeBounds(from, until)\n val n = until - from\n if (n > 0 || n == Int.MIN_VALUE) {\n val rnd = if (n and -n == n) {\n val bitCount = fastLog2(n)\n nextBits(bitCount)\n } else {\n var v: Int\n do {\n val bits = nextInt().ushr(1)\n v = bits % n\n } while (bits - v + (n - 1) < 0)\n v\n }\n return from + rnd\n } else {\n while (true) {\n val rnd = nextInt()\n if (rnd in from until until) return rnd\n }\n }\n }\n\n /**\n * Gets the next random `Long` from the random number generator.\n *\n * Generates a `Long` random value uniformly distributed between `Long.MIN_VALUE` and `Long.MAX_VALUE` (inclusive).\n */\n public open fun nextLong(): Long = nextInt().toLong().shl(32) + nextInt()\n\n /**\n * Gets the next random non-negative `Long` from the random number generator less than the specified [until] bound.\n *\n * Generates a `Long` random value uniformly distributed between `0` (inclusive) and the specified [until] bound (exclusive).\n *\n * @param until must be positive.\n *\n * @throws IllegalArgumentException if [until] is negative or zero.\n */\n public open fun nextLong(until: Long): Long = nextLong(0, until)\n\n /**\n * Gets the next random `Long` from the random number generator in the specified range.\n *\n * Generates a `Long` random value uniformly distributed between the specified [from] (inclusive) and [until] (exclusive) bounds.\n *\n * @throws IllegalArgumentException if [from] is greater than or equal to [until].\n */\n public open fun nextLong(from: Long, until: Long): Long {\n checkRangeBounds(from, until)\n val n = until - from\n if (n > 0) {\n val rnd: Long\n if (n and -n == n) {\n val nLow = n.toInt()\n val nHigh = (n ushr 32).toInt()\n rnd = when {\n nLow != 0 -> {\n val bitCount = fastLog2(nLow)\n // toUInt().toLong()\n nextBits(bitCount).toLong() and 0xFFFF_FFFF\n }\n nHigh == 1 ->\n // toUInt().toLong()\n nextInt().toLong() and 0xFFFF_FFFF\n else -> {\n val bitCount = fastLog2(nHigh)\n nextBits(bitCount).toLong().shl(32) + nextInt()\n }\n }\n } else {\n var v: Long\n do {\n val bits = nextLong().ushr(1)\n v = bits % n\n } while (bits - v + (n - 1) < 0)\n rnd = v\n }\n return from + rnd\n } else {\n while (true) {\n val rnd = nextLong()\n if (rnd in from until until) return rnd\n }\n }\n }\n\n /**\n * Gets the next random [Boolean] value.\n */\n public open fun nextBoolean(): Boolean = nextBits(1) != 0\n\n /**\n * Gets the next random [Double] value uniformly distributed between 0 (inclusive) and 1 (exclusive).\n */\n public open fun nextDouble(): Double = doubleFromParts(nextBits(26), nextBits(27))\n\n /**\n * Gets the next random non-negative `Double` from the random number generator less than the specified [until] bound.\n *\n * Generates a `Double` random value uniformly distributed between 0 (inclusive) and [until] (exclusive).\n *\n * @throws IllegalArgumentException if [until] is negative or zero.\n */\n public open fun nextDouble(until: Double): Double = nextDouble(0.0, until)\n\n /**\n * Gets the next random `Double` from the random number generator in the specified range.\n *\n * Generates a `Double` random value uniformly distributed between the specified [from] (inclusive) and [until] (exclusive) bounds.\n *\n * [from] and [until] must be finite otherwise the behavior is unspecified.\n *\n * @throws IllegalArgumentException if [from] is greater than or equal to [until].\n */\n public open fun nextDouble(from: Double, until: Double): Double {\n checkRangeBounds(from, until)\n val size = until - from\n val r = if (size.isInfinite() && from.isFinite() && until.isFinite()) {\n val r1 = nextDouble() * (until / 2 - from / 2)\n from + r1 + r1\n } else {\n from + nextDouble() * size\n }\n return if (r >= until) until.nextDown() else r\n }\n\n /**\n * Gets the next random [Float] value uniformly distributed between 0 (inclusive) and 1 (exclusive).\n */\n public open fun nextFloat(): Float = nextBits(24) / (1 shl 24).toFloat()\n\n /**\n * Fills a subrange of the specified byte [array] starting from [fromIndex] inclusive and ending [toIndex] exclusive\n * with random bytes.\n *\n * @return [array] with the subrange filled with random bytes.\n */\n public open fun nextBytes(array: ByteArray, fromIndex: Int = 0, toIndex: Int = array.size): ByteArray {\n require(fromIndex in 0..array.size && toIndex in 0..array.size) { \"fromIndex ($fromIndex) or toIndex ($toIndex) are out of range: 0..${array.size}.\" }\n require(fromIndex <= toIndex) { \"fromIndex ($fromIndex) must be not greater than toIndex ($toIndex).\" }\n\n val steps = (toIndex - fromIndex) / 4\n\n var position = fromIndex\n repeat(steps) {\n val v = nextInt()\n array[position] = v.toByte()\n array[position + 1] = v.ushr(8).toByte()\n array[position + 2] = v.ushr(16).toByte()\n array[position + 3] = v.ushr(24).toByte()\n position += 4\n }\n\n val remainder = toIndex - position\n val vr = nextBits(remainder * 8)\n for (i in 0 until remainder) {\n array[position + i] = vr.ushr(i * 8).toByte()\n }\n\n return array\n }\n\n /**\n * Fills the specified byte [array] with random bytes and returns it.\n *\n * @return [array] filled with random bytes.\n */\n public open fun nextBytes(array: ByteArray): ByteArray = nextBytes(array, 0, array.size)\n\n /**\n * Creates a byte array of the specified [size], filled with random bytes.\n */\n public open fun nextBytes(size: Int): ByteArray = nextBytes(ByteArray(size))\n\n\n /**\n * The default random number generator.\n *\n * On JVM this generator is thread-safe, its methods can be invoked from multiple threads.\n *\n * @sample samples.random.Randoms.defaultRandom\n */\n companion object Default : Random() {\n\n private val defaultRandom: Random = defaultPlatformRandom()\n\n override fun nextBits(bitCount: Int): Int = defaultRandom.nextBits(bitCount)\n override fun nextInt(): Int = defaultRandom.nextInt()\n override fun nextInt(until: Int): Int = defaultRandom.nextInt(until)\n override fun nextInt(from: Int, until: Int): Int = defaultRandom.nextInt(from, until)\n\n override fun nextLong(): Long = defaultRandom.nextLong()\n override fun nextLong(until: Long): Long = defaultRandom.nextLong(until)\n override fun nextLong(from: Long, until: Long): Long = defaultRandom.nextLong(from, until)\n\n override fun nextBoolean(): Boolean = defaultRandom.nextBoolean()\n\n override fun nextDouble(): Double = defaultRandom.nextDouble()\n override fun nextDouble(until: Double): Double = defaultRandom.nextDouble(until)\n override fun nextDouble(from: Double, until: Double): Double = defaultRandom.nextDouble(from, until)\n\n override fun nextFloat(): Float = defaultRandom.nextFloat()\n\n override fun nextBytes(array: ByteArray): ByteArray = defaultRandom.nextBytes(array)\n override fun nextBytes(size: Int): ByteArray = defaultRandom.nextBytes(size)\n override fun nextBytes(array: ByteArray, fromIndex: Int, toIndex: Int): ByteArray = defaultRandom.nextBytes(array, fromIndex, toIndex)\n\n @Deprecated(\"Use Default companion object instead\", level = DeprecationLevel.HIDDEN)\n @Suppress(\"DEPRECATION_ERROR\")\n @kotlin.jvm.JvmField\n public val Companion: Random.Companion = Random.Companion\n }\n\n @Deprecated(\"Use Default companion object instead\", level = DeprecationLevel.HIDDEN)\n public object Companion : Random() {\n override fun nextBits(bitCount: Int): Int = Default.nextBits(bitCount)\n }\n}\n\n/**\n * Returns a repeatable random number generator seeded with the given [seed] `Int` value.\n *\n * Two generators with the same seed produce the same sequence of values within the same version of Kotlin runtime.\n *\n * *Note:* Future versions of Kotlin may change the algorithm of this seeded number generator so that it will return\n * a sequence of values different from the current one for a given seed.\n *\n * @sample samples.random.Randoms.seededRandom\n */\n@SinceKotlin(\"1.3\")\npublic fun Random(seed: Int): Random = XorWowRandom(seed, seed.shr(31))\n\n/**\n * Returns a repeatable random number generator seeded with the given [seed] `Long` value.\n *\n * Two generators with the same seed produce the same sequence of values within the same version of Kotlin runtime.\n *\n * *Note:* Future versions of Kotlin may change the algorithm of this seeded number generator so that it will return\n * a sequence of values different from the current one for a given seed.\n *\n * @sample samples.random.Randoms.seededRandom\n */\n@SinceKotlin(\"1.3\")\npublic fun Random(seed: Long): Random = XorWowRandom(seed.toInt(), seed.shr(32).toInt())\n\n\n\n/**\n * Gets the next random `Int` from the random number generator in the specified [range].\n *\n * Generates an `Int` random value uniformly distributed in the specified [range]:\n * from `range.start` inclusive to `range.endInclusive` inclusive.\n *\n * @throws IllegalArgumentException if [range] is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Random.nextInt(range: IntRange): Int = when {\n range.isEmpty() -> throw IllegalArgumentException(\"Cannot get random in empty range: $range\")\n range.last < Int.MAX_VALUE -> nextInt(range.first, range.last + 1)\n range.first > Int.MIN_VALUE -> nextInt(range.first - 1, range.last) + 1\n else -> nextInt()\n}\n\n/**\n * Gets the next random `Long` from the random number generator in the specified [range].\n *\n * Generates a `Long` random value uniformly distributed in the specified [range]:\n * from `range.start` inclusive to `range.endInclusive` inclusive.\n *\n * @throws IllegalArgumentException if [range] is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Random.nextLong(range: LongRange): Long = when {\n range.isEmpty() -> throw IllegalArgumentException(\"Cannot get random in empty range: $range\")\n range.last < Long.MAX_VALUE -> nextLong(range.start, range.endInclusive + 1)\n range.start > Long.MIN_VALUE -> nextLong(range.start - 1, range.endInclusive) + 1\n else -> nextLong()\n}\n\n\ninternal expect fun defaultPlatformRandom(): Random\ninternal expect fun fastLog2(value: Int): Int // 31 - Integer.numberOfLeadingZeros(value)\ninternal expect fun doubleFromParts(hi26: Int, low27: Int): Double\n\n/** Takes upper [bitCount] bits (0..32) from this number. */\ninternal fun Int.takeUpperBits(bitCount: Int): Int =\n this.ushr(32 - bitCount) and (-bitCount).shr(31)\n\ninternal fun checkRangeBounds(from: Int, until: Int) = require(until > from) { boundsErrorMessage(from, until) }\ninternal fun checkRangeBounds(from: Long, until: Long) = require(until > from) { boundsErrorMessage(from, until) }\ninternal fun checkRangeBounds(from: Double, until: Double) = require(until > from) { boundsErrorMessage(from, until) }\n\ninternal fun boundsErrorMessage(from: Any, until: Any) = \"Random range is empty: [$from, $until).\"\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.random\n\n\n/**\n * Gets the next random [UInt] from the random number generator.\n *\n * Generates a [UInt] random value uniformly distributed between [UInt.MIN_VALUE] and [UInt.MAX_VALUE] (inclusive).\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUInt(): UInt = nextInt().toUInt()\n\n/**\n * Gets the next random [UInt] from the random number generator less than the specified [until] bound.\n *\n * Generates a [UInt] random value uniformly distributed between `0` (inclusive) and the specified [until] bound (exclusive).\n *\n * @throws IllegalArgumentException if [until] is zero.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUInt(until: UInt): UInt = nextUInt(0u, until)\n\n/**\n * Gets the next random [UInt] from the random number generator in the specified range.\n *\n * Generates a [UInt] random value uniformly distributed between the specified [from] (inclusive) and [until] (exclusive) bounds.\n *\n * @throws IllegalArgumentException if [from] is greater than or equal to [until].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUInt(from: UInt, until: UInt): UInt {\n checkUIntRangeBounds(from, until)\n\n val signedFrom = from.toInt() xor Int.MIN_VALUE\n val signedUntil = until.toInt() xor Int.MIN_VALUE\n\n val signedResult = nextInt(signedFrom, signedUntil) xor Int.MIN_VALUE\n return signedResult.toUInt()\n}\n\n/**\n * Gets the next random [UInt] from the random number generator in the specified [range].\n *\n * Generates a [UInt] random value uniformly distributed in the specified [range]:\n * from `range.start` inclusive to `range.endInclusive` inclusive.\n *\n * @throws IllegalArgumentException if [range] is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUInt(range: UIntRange): UInt = when {\n range.isEmpty() -> throw IllegalArgumentException(\"Cannot get random in empty range: $range\")\n range.last < UInt.MAX_VALUE -> nextUInt(range.first, range.last + 1u)\n range.first > UInt.MIN_VALUE -> nextUInt(range.first - 1u, range.last) + 1u\n else -> nextUInt()\n}\n\n/**\n * Gets the next random [ULong] from the random number generator.\n *\n * Generates a [ULong] random value uniformly distributed between [ULong.MIN_VALUE] and [ULong.MAX_VALUE] (inclusive).\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextULong(): ULong = nextLong().toULong()\n\n/**\n * Gets the next random [ULong] from the random number generator less than the specified [until] bound.\n *\n * Generates a [ULong] random value uniformly distributed between `0` (inclusive) and the specified [until] bound (exclusive).\n *\n * @throws IllegalArgumentException if [until] is zero.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextULong(until: ULong): ULong = nextULong(0uL, until)\n\n/**\n * Gets the next random [ULong] from the random number generator in the specified range.\n *\n * Generates a [ULong] random value uniformly distributed between the specified [from] (inclusive) and [until] (exclusive) bounds.\n *\n * @throws IllegalArgumentException if [from] is greater than or equal to [until].\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextULong(from: ULong, until: ULong): ULong {\n checkULongRangeBounds(from, until)\n\n val signedFrom = from.toLong() xor Long.MIN_VALUE\n val signedUntil = until.toLong() xor Long.MIN_VALUE\n\n val signedResult = nextLong(signedFrom, signedUntil) xor Long.MIN_VALUE\n return signedResult.toULong()\n}\n\n/**\n * Gets the next random [ULong] from the random number generator in the specified [range].\n *\n * Generates a [ULong] random value uniformly distributed in the specified [range]:\n * from `range.start` inclusive to `range.endInclusive` inclusive.\n *\n * @throws IllegalArgumentException if [range] is empty.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextULong(range: ULongRange): ULong = when {\n range.isEmpty() -> throw IllegalArgumentException(\"Cannot get random in empty range: $range\")\n range.last < ULong.MAX_VALUE -> nextULong(range.first, range.last + 1u)\n range.first > ULong.MIN_VALUE -> nextULong(range.first - 1u, range.last) + 1u\n else -> nextULong()\n}\n\n/**\n * Fills the specified unsigned byte [array] with random bytes and returns it.\n *\n * @return [array] filled with random bytes.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUBytes(array: UByteArray): UByteArray {\n nextBytes(array.asByteArray())\n return array\n}\n\n/**\n * Creates an unsigned byte array of the specified [size], filled with random bytes.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUBytes(size: Int): UByteArray = nextBytes(size).asUByteArray()\n\n/**\n * Fills a subrange of the specified `UByte` [array] starting from [fromIndex] inclusive and ending [toIndex] exclusive with random UBytes.\n *\n * @return [array] with the subrange filled with random bytes.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun Random.nextUBytes(array: UByteArray, fromIndex: Int = 0, toIndex: Int = array.size): UByteArray {\n nextBytes(array.asByteArray(), fromIndex, toIndex)\n return array\n}\n\n\n@ExperimentalUnsignedTypes\ninternal fun checkUIntRangeBounds(from: UInt, until: UInt) = require(until > from) { boundsErrorMessage(from, until) }\n@ExperimentalUnsignedTypes\ninternal fun checkULongRangeBounds(from: ULong, until: ULong) = require(until > from) { boundsErrorMessage(from, until) }\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.random\n\n/**\n * Random number generator, algorithm \"xorwow\" from p. 5 of Marsaglia, \"Xorshift RNGs\".\n *\n * Cycles after 2^160 * (2^32-1) repetitions.\n *\n * See http://www.jstatsoft.org/v08/i14/paper for details.\n */\ninternal class XorWowRandom\ninternal constructor(\n private var x: Int,\n private var y: Int,\n private var z: Int,\n private var w: Int,\n private var v: Int,\n private var addend: Int\n) : Random() {\n\n internal constructor(seed1: Int, seed2: Int) :\n this(seed1, seed2, 0, 0, seed1.inv(), (seed1 shl 10) xor (seed2 ushr 4))\n\n init {\n require((x or y or z or w or v) != 0) { \"Initial state must have at least one non-zero element.\" }\n\n // some trivial seeds can produce several values with zeroes in upper bits, so we discard first 64\n repeat(64) { nextInt() }\n }\n\n override fun nextInt(): Int {\n var t = x\n t = t xor (t ushr 2)\n x = y\n y = z\n z = w\n val v0 = v\n w = v0\n t = (t xor (t shl 1)) xor v0 xor (v0 shl 4)\n v = t\n addend += 362437\n return t + addend\n }\n\n override fun nextBits(bitCount: Int): Int =\n nextInt().takeUpperBits(bitCount)\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"RangesKt\")\n\npackage kotlin.ranges\n\n/**\n * Represents a range of floating point numbers.\n * Extends [ClosedRange] interface providing custom operation [lessThanOrEquals] for comparing values of range domain type.\n *\n * This interface is implemented by floating point ranges returned by [Float.rangeTo] and [Double.rangeTo] operators to\n * achieve IEEE-754 comparison order instead of total order of floating point numbers.\n */\n@SinceKotlin(\"1.1\")\npublic interface ClosedFloatingPointRange> : ClosedRange {\n override fun contains(value: T): Boolean = lessThanOrEquals(start, value) && lessThanOrEquals(value, endInclusive)\n override fun isEmpty(): Boolean = !lessThanOrEquals(start, endInclusive)\n\n /**\n * Compares two values of range domain type and returns true if first is less than or equal to second.\n */\n fun lessThanOrEquals(a: T, b: T): Boolean\n}\n\n/**\n * Represents a range of [Comparable] values.\n */\nprivate open class ComparableRange>(\n override val start: T,\n override val endInclusive: T\n) : ClosedRange {\n\n override fun equals(other: Any?): Boolean {\n return other is ComparableRange<*> && (isEmpty() && other.isEmpty() ||\n start == other.start && endInclusive == other.endInclusive)\n }\n\n override fun hashCode(): Int {\n return if (isEmpty()) -1 else 31 * start.hashCode() + endInclusive.hashCode()\n }\n\n override fun toString(): String = \"$start..$endInclusive\"\n}\n\n/**\n * A closed range of values of type `Double`.\n *\n * Numbers are compared with the ends of this range according to IEEE-754.\n */\nprivate class ClosedDoubleRange(\n start: Double,\n endInclusive: Double\n) : ClosedFloatingPointRange {\n private val _start = start\n private val _endInclusive = endInclusive\n override val start: Double get() = _start\n override val endInclusive: Double get() = _endInclusive\n\n override fun lessThanOrEquals(a: Double, b: Double): Boolean = a <= b\n\n override fun contains(value: Double): Boolean = value >= _start && value <= _endInclusive\n override fun isEmpty(): Boolean = !(_start <= _endInclusive)\n\n override fun equals(other: Any?): Boolean {\n return other is ClosedDoubleRange && (isEmpty() && other.isEmpty() ||\n _start == other._start && _endInclusive == other._endInclusive)\n }\n\n override fun hashCode(): Int {\n return if (isEmpty()) -1 else 31 * _start.hashCode() + _endInclusive.hashCode()\n }\n\n override fun toString(): String = \"$_start..$_endInclusive\"\n}\n\n\n/**\n * Creates a range from this [Comparable] value to the specified [that] value.\n *\n * This value needs to be smaller than [that] value, otherwise the returned range will be empty.\n * @sample samples.ranges.Ranges.rangeFromComparable\n */\npublic operator fun > T.rangeTo(that: T): ClosedRange = ComparableRange(this, that)\n\n/**\n * Creates a range from this [Double] value to the specified [that] value.\n *\n * Numbers are compared with the ends of this range according to IEEE-754.\n * @sample samples.ranges.Ranges.rangeFromDouble\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Double.rangeTo(that: Double): ClosedFloatingPointRange = ClosedDoubleRange(this, that)\n\n\n/**\n * Returns `true` if this iterable range contains the specified [element].\n *\n * Always returns `false` if the [element] is `null`.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline operator fun R.contains(element: T?): Boolean where T : Any, R : Iterable, R : ClosedRange =\n element != null && contains(element)\n\n\ninternal fun checkStepIsPositive(isPositive: Boolean, step: Number) {\n if (!isPositive) throw IllegalArgumentException(\"Step must be positive, was: $step.\")\n}\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.reflect\n\n/**\n * Returns a runtime representation of the given reified type [T] as an instance of [KType].\n */\n@Suppress(\"unused\") // KT-12448\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic inline fun typeOf(): KType =\n throw UnsupportedOperationException(\"This function is implemented as an intrinsic on all supported platforms.\")\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CharsKt\")\n\npackage kotlin.text\n\n/**\n * Concatenates this Char and a String.\n *\n * @sample samples.text.Chars.plus\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Char.plus(other: String): String = this.toString() + other\n\n/**\n * Returns `true` if this character is equal to the [other] character, optionally ignoring character case.\n *\n * @param ignoreCase `true` to ignore character case when comparing characters. By default `false`.\n *\n * Two characters are considered the same ignoring case if at least one of the following is `true`:\n * - The two characters are the same (as compared by the == operator)\n * - Applying the method [toUpperCase] to each character produces the same result\n * - Applying the method [toLowerCase] to each character produces the same result\n *\n * @sample samples.text.Chars.equals\n */\npublic fun Char.equals(other: Char, ignoreCase: Boolean = false): Boolean {\n if (this == other) return true\n if (!ignoreCase) return false\n\n if (this.toUpperCase() == other.toUpperCase()) return true\n if (this.toLowerCase() == other.toLowerCase()) return true\n return false\n}\n\n/**\n * Returns `true` if this character is a Unicode surrogate code unit.\n */\npublic fun Char.isSurrogate(): Boolean = this in Char.MIN_SURROGATE..Char.MAX_SURROGATE\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StringsKt\")\n\npackage kotlin.text\n\n/**\n * Trims leading whitespace characters followed by [marginPrefix] from every line of a source string and removes\n * the first and the last lines if they are blank (notice difference blank vs empty).\n *\n * Doesn't affect a line if it doesn't contain [marginPrefix] except the first and the last blank lines.\n *\n * Doesn't preserve the original line endings.\n *\n * @param marginPrefix non-blank string, which is used as a margin delimiter. Default is `|` (pipe character).\n *\n * @sample samples.text.Strings.trimMargin\n * @see trimIndent\n * @see kotlin.text.isWhitespace\n */\npublic fun String.trimMargin(marginPrefix: String = \"|\"): String =\n replaceIndentByMargin(\"\", marginPrefix)\n\n/**\n * Detects indent by [marginPrefix] as it does [trimMargin] and replace it with [newIndent].\n *\n * @param marginPrefix non-blank string, which is used as a margin delimiter. Default is `|` (pipe character).\n */\npublic fun String.replaceIndentByMargin(newIndent: String = \"\", marginPrefix: String = \"|\"): String {\n require(marginPrefix.isNotBlank()) { \"marginPrefix must be non-blank string.\" }\n val lines = lines()\n\n return lines.reindent(length + newIndent.length * lines.size, getIndentFunction(newIndent), { line ->\n val firstNonWhitespaceIndex = line.indexOfFirst { !it.isWhitespace() }\n\n when {\n firstNonWhitespaceIndex == -1 -> null\n line.startsWith(marginPrefix, firstNonWhitespaceIndex) -> line.substring(firstNonWhitespaceIndex + marginPrefix.length)\n else -> null\n }\n })\n}\n\n/**\n * Detects a common minimal indent of all the input lines, removes it from every line and also removes the first and the last\n * lines if they are blank (notice difference blank vs empty).\n *\n * Note that blank lines do not affect the detected indent level.\n *\n * In case if there are non-blank lines with no leading whitespace characters (no indent at all) then the\n * common indent is 0, and therefore this function doesn't change the indentation.\n *\n * Doesn't preserve the original line endings.\n *\n * @sample samples.text.Strings.trimIndent\n * @see trimMargin\n * @see kotlin.text.isBlank\n */\npublic fun String.trimIndent(): String = replaceIndent(\"\")\n\n/**\n * Detects a common minimal indent like it does [trimIndent] and replaces it with the specified [newIndent].\n */\npublic fun String.replaceIndent(newIndent: String = \"\"): String {\n val lines = lines()\n\n val minCommonIndent = lines\n .filter(String::isNotBlank)\n .map(String::indentWidth)\n .min() ?: 0\n\n return lines.reindent(length + newIndent.length * lines.size, getIndentFunction(newIndent), { line -> line.drop(minCommonIndent) })\n}\n\n/**\n * Prepends [indent] to every line of the original string.\n *\n * Doesn't preserve the original line endings.\n */\npublic fun String.prependIndent(indent: String = \" \"): String =\n lineSequence()\n .map {\n when {\n it.isBlank() -> {\n when {\n it.length < indent.length -> indent\n else -> it\n }\n }\n else -> indent + it\n }\n }\n .joinToString(\"\\n\")\n\nprivate fun String.indentWidth(): Int = indexOfFirst { !it.isWhitespace() }.let { if (it == -1) length else it }\n\nprivate fun getIndentFunction(indent: String) = when {\n indent.isEmpty() -> { line: String -> line }\n else -> { line: String -> indent + line }\n}\n\nprivate inline fun List.reindent(\n resultSizeEstimate: Int,\n indentAddFunction: (String) -> String,\n indentCutFunction: (String) -> String?\n): String {\n val lastIndex = lastIndex\n return mapIndexedNotNull { index, value ->\n if ((index == 0 || index == lastIndex) && value.isBlank())\n null\n else\n indentCutFunction(value)?.let(indentAddFunction) ?: value\n }\n .joinTo(StringBuilder(resultSizeEstimate), \"\\n\")\n .toString()\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n/**\n * Defines names for Unicode symbols used in proper Typography.\n */\npublic object Typography {\n /** The character " \u2013 quotation mark */\n public const val quote: Char = '\\u0022'\n /** The character $ \u2013 dollar sign */\n public const val dollar: Char = '\\u0024'\n /** The character & \u2013 ampersand */\n public const val amp: Char = '\\u0026'\n /** The character < \u2013 less-than sign */\n public const val less: Char = '\\u003C'\n /** The character > \u2013 greater-than sign */\n public const val greater: Char = '\\u003E'\n /** The non-breaking space character */\n public const val nbsp: Char = '\\u00A0'\n /** The character × */\n public const val times: Char = '\\u00D7'\n /** The character ¢ */\n public const val cent: Char = '\\u00A2'\n /** The character £ */\n public const val pound: Char = '\\u00A3'\n /** The character § */\n public const val section: Char = '\\u00A7'\n /** The character © */\n public const val copyright: Char = '\\u00A9'\n /** The character « */\n public const val leftGuillemete: Char = '\\u00AB'\n /** The character » */\n public const val rightGuillemete: Char = '\\u00BB'\n /** The character ® */\n public const val registered: Char = '\\u00AE'\n /** The character ° */\n public const val degree: Char = '\\u00B0'\n /** The character ± */\n public const val plusMinus: Char = '\\u00B1'\n /** The character ¶ */\n public const val paragraph: Char = '\\u00B6'\n /** The character · */\n public const val middleDot: Char = '\\u00B7'\n /** The character ½ */\n public const val half: Char = '\\u00BD'\n /** The character – */\n public const val ndash: Char = '\\u2013'\n /** The character — */\n public const val mdash: Char = '\\u2014'\n /** The character ‘ */\n public const val leftSingleQuote: Char = '\\u2018'\n /** The character ’ */\n public const val rightSingleQuote: Char = '\\u2019'\n /** The character ‚ */\n public const val lowSingleQuote: Char = '\\u201A'\n /** The character “ */\n public const val leftDoubleQuote: Char = '\\u201C'\n /** The character ” */\n public const val rightDoubleQuote: Char = '\\u201D'\n /** The character „ */\n public const val lowDoubleQuote: Char = '\\u201E'\n /** The character † */\n public const val dagger: Char = '\\u2020'\n /** The character ‡ */\n public const val doubleDagger: Char = '\\u2021'\n /** The character • */\n public const val bullet: Char = '\\u2022'\n /** The character … */\n public const val ellipsis: Char = '\\u2026'\n /** The character ′ */\n public const val prime: Char = '\\u2032'\n /** The character ″ */\n public const val doublePrime: Char = '\\u2033'\n /** The character € */\n public const val euro: Char = '\\u20AC'\n /** The character ™ */\n public const val tm: Char = '\\u2122'\n /** The character ≈ */\n public const val almostEqual: Char = '\\u2248'\n /** The character ≠ */\n public const val notEqual: Char = '\\u2260'\n /** The character ≤ */\n public const val lessOrEqual: Char = '\\u2264'\n /** The character ≥ */\n public const val greaterOrEqual: Char = '\\u2265'\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n/**\n * Represents a collection of captured groups in a single match of a regular expression.\n *\n * This collection has size of `groupCount + 1` where `groupCount` is the count of groups in the regular expression.\n * Groups are indexed from 1 to `groupCount` and group with the index 0 corresponds to the entire match.\n *\n * An element of the collection at the particular index can be `null`,\n * if the corresponding group in the regular expression is optional and\n * there was no match captured by that group.\n */\npublic interface MatchGroupCollection : Collection {\n\n /** Returns a group with the specified [index].\n *\n * @return An instance of [MatchGroup] if the group with the specified [index] was matched or `null` otherwise.\n *\n * Groups are indexed from 1 to the count of groups in the regular expression. A group with the index 0\n * corresponds to the entire match.\n */\n public operator fun get(index: Int): MatchGroup?\n}\n\n/**\n * Extends [MatchGroupCollection] by introducing a way to get matched groups by name, when regex supports it.\n */\n@SinceKotlin(\"1.1\")\npublic interface MatchNamedGroupCollection : MatchGroupCollection {\n /**\n * Returns a named group with the specified [name].\n * @return An instance of [MatchGroup] if the group with the specified [name] was matched or `null` otherwise.\n * @throws IllegalArgumentException if there is no group with the specified [name] defined in the regex pattern.\n * @throws UnsupportedOperationException if getting named groups isn't supported on the current platform.\n */\n public operator fun get(name: String): MatchGroup?\n}\n\n/**\n * Represents the results from a single regular expression match.\n */\npublic interface MatchResult {\n /** The range of indices in the original string where match was captured. */\n public val range: IntRange\n /** The substring from the input string captured by this match. */\n public val value: String\n /**\n * A collection of groups matched by the regular expression.\n *\n * This collection has size of `groupCount + 1` where `groupCount` is the count of groups in the regular expression.\n * Groups are indexed from 1 to `groupCount` and group with the index 0 corresponds to the entire match.\n */\n public val groups: MatchGroupCollection\n /**\n * A list of matched indexed group values.\n *\n * This list has size of `groupCount + 1` where `groupCount` is the count of groups in the regular expression.\n * Groups are indexed from 1 to `groupCount` and group with the index 0 corresponds to the entire match.\n *\n * If the group in the regular expression is optional and there were no match captured by that group,\n * corresponding item in [groupValues] is an empty string.\n *\n * @sample samples.text.Regexps.matchDestructuringToGroupValues\n */\n public val groupValues: List\n\n /**\n * An instance of [MatchResult.Destructured] wrapper providing components for destructuring assignment of group values.\n *\n * component1 corresponds to the value of the first group, component2 \u2014 of the second, and so on.\n *\n * @sample samples.text.Regexps.matchDestructuringToGroupValues\n */\n public val destructured: Destructured get() = Destructured(this)\n\n /** Returns a new [MatchResult] with the results for the next match, starting at the position\n * at which the last match ended (at the character after the last matched character).\n */\n public fun next(): MatchResult?\n\n /**\n * Provides components for destructuring assignment of group values.\n *\n * [component1] corresponds to the value of the first group, [component2] \u2014 of the second, and so on.\n *\n * If the group in the regular expression is optional and there were no match captured by that group,\n * corresponding component value is an empty string.\n *\n * @sample samples.text.Regexps.matchDestructuringToGroupValues\n */\n public class Destructured internal constructor(public val match: MatchResult) {\n @kotlin.internal.InlineOnly\n public operator inline fun component1(): String = match.groupValues[1]\n @kotlin.internal.InlineOnly\n public operator inline fun component2(): String = match.groupValues[2]\n @kotlin.internal.InlineOnly\n public operator inline fun component3(): String = match.groupValues[3]\n @kotlin.internal.InlineOnly\n public operator inline fun component4(): String = match.groupValues[4]\n @kotlin.internal.InlineOnly\n public operator inline fun component5(): String = match.groupValues[5]\n @kotlin.internal.InlineOnly\n public operator inline fun component6(): String = match.groupValues[6]\n @kotlin.internal.InlineOnly\n public operator inline fun component7(): String = match.groupValues[7]\n @kotlin.internal.InlineOnly\n public operator inline fun component8(): String = match.groupValues[8]\n @kotlin.internal.InlineOnly\n public operator inline fun component9(): String = match.groupValues[9]\n @kotlin.internal.InlineOnly\n public operator inline fun component10(): String = match.groupValues[10]\n\n /**\n * Returns destructured group values as a list of strings.\n * First value in the returned list corresponds to the value of the first group, and so on.\n *\n * @sample samples.text.Regexps.matchDestructuringToGroupValues\n */\n public fun toList(): List = match.groupValues.subList(1, match.groupValues.size)\n }\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\nimport kotlin.internal.InlineOnly\n\n\n/**\n * Returns a hash code value for the object or zero if the object is `null`.\n *\n * @see Any.hashCode\n */\n@SinceKotlin(\"1.3\")\n@InlineOnly\npublic inline fun Any?.hashCode(): Int = this?.hashCode() ?: 0\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\n\n/**\n * Represents a version of the Kotlin standard library.\n *\n * [major], [minor] and [patch] are integer components of a version,\n * they must be non-negative and not greater than 255 ([MAX_COMPONENT_VALUE]).\n *\n * @constructor Creates a version from all three components.\n */\n@SinceKotlin(\"1.1\")\npublic class KotlinVersion(val major: Int, val minor: Int, val patch: Int) : Comparable {\n /**\n * Creates a version from [major] and [minor] components, leaving [patch] component zero.\n */\n public constructor(major: Int, minor: Int) : this(major, minor, 0)\n\n private val version = versionOf(major, minor, patch)\n\n private fun versionOf(major: Int, minor: Int, patch: Int): Int {\n require(major in 0..MAX_COMPONENT_VALUE && minor in 0..MAX_COMPONENT_VALUE && patch in 0..MAX_COMPONENT_VALUE) {\n \"Version components are out of range: $major.$minor.$patch\"\n }\n return major.shl(16) + minor.shl(8) + patch\n }\n\n /**\n * Returns the string representation of this version\n */\n override fun toString(): String = \"$major.$minor.$patch\"\n\n override fun equals(other: Any?): Boolean {\n if (this === other) return true\n val otherVersion = (other as? KotlinVersion) ?: return false\n return this.version == otherVersion.version\n }\n\n override fun hashCode(): Int = version\n\n override fun compareTo(other: KotlinVersion): Int = version - other.version\n\n /**\n * Returns `true` if this version is not less than the version specified\n * with the provided [major] and [minor] components.\n */\n public fun isAtLeast(major: Int, minor: Int): Boolean = // this.version >= versionOf(major, minor, 0)\n this.major > major || (this.major == major &&\n this.minor >= minor)\n\n /**\n * Returns `true` if this version is not less than the version specified\n * with the provided [major], [minor] and [patch] components.\n */\n public fun isAtLeast(major: Int, minor: Int, patch: Int): Boolean = // this.version >= versionOf(major, minor, patch)\n this.major > major || (this.major == major &&\n (this.minor > minor || this.minor == minor &&\n this.patch >= patch))\n\n companion object {\n /**\n * Maximum value a version component can have, a constant value 255.\n */\n // NOTE: Must be placed before CURRENT because its initialization requires this field being initialized in JS\n public const val MAX_COMPONENT_VALUE = 255\n\n /**\n * Returns the current version of the Kotlin standard library.\n */\n @kotlin.jvm.JvmField\n public val CURRENT: KotlinVersion = KotlinVersion(1, 3, 40) // value is written here automatically during build\n }\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"LateinitKt\")\n@file:Suppress(\"unused\")\n\npackage kotlin\n\nimport kotlin.internal.InlineOnly\nimport kotlin.internal.AccessibleLateinitPropertyLiteral\nimport kotlin.reflect.KProperty0\n\n/**\n * Returns `true` if this lateinit property has been assigned a value, and `false` otherwise.\n *\n * Cannot be used in an inline function, to avoid binary compatibility issues.\n */\n@SinceKotlin(\"1.2\")\n@InlineOnly\ninline val @receiver:AccessibleLateinitPropertyLiteral KProperty0<*>.isInitialized: Boolean\n get() = throw NotImplementedError(\"Implementation is intrinsic\")\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"LazyKt\")\n@file:kotlin.jvm.JvmMultifileClass\n\npackage kotlin\n\nimport kotlin.reflect.KProperty\n\n/**\n * Represents a value with lazy initialization.\n *\n * To create an instance of [Lazy] use the [lazy] function.\n */\npublic interface Lazy {\n /**\n * Gets the lazily initialized value of the current Lazy instance.\n * Once the value was initialized it must not change during the rest of lifetime of this Lazy instance.\n */\n public val value: T\n\n /**\n * Returns `true` if a value for this Lazy instance has been already initialized, and `false` otherwise.\n * Once this function has returned `true` it stays `true` for the rest of lifetime of this Lazy instance.\n */\n public fun isInitialized(): Boolean\n}\n\n/**\n * Creates a new instance of the [Lazy] that is already initialized with the specified [value].\n */\npublic fun lazyOf(value: T): Lazy = InitializedLazyImpl(value)\n\n/**\n * An extension to delegate a read-only property of type [T] to an instance of [Lazy].\n *\n * This extension allows to use instances of Lazy for property delegation:\n * `val property: String by lazy { initializer }`\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Lazy.getValue(thisRef: Any?, property: KProperty<*>): T = value\n\n/**\n * Specifies how a [Lazy] instance synchronizes initialization among multiple threads.\n */\npublic enum class LazyThreadSafetyMode {\n\n /**\n * Locks are used to ensure that only a single thread can initialize the [Lazy] instance.\n */\n SYNCHRONIZED,\n\n /**\n * Initializer function can be called several times on concurrent access to uninitialized [Lazy] instance value,\n * but only the first returned value will be used as the value of [Lazy] instance.\n */\n PUBLICATION,\n\n /**\n * No locks are used to synchronize an access to the [Lazy] instance value; if the instance is accessed from multiple threads, its behavior is undefined.\n *\n * This mode should not be used unless the [Lazy] instance is guaranteed never to be initialized from more than one thread.\n */\n NONE,\n}\n\n\ninternal object UNINITIALIZED_VALUE\n\n// internal to be called from lazy in JS\ninternal class UnsafeLazyImpl(initializer: () -> T) : Lazy, Serializable {\n private var initializer: (() -> T)? = initializer\n private var _value: Any? = UNINITIALIZED_VALUE\n\n override val value: T\n get() {\n if (_value === UNINITIALIZED_VALUE) {\n _value = initializer!!()\n initializer = null\n }\n @Suppress(\"UNCHECKED_CAST\")\n return _value as T\n }\n\n override fun isInitialized(): Boolean = _value !== UNINITIALIZED_VALUE\n\n override fun toString(): String = if (isInitialized()) value.toString() else \"Lazy value not initialized yet.\"\n\n private fun writeReplace(): Any = InitializedLazyImpl(value)\n}\n\ninternal class InitializedLazyImpl(override val value: T) : Lazy, Serializable {\n\n override fun isInitialized(): Boolean = true\n\n override fun toString(): String = value.toString()\n\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin\nimport kotlin.internal.RequireKotlin\nimport kotlin.internal.RequireKotlinVersionKind\n\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.2\")\n@Suppress(\"INVISIBLE_MEMBER\", \"INVISIBLE_REFERENCE\")\n@RequireKotlin(\"1.2.30\", level = DeprecationLevel.HIDDEN, versionKind = RequireKotlinVersionKind.COMPILER_VERSION)\npublic inline fun suspend(noinline block: suspend () -> R): suspend () -> R = block\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"TuplesKt\")\n\npackage kotlin\n\n\n/**\n * Represents a generic pair of two values.\n *\n * There is no meaning attached to values in this class, it can be used for any purpose.\n * Pair exhibits value semantics, i.e. two pairs are equal if both components are equal.\n *\n * An example of decomposing it into values:\n * @sample samples.misc.Tuples.pairDestructuring\n *\n * @param A type of the first value.\n * @param B type of the second value.\n * @property first First value.\n * @property second Second value.\n * @constructor Creates a new instance of Pair.\n */\npublic data class Pair(\n public val first: A,\n public val second: B\n) : Serializable {\n\n /**\n * Returns string representation of the [Pair] including its [first] and [second] values.\n */\n public override fun toString(): String = \"($first, $second)\"\n}\n\n/**\n * Creates a tuple of type [Pair] from this and [that].\n *\n * This can be useful for creating [Map] literals with less noise, for example:\n * @sample samples.collections.Maps.Instantiation.mapFromPairs\n */\npublic infix fun A.to(that: B): Pair = Pair(this, that)\n\n/**\n * Converts this pair into a list.\n * @sample samples.misc.Tuples.pairToList\n */\npublic fun Pair.toList(): List = listOf(first, second)\n\n/**\n * Represents a triad of values\n *\n * There is no meaning attached to values in this class, it can be used for any purpose.\n * Triple exhibits value semantics, i.e. two triples are equal if all three components are equal.\n * An example of decomposing it into values:\n * @sample samples.misc.Tuples.tripleDestructuring\n *\n * @param A type of the first value.\n * @param B type of the second value.\n * @param C type of the third value.\n * @property first First value.\n * @property second Second value.\n * @property third Third value.\n */\npublic data class Triple(\n public val first: A,\n public val second: B,\n public val third: C\n) : Serializable {\n\n /**\n * Returns string representation of the [Triple] including its [first], [second] and [third] values.\n */\n public override fun toString(): String = \"($first, $second, $third)\"\n}\n\n/**\n * Converts this triple into a list.\n * @sample samples.misc.Tuples.tripleToList\n */\npublic fun Triple.toList(): List = listOf(first, second, third)\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.ranges\n\n\n\nimport kotlin.internal.*\n\n/**\n * A range of values of type `UInt`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic class UIntRange(start: UInt, endInclusive: UInt) : UIntProgression(start, endInclusive, 1), ClosedRange {\n override val start: UInt get() = first\n override val endInclusive: UInt get() = last\n\n override fun contains(value: UInt): Boolean = first <= value && value <= last\n\n override fun isEmpty(): Boolean = first > last\n\n override fun equals(other: Any?): Boolean =\n other is UIntRange && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * first.toInt() + last.toInt())\n\n override fun toString(): String = \"$first..$last\"\n\n companion object {\n /** An empty range of values of type UInt. */\n public val EMPTY: UIntRange = UIntRange(UInt.MAX_VALUE, UInt.MIN_VALUE)\n }\n}\n\n/**\n * A progression of values of type `UInt`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic open class UIntProgression\ninternal constructor(\n start: UInt,\n endInclusive: UInt,\n step: Int\n) : Iterable {\n init {\n if (step == 0.toInt()) throw kotlin.IllegalArgumentException(\"Step must be non-zero.\")\n if (step == Int.MIN_VALUE) throw kotlin.IllegalArgumentException(\"Step must be greater than Int.MIN_VALUE to avoid overflow on negation.\")\n }\n\n /**\n * The first element in the progression.\n */\n public val first: UInt = start\n\n /**\n * The last element in the progression.\n */\n public val last: UInt = getProgressionLastElement(start, endInclusive, step)\n\n /**\n * The step of the progression.\n */\n public val step: Int = step\n\n override fun iterator(): UIntIterator = UIntProgressionIterator(first, last, step)\n\n /** Checks if the progression is empty. */\n public open fun isEmpty(): Boolean = if (step > 0) first > last else first < last\n\n override fun equals(other: Any?): Boolean =\n other is UIntProgression && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last && step == other.step)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (31 * first.toInt() + last.toInt()) + step.toInt())\n\n override fun toString(): String = if (step > 0) \"$first..$last step $step\" else \"$first downTo $last step ${-step}\"\n\n companion object {\n /**\n * Creates UIntProgression within the specified bounds of a closed range.\n\n * The progression starts with the [rangeStart] value and goes toward the [rangeEnd] value not excluding it, with the specified [step].\n * In order to go backwards the [step] must be negative.\n *\n * [step] must be greater than `Int.MIN_VALUE` and not equal to zero.\n */\n public fun fromClosedRange(rangeStart: UInt, rangeEnd: UInt, step: Int): UIntProgression = UIntProgression(rangeStart, rangeEnd, step)\n }\n}\n\n\n/**\n * An iterator over a progression of values of type `UInt`.\n * @property step the number by which the value is incremented on each step.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\nprivate class UIntProgressionIterator(first: UInt, last: UInt, step: Int) : UIntIterator() {\n private val finalElement = last\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private val step = step.toUInt() // use 2-complement math for negative steps\n private var next = if (hasNext) first else finalElement\n\n override fun hasNext(): Boolean = hasNext\n\n override fun nextUInt(): UInt {\n val value = next\n if (value == finalElement) {\n if (!hasNext) throw kotlin.NoSuchElementException()\n hasNext = false\n } else {\n next += step\n }\n return value\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.collections\n\n/** An iterator over a sequence of values of type `UByte`. */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic abstract class UByteIterator : Iterator {\n override final fun next() = nextUByte()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextUByte(): UByte\n}\n\n/** An iterator over a sequence of values of type `UShort`. */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic abstract class UShortIterator : Iterator {\n override final fun next() = nextUShort()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextUShort(): UShort\n}\n\n/** An iterator over a sequence of values of type `UInt`. */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic abstract class UIntIterator : Iterator {\n override final fun next() = nextUInt()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextUInt(): UInt\n}\n\n/** An iterator over a sequence of values of type `ULong`. */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic abstract class ULongIterator : Iterator {\n override final fun next() = nextULong()\n\n /** Returns the next value in the sequence without boxing. */\n public abstract fun nextULong(): ULong\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin.ranges\n\n\n\nimport kotlin.internal.*\n\n/**\n * A range of values of type `ULong`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic class ULongRange(start: ULong, endInclusive: ULong) : ULongProgression(start, endInclusive, 1), ClosedRange {\n override val start: ULong get() = first\n override val endInclusive: ULong get() = last\n\n override fun contains(value: ULong): Boolean = first <= value && value <= last\n\n override fun isEmpty(): Boolean = first > last\n\n override fun equals(other: Any?): Boolean =\n other is ULongRange && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (first xor (first shr 32)).toInt() + (last xor (last shr 32)).toInt())\n\n override fun toString(): String = \"$first..$last\"\n\n companion object {\n /** An empty range of values of type ULong. */\n public val EMPTY: ULongRange = ULongRange(ULong.MAX_VALUE, ULong.MIN_VALUE)\n }\n}\n\n/**\n * A progression of values of type `ULong`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic open class ULongProgression\ninternal constructor(\n start: ULong,\n endInclusive: ULong,\n step: Long\n) : Iterable {\n init {\n if (step == 0.toLong()) throw kotlin.IllegalArgumentException(\"Step must be non-zero.\")\n if (step == Long.MIN_VALUE) throw kotlin.IllegalArgumentException(\"Step must be greater than Long.MIN_VALUE to avoid overflow on negation.\")\n }\n\n /**\n * The first element in the progression.\n */\n public val first: ULong = start\n\n /**\n * The last element in the progression.\n */\n public val last: ULong = getProgressionLastElement(start, endInclusive, step)\n\n /**\n * The step of the progression.\n */\n public val step: Long = step\n\n override fun iterator(): ULongIterator = ULongProgressionIterator(first, last, step)\n\n /** Checks if the progression is empty. */\n public open fun isEmpty(): Boolean = if (step > 0) first > last else first < last\n\n override fun equals(other: Any?): Boolean =\n other is ULongProgression && (isEmpty() && other.isEmpty() ||\n first == other.first && last == other.last && step == other.step)\n\n override fun hashCode(): Int =\n if (isEmpty()) -1 else (31 * (31 * (first xor (first shr 32)).toInt() + (last xor (last shr 32)).toInt()) + (step xor (step ushr 32)).toInt())\n\n override fun toString(): String = if (step > 0) \"$first..$last step $step\" else \"$first downTo $last step ${-step}\"\n\n companion object {\n /**\n * Creates ULongProgression within the specified bounds of a closed range.\n\n * The progression starts with the [rangeStart] value and goes toward the [rangeEnd] value not excluding it, with the specified [step].\n * In order to go backwards the [step] must be negative.\n *\n * [step] must be greater than `Long.MIN_VALUE` and not equal to zero.\n */\n public fun fromClosedRange(rangeStart: ULong, rangeEnd: ULong, step: Long): ULongProgression = ULongProgression(rangeStart, rangeEnd, step)\n }\n}\n\n\n/**\n * An iterator over a progression of values of type `ULong`.\n * @property step the number by which the value is incremented on each step.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\nprivate class ULongProgressionIterator(first: ULong, last: ULong, step: Long) : ULongIterator() {\n private val finalElement = last\n private var hasNext: Boolean = if (step > 0) first <= last else first >= last\n private val step = step.toULong() // use 2-complement math for negative steps\n private var next = if (hasNext) first else finalElement\n\n override fun hasNext(): Boolean = hasNext\n\n override fun nextULong(): ULong {\n val value = next\n if (value == finalElement) {\n if (!hasNext) throw kotlin.NoSuchElementException()\n hasNext = false\n } else {\n next += step\n }\n return value\n }\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.math\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun min(a: UInt, b: UInt): UInt {\n return minOf(a, b)\n}\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun min(a: ULong, b: ULong): ULong {\n return minOf(a, b)\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun max(a: UInt, b: UInt): UInt {\n return maxOf(a, b)\n}\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun max(a: ULong, b: ULong): ULong {\n return maxOf(a, b)\n}","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:UseExperimental(ExperimentalUnsignedTypes::class)\npackage kotlin.internal\n\n// (a - b) mod c\nprivate fun differenceModulo(a: UInt, b: UInt, c: UInt): UInt {\n val ac = a % c\n val bc = b % c\n return if (ac >= bc) ac - bc else ac - bc + c\n}\n\nprivate fun differenceModulo(a: ULong, b: ULong, c: ULong): ULong {\n val ac = a % c\n val bc = b % c\n return if (ac >= bc) ac - bc else ac - bc + c\n}\n\n/**\n * Calculates the final element of a bounded arithmetic progression, i.e. the last element of the progression which is in the range\n * from [start] to [end] in case of a positive [step], or from [end] to [start] in case of a negative\n * [step].\n *\n * No validation on passed parameters is performed. The given parameters should satisfy the condition:\n *\n * - either `step > 0` and `start <= end`,\n * - or `step < 0` and `start >= end`.\n *\n * @param start first element of the progression\n * @param end ending bound for the progression\n * @param step increment, or difference of successive elements in the progression\n * @return the final element of the progression\n * @suppress\n */\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun getProgressionLastElement(start: UInt, end: UInt, step: Int): UInt = when {\n step > 0 -> if (start >= end) end else end - differenceModulo(end, start, step.toUInt())\n step < 0 -> if (start <= end) end else end + differenceModulo(start, end, (-step).toUInt())\n else -> throw kotlin.IllegalArgumentException(\"Step is zero.\")\n}\n\n/**\n * Calculates the final element of a bounded arithmetic progression, i.e. the last element of the progression which is in the range\n * from [start] to [end] in case of a positive [step], or from [end] to [start] in case of a negative\n * [step].\n *\n * No validation on passed parameters is performed. The given parameters should satisfy the condition:\n *\n * - either `step > 0` and `start <= end`,\n * - or `step < 0` and `start >= end`.\n *\n * @param start first element of the progression\n * @param end ending bound for the progression\n * @param step increment, or difference of successive elements in the progression\n * @return the final element of the progression\n * @suppress\n */\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun getProgressionLastElement(start: ULong, end: ULong, step: Long): ULong = when {\n step > 0 -> if (start >= end) end else end - differenceModulo(end, start, step.toULong())\n step < 0 -> if (start <= end) end else end + differenceModulo(start, end, (-step).toULong())\n else -> throw kotlin.IllegalArgumentException(\"Step is zero.\")\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmName(\"UStringsKt\") // string representation of unsigned numbers\n\npackage kotlin.text\n\n/**\n * Returns a string representation of this [Byte] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n//@kotlin.internal.InlineOnly\npublic /*inline*/ fun UByte.toString(radix: Int): String = this.toInt().toString(radix)\n\n/**\n * Returns a string representation of this [Short] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n//@kotlin.internal.InlineOnly\npublic /*inline*/ fun UShort.toString(radix: Int): String = this.toInt().toString(radix)\n\n\n/**\n * Returns a string representation of this [Int] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n//@kotlin.internal.InlineOnly\npublic /*inline*/ fun UInt.toString(radix: Int): String = this.toLong().toString(radix)\n\n/**\n * Returns a string representation of this [Long] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun ULong.toString(radix: Int): String = ulongToString(this.toLong(), checkRadix(radix))\n\n\n/**\n * Parses the string as a signed [UByte] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUByte(): UByte = toUByteOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a signed [UByte] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUByte(radix: Int): UByte = toUByteOrNull(radix) ?: numberFormatError(this)\n\n\n/**\n * Parses the string as a [UShort] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUShort(): UShort = toUShortOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a [UShort] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUShort(radix: Int): UShort = toUShortOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as an [UInt] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUInt(): UInt = toUIntOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as an [UInt] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUInt(radix: Int): UInt = toUIntOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as a [ULong] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toULong(): ULong = toULongOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a [ULong] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toULong(radix: Int): ULong = toULongOrNull(radix) ?: numberFormatError(this)\n\n\n\n\n\n/**\n * Parses the string as an [UByte] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUByteOrNull(): UByte? = toUByteOrNull(radix = 10)\n\n/**\n * Parses the string as an [UByte] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUByteOrNull(radix: Int): UByte? {\n val int = this.toUIntOrNull(radix) ?: return null\n if (int > UByte.MAX_VALUE) return null\n return int.toUByte()\n}\n\n/**\n * Parses the string as an [UShort] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUShortOrNull(): UShort? = toUShortOrNull(radix = 10)\n\n/**\n * Parses the string as an [UShort] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUShortOrNull(radix: Int): UShort? {\n val int = this.toUIntOrNull(radix) ?: return null\n if (int > UShort.MAX_VALUE) return null\n return int.toUShort()\n}\n\n/**\n * Parses the string as an [UInt] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUIntOrNull(): UInt? = toUIntOrNull(radix = 10)\n\n/**\n * Parses the string as an [UInt] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toUIntOrNull(radix: Int): UInt? {\n checkRadix(radix)\n\n val length = this.length\n if (length == 0) return null\n\n val limit: UInt = UInt.MAX_VALUE\n val start: Int\n\n val firstChar = this[0]\n if (firstChar < '0') {\n if (length == 1 || firstChar != '+') return null\n start = 1\n } else {\n start = 0\n }\n\n val uradix = radix.toUInt()\n val limitBeforeMul = limit / uradix\n var result = 0u\n for (i in start until length) {\n val digit = digitOf(this[i], radix)\n\n if (digit < 0) return null\n if (result > limitBeforeMul) return null\n\n result *= uradix\n\n val beforeAdding = result\n result += digit.toUInt()\n if (result < beforeAdding) return null // overflow has happened\n }\n\n return result\n}\n\n/**\n * Parses the string as an [ULong] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toULongOrNull(): ULong? = toULongOrNull(radix = 10)\n\n/**\n * Parses the string as an [ULong] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic fun String.toULongOrNull(radix: Int): ULong? {\n checkRadix(radix)\n\n val length = this.length\n if (length == 0) return null\n\n val limit: ULong = ULong.MAX_VALUE\n val start: Int\n\n val firstChar = this[0]\n if (firstChar < '0') {\n if (length == 1 || firstChar != '+') return null\n start = 1\n } else {\n start = 0\n }\n\n\n val uradix = radix.toUInt()\n val limitBeforeMul = limit / uradix\n var result = 0uL\n for (i in start until length) {\n val digit = digitOf(this[i], radix)\n\n if (digit < 0) return null\n if (result > limitBeforeMul) return null\n\n result *= uradix\n\n val beforeAdding = result\n result += digit.toUInt()\n if (result < beforeAdding) return null // overflow has happened\n }\n\n return result\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:Suppress(\"INVISIBLE_REFERENCE\", \"INVISIBLE_MEMBER\")\npackage kotlin\n\nimport kotlin.annotation.AnnotationTarget.*\nimport kotlin.internal.RequireKotlin\nimport kotlin.internal.RequireKotlinVersionKind\n\n/**\n * Marks the API that is dependent on the experimental unsigned types, including those types themselves.\n *\n * Usages of such API will be reported as warnings unless an explicit opt-in with\n * the [UseExperimental] annotation, e.g. `@UseExperimental(ExperimentalUnsignedTypes::class)`,\n * or with the `-Xuse-experimental=kotlin.ExperimentalUnsignedTypes` compiler option is given.\n *\n * It's recommended to propagate the experimental status to the API that depends on unsigned types by annotating it with this annotation.\n */\n@Experimental(level = Experimental.Level.WARNING)\n@MustBeDocumented\n@Target(CLASS, ANNOTATION_CLASS, PROPERTY, FIELD, LOCAL_VARIABLE, VALUE_PARAMETER, CONSTRUCTOR, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, TYPEALIAS)\n@Retention(AnnotationRetention.BINARY)\n@RequireKotlin(\"1.2.50\", versionKind = RequireKotlinVersionKind.COMPILER_VERSION)\npublic annotation class ExperimentalUnsignedTypes\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MathKt\")\n\n\npackage kotlin.math\n\n\n\n// constants, can't use them from nativeMath as they are not constants there\n\n/** Ratio of the circumference of a circle to its diameter, approximately 3.14159. */\n@SinceKotlin(\"1.2\")\npublic const val PI: Double = 3.141592653589793\n/** Base of the natural logarithms, approximately 2.71828. */\n@SinceKotlin(\"1.2\")\npublic const val E: Double = 2.718281828459045\n\n// region ================ Double Math ========================================\n\n/** Computes the sine of the angle [x] given in radians.\n *\n * Special cases:\n * - `sin(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sin(x: Double): Double\n\n/** Computes the cosine of the angle [x] given in radians.\n *\n * Special cases:\n * - `cos(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun cos(x: Double): Double\n\n/** Computes the tangent of the angle [x] given in radians.\n *\n * Special cases:\n * - `tan(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun tan(x: Double): Double\n\n/**\n * Computes the arc sine of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `asin(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun asin(x: Double): Double\n\n/**\n * Computes the arc cosine of the value [x];\n * the returned value is an angle in the range from `0.0` to `PI` radians.\n *\n * Special cases:\n * - `acos(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun acos(x: Double): Double\n\n/**\n * Computes the arc tangent of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `atan(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun atan(x: Double): Double\n\n/**\n * Returns the angle `theta` of the polar coordinates `(r, theta)` that correspond\n * to the rectangular coordinates `(x, y)` by computing the arc tangent of the value [y] / [x];\n * the returned value is an angle in the range from `-PI` to `PI` radians.\n *\n * Special cases:\n * - `atan2(0.0, 0.0)` is `0.0`\n * - `atan2(0.0, x)` is `0.0` for `x > 0` and `PI` for `x < 0`\n * - `atan2(-0.0, x)` is `-0.0` for 'x > 0` and `-PI` for `x < 0`\n * - `atan2(y, +Inf)` is `0.0` for `0 < y < +Inf` and `-0.0` for '-Inf < y < 0`\n * - `atan2(y, -Inf)` is `PI` for `0 < y < +Inf` and `-PI` for `-Inf < y < 0`\n * - `atan2(y, 0.0)` is `PI/2` for `y > 0` and `-PI/2` for `y < 0`\n * - `atan2(+Inf, x)` is `PI/2` for finite `x`y\n * - `atan2(-Inf, x)` is `-PI/2` for finite `x`\n * - `atan2(NaN, x)` and `atan2(y, NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun atan2(y: Double, x: Double): Double\n\n/**\n * Computes the hyperbolic sine of the value [x].\n *\n * Special cases:\n * - `sinh(NaN)` is `NaN`\n * - `sinh(+Inf)` is `+Inf`\n * - `sinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sinh(x: Double): Double\n\n/**\n * Computes the hyperbolic cosine of the value [x].\n *\n * Special cases:\n * - `cosh(NaN)` is `NaN`\n * - `cosh(+Inf|-Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun cosh(x: Double): Double\n\n/**\n * Computes the hyperbolic tangent of the value [x].\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(+Inf)` is `1.0`\n * - `tanh(-Inf)` is `-1.0`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun tanh(x: Double): Double\n\n/**\n * Computes the inverse hyperbolic sine of the value [x].\n *\n * The returned value is `y` such that `sinh(y) == x`.\n *\n * Special cases:\n * - `asinh(NaN)` is `NaN`\n * - `asinh(+Inf)` is `+Inf`\n * - `asinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun asinh(x: Double): Double\n\n/**\n * Computes the inverse hyperbolic cosine of the value [x].\n *\n * The returned value is positive `y` such that `cosh(y) == x`.\n *\n * Special cases:\n * - `acosh(NaN)` is `NaN`\n * - `acosh(x)` is `NaN` when `x < 1`\n * - `acosh(+Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun acosh(x: Double): Double\n\n/**\n * Computes the inverse hyperbolic tangent of the value [x].\n *\n * The returned value is `y` such that `tanh(y) == x`.\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(x)` is `NaN` when `x > 1` or `x < -1`\n * - `tanh(1.0)` is `+Inf`\n * - `tanh(-1.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun atanh(x: Double): Double\n\n/**\n * Computes `sqrt(x^2 + y^2)` without intermediate overflow or underflow.\n *\n * Special cases:\n * - returns `+Inf` if any of arguments is infinite\n * - returns `NaN` if any of arguments is `NaN` and the other is not infinite\n */\n@SinceKotlin(\"1.2\")\npublic expect fun hypot(x: Double, y: Double): Double\n\n/**\n * Computes the positive square root of the value [x].\n *\n * Special cases:\n * - `sqrt(x)` is `NaN` when `x < 0` or `x` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sqrt(x: Double): Double\n\n/**\n * Computes Euler's number `e` raised to the power of the value [x].\n *\n * Special cases:\n * - `exp(NaN)` is `NaN`\n * - `exp(+Inf)` is `+Inf`\n * - `exp(-Inf)` is `0.0`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun exp(x: Double): Double\n\n/**\n * Computes `exp(x) - 1`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `expm1(NaN)` is `NaN`\n * - `expm1(+Inf)` is `+Inf`\n * - `expm1(-Inf)` is `-1.0`\n *\n * @see [exp] function.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun expm1(x: Double): Double\n\n/**\n * Computes the logarithm of the value [x] to the given [base].\n *\n * Special cases:\n * - `log(x, b)` is `NaN` if either `x` or `b` are `NaN`\n * - `log(x, b)` is `NaN` when `x < 0` or `b <= 0` or `b == 1.0`\n * - `log(+Inf, +Inf)` is `NaN`\n * - `log(+Inf, b)` is `+Inf` for `b > 1` and `-Inf` for `b < 1`\n * - `log(0.0, b)` is `-Inf` for `b > 1` and `+Inf` for `b > 1`\n *\n * See also logarithm functions for common fixed bases: [ln], [log10] and [log2].\n */\n@SinceKotlin(\"1.2\")\npublic expect fun log(x: Double, base: Double): Double\n\n/**\n * Computes the natural logarithm (base `E`) of the value [x].\n *\n * Special cases:\n * - `ln(NaN)` is `NaN`\n * - `ln(x)` is `NaN` when `x < 0.0`\n * - `ln(+Inf)` is `+Inf`\n * - `ln(0.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun ln(x: Double): Double\n\n/**\n * Computes the common logarithm (base 10) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun log10(x: Double): Double\n\n/**\n * Computes the binary logarithm (base 2) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun log2(x: Double): Double\n\n/**\n * Computes `ln(x + 1)`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `ln1p(NaN)` is `NaN`\n * - `ln1p(x)` is `NaN` where `x < -1.0`\n * - `ln1p(-1.0)` is `-Inf`\n * - `ln1p(+Inf)` is `+Inf`\n *\n * @see [ln] function\n * @see [expm1] function\n */\n@SinceKotlin(\"1.2\")\npublic expect fun ln1p(x: Double): Double\n\n/**\n * Rounds the given value [x] to an integer towards positive infinity.\n\n * @return the smallest double value that is greater than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `ceil(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun ceil(x: Double): Double\n\n/**\n * Rounds the given value [x] to an integer towards negative infinity.\n\n * @return the largest double value that is smaller than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `floor(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun floor(x: Double): Double\n\n/**\n * Rounds the given value [x] to an integer towards zero.\n *\n * @return the value [x] having its fractional part truncated.\n *\n * Special cases:\n * - `truncate(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun truncate(x: Double): Double\n\n/**\n * Rounds the given value [x] towards the closest integer with ties rounded towards even integer.\n *\n * Special cases:\n * - `round(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun round(x: Double): Double\n\n/**\n * Returns the absolute value of the given value [x].\n *\n * Special cases:\n * - `abs(NaN)` is `NaN`\n *\n * @see absoluteValue extension property for [Double]\n */\n@SinceKotlin(\"1.2\")\npublic expect fun abs(x: Double): Double\n\n/**\n * Returns the sign of the given value [x]:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `sign(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sign(x: Double): Double\n\n\n/**\n * Returns the smaller of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun min(a: Double, b: Double): Double\n\n/**\n * Returns the greater of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun max(a: Double, b: Double): Double\n\n// extensions\n\n/**\n * Raises this value to the power [x].\n *\n * Special cases:\n * - `b.pow(0.0)` is `1.0`\n * - `b.pow(1.0) == b`\n * - `b.pow(NaN)` is `NaN`\n * - `NaN.pow(x)` is `NaN` for `x != 0.0`\n * - `b.pow(Inf)` is `NaN` for `abs(b) == 1.0`\n * - `b.pow(x)` is `NaN` for `b < 0` and `x` is finite and not an integer\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.pow(x: Double): Double\n\n/**\n * Raises this value to the integer power [n].\n *\n * See the other overload of [pow] for details.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.pow(n: Int): Double\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `NaN.absoluteValue` is `NaN`\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\npublic expect val Double.absoluteValue: Double\n\n/**\n * Returns the sign of this value:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `NaN.sign` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect val Double.sign: Double\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n *\n * If [sign] is `NaN` the sign of the result is undefined.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.withSign(sign: Double): Double\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.withSign(sign: Int): Double\n\n/**\n * Returns the ulp (unit in the last place) of this value.\n *\n * An ulp is a positive distance between this value and the next nearest [Double] value larger in magnitude.\n *\n * Special Cases:\n * - `NaN.ulp` is `NaN`\n * - `x.ulp` is `+Inf` when `x` is `+Inf` or `-Inf`\n * - `0.0.ulp` is `Double.MIN_VALUE`\n */\n@SinceKotlin(\"1.2\")\npublic expect val Double.ulp: Double\n\n/**\n * Returns the [Double] value nearest to this value in direction of positive infinity.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.nextUp(): Double\n\n/**\n * Returns the [Double] value nearest to this value in direction of negative infinity.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.nextDown(): Double\n\n/**\n * Returns the [Double] value nearest to this value in direction from this value towards the value [to].\n *\n * Special cases:\n * - `x.nextTowards(y)` is `NaN` if either `x` or `y` are `NaN`\n * - `x.nextTowards(x) == x`\n *\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.nextTowards(to: Double): Double\n\n/**\n * Rounds this [Double] value to the nearest integer and converts the result to [Int].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToInt() == Int.MAX_VALUE` when `x > Int.MAX_VALUE`\n * - `x.roundToInt() == Int.MIN_VALUE` when `x < Int.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.roundToInt(): Int\n\n/**\n * Rounds this [Double] value to the nearest integer and converts the result to [Long].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToLong() == Long.MAX_VALUE` when `x > Long.MAX_VALUE`\n * - `x.roundToLong() == Long.MIN_VALUE` when `x < Long.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Double.roundToLong(): Long\n\n// endregion\n\n\n\n// region ================ Float Math ========================================\n\n/** Computes the sine of the angle [x] given in radians.\n *\n * Special cases:\n * - `sin(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sin(x: Float): Float\n\n/** Computes the cosine of the angle [x] given in radians.\n *\n * Special cases:\n * - `cos(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun cos(x: Float): Float\n\n/** Computes the tangent of the angle [x] given in radians.\n *\n * Special cases:\n * - `tan(NaN|+Inf|-Inf)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun tan(x: Float): Float\n\n/**\n * Computes the arc sine of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `asin(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun asin(x: Float): Float\n\n/**\n * Computes the arc cosine of the value [x];\n * the returned value is an angle in the range from `0.0` to `PI` radians.\n *\n * Special cases:\n * - `acos(x)` is `NaN`, when `abs(x) > 1` or x is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun acos(x: Float): Float\n\n/**\n * Computes the arc tangent of the value [x];\n * the returned value is an angle in the range from `-PI/2` to `PI/2` radians.\n *\n * Special cases:\n * - `atan(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun atan(x: Float): Float\n\n/**\n * Returns the angle `theta` of the polar coordinates `(r, theta)` that correspond\n * to the rectangular coordinates `(x, y)` by computing the arc tangent of the value [y] / [x];\n * the returned value is an angle in the range from `-PI` to `PI` radians.\n *\n * Special cases:\n * - `atan2(0.0, 0.0)` is `0.0`\n * - `atan2(0.0, x)` is `0.0` for `x > 0` and `PI` for `x < 0`\n * - `atan2(-0.0, x)` is `-0.0` for 'x > 0` and `-PI` for `x < 0`\n * - `atan2(y, +Inf)` is `0.0` for `0 < y < +Inf` and `-0.0` for '-Inf < y < 0`\n * - `atan2(y, -Inf)` is `PI` for `0 < y < +Inf` and `-PI` for `-Inf < y < 0`\n * - `atan2(y, 0.0)` is `PI/2` for `y > 0` and `-PI/2` for `y < 0`\n * - `atan2(+Inf, x)` is `PI/2` for finite `x`y\n * - `atan2(-Inf, x)` is `-PI/2` for finite `x`\n * - `atan2(NaN, x)` and `atan2(y, NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun atan2(y: Float, x: Float): Float\n\n/**\n * Computes the hyperbolic sine of the value [x].\n *\n * Special cases:\n * - `sinh(NaN)` is `NaN`\n * - `sinh(+Inf)` is `+Inf`\n * - `sinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sinh(x: Float): Float\n\n/**\n * Computes the hyperbolic cosine of the value [x].\n *\n * Special cases:\n * - `cosh(NaN)` is `NaN`\n * - `cosh(+Inf|-Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun cosh(x: Float): Float\n\n/**\n * Computes the hyperbolic tangent of the value [x].\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(+Inf)` is `1.0`\n * - `tanh(-Inf)` is `-1.0`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun tanh(x: Float): Float\n\n/**\n * Computes the inverse hyperbolic sine of the value [x].\n *\n * The returned value is `y` such that `sinh(y) == x`.\n *\n * Special cases:\n * - `asinh(NaN)` is `NaN`\n * - `asinh(+Inf)` is `+Inf`\n * - `asinh(-Inf)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun asinh(x: Float): Float\n\n/**\n * Computes the inverse hyperbolic cosine of the value [x].\n *\n * The returned value is positive `y` such that `cosh(y) == x`.\n *\n * Special cases:\n * - `acosh(NaN)` is `NaN`\n * - `acosh(x)` is `NaN` when `x < 1`\n * - `acosh(+Inf)` is `+Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun acosh(x: Float): Float\n\n/**\n * Computes the inverse hyperbolic tangent of the value [x].\n *\n * The returned value is `y` such that `tanh(y) == x`.\n *\n * Special cases:\n * - `tanh(NaN)` is `NaN`\n * - `tanh(x)` is `NaN` when `x > 1` or `x < -1`\n * - `tanh(1.0)` is `+Inf`\n * - `tanh(-1.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun atanh(x: Float): Float\n\n/**\n * Computes `sqrt(x^2 + y^2)` without intermediate overflow or underflow.\n *\n * Special cases:\n * - returns `+Inf` if any of arguments is infinite\n * - returns `NaN` if any of arguments is `NaN` and the other is not infinite\n */\n@SinceKotlin(\"1.2\")\npublic expect fun hypot(x: Float, y: Float): Float\n\n/**\n * Computes the positive square root of the value [x].\n *\n * Special cases:\n * - `sqrt(x)` is `NaN` when `x < 0` or `x` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sqrt(x: Float): Float\n\n/**\n * Computes Euler's number `e` raised to the power of the value [x].\n *\n * Special cases:\n * - `exp(NaN)` is `NaN`\n * - `exp(+Inf)` is `+Inf`\n * - `exp(-Inf)` is `0.0`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun exp(x: Float): Float\n\n/**\n * Computes `exp(x) - 1`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `expm1(NaN)` is `NaN`\n * - `expm1(+Inf)` is `+Inf`\n * - `expm1(-Inf)` is `-1.0`\n *\n * @see [exp] function.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun expm1(x: Float): Float\n\n/**\n * Computes the logarithm of the value [x] to the given [base].\n *\n * Special cases:\n * - `log(x, b)` is `NaN` if either `x` or `b` are `NaN`\n * - `log(x, b)` is `NaN` when `x < 0` or `b <= 0` or `b == 1.0`\n * - `log(+Inf, +Inf)` is `NaN`\n * - `log(+Inf, b)` is `+Inf` for `b > 1` and `-Inf` for `b < 1`\n * - `log(0.0, b)` is `-Inf` for `b > 1` and `+Inf` for `b > 1`\n *\n * See also logarithm functions for common fixed bases: [ln], [log10] and [log2].\n */\n@SinceKotlin(\"1.2\")\npublic expect fun log(x: Float, base: Float): Float\n\n/**\n * Computes the natural logarithm (base `E`) of the value [x].\n *\n * Special cases:\n * - `ln(NaN)` is `NaN`\n * - `ln(x)` is `NaN` when `x < 0.0`\n * - `ln(+Inf)` is `+Inf`\n * - `ln(0.0)` is `-Inf`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun ln(x: Float): Float\n\n/**\n * Computes the common logarithm (base 10) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun log10(x: Float): Float\n\n/**\n * Computes the binary logarithm (base 2) of the value [x].\n *\n * @see [ln] function for special cases.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun log2(x: Float): Float\n\n/**\n * Computes `ln(a + 1)`.\n *\n * This function can be implemented to produce more precise result for [x] near zero.\n *\n * Special cases:\n * - `ln1p(NaN)` is `NaN`\n * - `ln1p(x)` is `NaN` where `x < -1.0`\n * - `ln1p(-1.0)` is `-Inf`\n * - `ln1p(+Inf)` is `+Inf`\n *\n * @see [ln] function\n * @see [expm1] function\n */\n@SinceKotlin(\"1.2\")\npublic expect fun ln1p(x: Float): Float\n\n/**\n * Rounds the given value [x] to an integer towards positive infinity.\n\n * @return the smallest Float value that is greater than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `ceil(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun ceil(x: Float): Float\n\n/**\n * Rounds the given value [x] to an integer towards negative infinity.\n\n * @return the largest Float value that is smaller than or equal to the given value [x] and is a mathematical integer.\n *\n * Special cases:\n * - `floor(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun floor(x: Float): Float\n\n/**\n * Rounds the given value [x] to an integer towards zero.\n *\n * @return the value [x] having its fractional part truncated.\n *\n * Special cases:\n * - `truncate(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun truncate(x: Float): Float\n\n/**\n * Rounds the given value [x] towards the closest integer with ties rounded towards even integer.\n *\n * Special cases:\n * - `round(x)` is `x` where `x` is `NaN` or `+Inf` or `-Inf` or already a mathematical integer.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun round(x: Float): Float\n\n\n/**\n * Returns the absolute value of the given value [x].\n *\n * Special cases:\n * - `abs(NaN)` is `NaN`\n *\n * @see absoluteValue extension property for [Float]\n */\n@SinceKotlin(\"1.2\")\npublic expect fun abs(x: Float): Float\n\n/**\n * Returns the sign of the given value [x]:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `sign(NaN)` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun sign(x: Float): Float\n\n\n\n/**\n * Returns the smaller of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun min(a: Float, b: Float): Float\n\n/**\n * Returns the greater of two values.\n *\n * If either value is `NaN`, then the result is `NaN`.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun max(a: Float, b: Float): Float\n\n// extensions\n\n\n/**\n * Raises this value to the power [x].\n *\n * Special cases:\n * - `b.pow(0.0)` is `1.0`\n * - `b.pow(1.0) == b`\n * - `b.pow(NaN)` is `NaN`\n * - `NaN.pow(x)` is `NaN` for `x != 0.0`\n * - `b.pow(Inf)` is `NaN` for `abs(b) == 1.0`\n * - `b.pow(x)` is `NaN` for `b < 0` and `x` is finite and not an integer\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Float.pow(x: Float): Float\n\n/**\n * Raises this value to the integer power [n].\n *\n * See the other overload of [pow] for details.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Float.pow(n: Int): Float\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `NaN.absoluteValue` is `NaN`\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\npublic expect val Float.absoluteValue: Float\n\n/**\n * Returns the sign of this value:\n * - `-1.0` if the value is negative,\n * - zero if the value is zero,\n * - `1.0` if the value is positive\n *\n * Special case:\n * - `NaN.sign` is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect val Float.sign: Float\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n *\n * If [sign] is `NaN` the sign of the result is undefined.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Float.withSign(sign: Float): Float\n\n/**\n * Returns this value with the sign bit same as of the [sign] value.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Float.withSign(sign: Int): Float\n\n\n/**\n * Rounds this [Float] value to the nearest integer and converts the result to [Int].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToInt() == Int.MAX_VALUE` when `x > Int.MAX_VALUE`\n * - `x.roundToInt() == Int.MIN_VALUE` when `x < Int.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Float.roundToInt(): Int\n\n/**\n * Rounds this [Float] value to the nearest integer and converts the result to [Long].\n * Ties are rounded towards positive infinity.\n *\n * Special cases:\n * - `x.roundToLong() == Long.MAX_VALUE` when `x > Long.MAX_VALUE`\n * - `x.roundToLong() == Long.MIN_VALUE` when `x < Long.MIN_VALUE`\n *\n * @throws IllegalArgumentException when this value is `NaN`\n */\n@SinceKotlin(\"1.2\")\npublic expect fun Float.roundToLong(): Long\n\n\n// endregion\n\n// region ================ Integer Math ========================================\n\n\n/**\n * Returns the absolute value of the given value [n].\n *\n * Special cases:\n * - `abs(Int.MIN_VALUE)` is `Int.MIN_VALUE` due to an overflow\n *\n * @see absoluteValue extension property for [Int]\n */\n@SinceKotlin(\"1.2\")\npublic expect fun abs(n: Int): Int\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun min(a: Int, b: Int): Int\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun max(a: Int, b: Int): Int\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `Int.MIN_VALUE.absoluteValue` is `Int.MIN_VALUE` due to an overflow\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\npublic expect val Int.absoluteValue: Int\n\n/**\n * Returns the sign of this value:\n * - `-1` if the value is negative,\n * - `0` if the value is zero,\n * - `1` if the value is positive\n */\n@SinceKotlin(\"1.2\")\npublic expect val Int.sign: Int\n\n\n\n/**\n * Returns the absolute value of the given value [n].\n *\n * Special cases:\n * - `abs(Long.MIN_VALUE)` is `Long.MIN_VALUE` due to an overflow\n *\n * @see absoluteValue extension property for [Long]\n */\n@SinceKotlin(\"1.2\")\npublic expect fun abs(n: Long): Long\n\n/**\n * Returns the smaller of two values.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun min(a: Long, b: Long): Long\n\n/**\n * Returns the greater of two values.\n */\n@SinceKotlin(\"1.2\")\npublic expect fun max(a: Long, b: Long): Long\n\n/**\n * Returns the absolute value of this value.\n *\n * Special cases:\n * - `Long.MIN_VALUE.absoluteValue` is `Long.MIN_VALUE` due to an overflow\n *\n * @see abs function\n */\n@SinceKotlin(\"1.2\")\npublic expect val Long.absoluteValue: Long\n\n/**\n * Returns the sign of this value:\n * - `-1` if the value is negative,\n * - `0` if the value is zero,\n * - `1` if the value is positive\n */\n@SinceKotlin(\"1.2\")\npublic expect val Long.sign: Int\n\n\n// endregion\n",null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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QAAA,wB;;MAAA,kC;IAAA,C;;MAeA,mC;MAEI,iBACJ,MAAM,KAAoB,U;MAEtB,iBACJ,MAAM,KAAoB,U;MAEtB,kBACuB,C;MAEvB,iBACsB,E;IAZ1B,C;;;;MAAA,0C;QAAA,yB;;MAAA,mC;IAAA,C;;MAeA,oC;MAEI,iBACuB,U;MAEvB,iBACuB,K;MAEvB,kBACuB,C;MAEvB,iBACsB,E;IAZ1B,C;;;;MAAA,2C;QAAA,0B;;MAAA,oC;IAAA,C;;MAeA,mC;MAEI,iBACsB,Q;MAEtB,iBACsB,G;MAEtB,kBACuB,C;MAEvB,iBACsB,C;IAZ1B,C;;;;MAAA,0C;QAAA,yB;;MAAA,mC;IAAA,C;;MAeA,mC;MAEI,iBACmC,C;MAEnC,iBACmC,K;MAEnC,0BAC4C,K;MAE5C,0BAC4C,K;MAE5C,yBAC2C,K;MAE3C,yBAC2C,K;MAE3C,qBACuC,uB;MAEvC,qBACuC,sB;MAEvC,kBACuB,C;MAEvB,iBACsB,E;IA9B1B,C;;;;MAAA,0C;QAAA,yB;;MAAA,mC;IAAA,C;;MAiCA,qC;IAAA,C;;;;MAAA,4C;QAAA,2B;;MAAA,qC;IAAA,C;;MAEA,sC;IAAA,C;;;;MAAA,6C;QAAA,4B;;MAAA,sC;IAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aCq5boB,gB;;;;cC/gb0C,mB;;gBAyEvC,yB;eAAyB,wB;;;uBAgBzB,gC;sBAAwB,+B;mCA4JjC,qB;mCA5ImC,qB;;kBAQ1B,2B;iBAA0B,0B;;;;;eCxZgB,wB;sBCQA,sB;iBCPA,0B;;;;aC1K8B,e;;;;;;;;;;;;gCC1ChD,yC;+BCTA,uC;+BCDA,sC;;gCC+I/B,+B;gBClEqE,yB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC1EE,wC;IANvF,C;IAAA,wD;MAO2C,8B;IAAA,C;IAP3C,8E;;MCSuF,wC;IARvF,C;IAAA,wD;MAS2C,8B;IAAA,C;IAT3C,8E;;MZcI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CAAJ,C;IACX,C;;MAOI,OAAO,UAAI,CA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,yB;MAAA,wD;MelxKA,sC;MCpGA,kC;MAAA,oC;;QAAsG,4C;MAAtG,C;MAAA,6D;QAC4C,+BAAW,CAAX,EAAc,CAAd,C;MAAA,C;MAD5C,kF;MDoGA,iCAOe,yB;QAxFf,8D;;UAwFe,uB;YAAU,eAAsB,gB;YAAtB,OA/Ed,cAAc,SA+EgB,CA/EhB,CAAd,EAA2B,SA+EM,CA/EN,CAA3B,C;UA+EI,C;QAAA,C;OAAA,C;Mf2wKf,sC;QAII,OAAO,mDe/wKI,2Bf+wK2B,Qe/wK3B,Cf+wKJ,E;MACX,C;KALA,C;;MAaI,OAAO,sBAAW,cAAX,C;IACX,C;;MAMoB,kBcjqJQ,iB;MdiqJA,iB;MAAxB,OAAiC,WiBp0K1B,WjBo0K0B,C;IACrC,C;;MAMoB,kBc9pJQ,iB;Md8pJA,iB;MAAxB,OAAiC,WiB30K1B,WjB20K0B,C;IACrC,C;;MAMoB,kBc3pJQ,iB;Md2pJA,iB;MAAxB,OAAiC,WiBl1K1B,WjBk1K0B,C;IACrC,C;;MAMoB,kBAAT,oB;MAAiB,mB;MAAxB,OAAiC,WiBz1K1B,WjBy1K0B,C;IACrC,C;;MAMoB,kBctpJQ,iB;MdspJA,iB;MAAxB,OAAiC,WiBh2K1B,WjBg2K0B,C;IACrC,C;;MAMoB,kBcnpJQ,iB;MdmpJA,iB;MAAxB,OAAiC,WiBv2K1B,WjBu2K0B,C;IACrC,C;;MAMoB,kBAAT,oB;MAAiB,iB;MAAxB,OAAiC,WiB92K1B,WjB82K0B,C;IACrC,C;;MAQI,OAAmC,OAA5B,2BAAgB,UAAhB,CAA4B,C;IACvC,C;;MAM0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OiB93K9C,WjB83K8C,C;IACzD,C;;MAM0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OiBr4K9C,WjBq4K8C,C;IACzD,C;;MAM0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OiB54K9C,WjB44K8C,C;IACzD,C;;MAM0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OiBn5K9C,WjBm5K8C,C;IACzD,C;;MAM0B,kBAAf,yB;MAAuB,iC;MAA9B,OAAqD,OiB15K9C,WjB05K8C,C;IACzD,C;;MAM0B,kBAAf,yB;M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RA,C;uFAUA,yB;MAAA,kD;MAAA,qC;QAOI,OAAe,QAAR,iBAAQ,EAAQ,OlC1hBY,KkC0hBpB,C;MACnB,C;KARA,C;uFAUA,yB;MAAA,kD;MAAA,qC;QAOI,OAAe,QAAR,iBAAQ,EAAQ,OhCzhBc,KgCyhBtB,C;MACnB,C;KARA,C;iGAUA,yB;MAAA,sC;MjChbA,6B;MiCgbA,0BAOgC,yB;QjCvbhC,6B;;UiCubgC,qB;YAAE,yBjC7aK,ciC6aK,EjC7aL,CiC6aL,C;UAAF,C;QAAA,C;OAAA,C;MAPhC,uC;QAOmB,kBAAR,iB;QAAQ,uB;;UpC2rBf,0D;YACI,IoC5rB0B,UjC7aK,cHymCjB,YAAK,KAAL,CGzmCiB,CiC6aL,CpC4rB1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QoChsBP,0B;MACJ,C;KARA,C;iGAUA,yB;MAAA,sC;MF3aA,+B;ME2aA,0BAOgC,yB;QFlbhC,+B;;UEkbgC,qB;YAAE,yBFxaQ,eEwaE,EFxaF,CEwaR,C;UAAF,C;QAAA,C;OAAA,C;MAPhC,uC;QAOmB,kBAAR,iB;QAAQ,uB;;UpC6rBf,0D;YACI,IoC9rB0B,UFxaQ,elCsmCpB,YAAK,KAAL,CkCtmCoB,CEwaR,CpC8rB1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QoClsBP,0B;MACJ,C;KARA,C;iGAUA,yB;MAAA,sC;MlCteA,+B;MkCseA,0BAOgC,yB;QlC7ehC,+B;;UkC6egC,qB;YAAE,yBlCneQ,ekCmeE,ElCneF,CkCmeR,C;UAAF,C;QAAA,C;OAAA,C;MAPhC,uC;QAOmB,kBAAR,iB;QAAQ,uB;;UpC+oBf,0D;YACI,IoChpB0B,UlCneQ,eFmnCpB,YAAK,KAAL,CEnnCoB,CkCmeR,CpCgpB1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QoCppBP,0B;MACJ,C;KARA,C;iGAUA,yB;MAAA,sC;MhCneA,iC;MgCmeA,0BAOgC,yB;QhC1ehC,iC;;UgC0egC,qB;YAAE,yBhCheW,gBgCgeD,EhCheC,CgCgeX,C;UAAF,C;QAAA,C;OAAA,C;MAPhC,uC;QAOmB,kBAAR,iB;QAAQ,uB;;UpCipBf,0D;YACI,IoClpB0B,UhCheW,gBJknCvB,YAAK,KAAL,CIlnCuB,CgCgeX,CpCkpB1B,C;cACI,sBAAO,K;cAAP,wB;;;UAGR,sBAAO,E;;;QoCtpBP,0B;MACJ,C;KARA,C;+FAUA,yB;MAAA,sC;MpCkwBA,0D;MAAA,+C;MG1tCA,6B;MiCwdA,yBAO+B,yB;QjC/d/B,6B;;UiC+d+B,qB;YAAE,yBjCrdM,ciCqdI,EjCrdJ,CiCqdN,C;UAAF,C;QAAA,C;OAAA,C;MAP/B,uC;QAOmB,kBAAR,iB;QAAQ,sB;;UpC+vBD,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IoChwByB,UjCrdM,cHqtCjB,YAAK,KAAL,CGrtCiB,CiCqdN,CpCgwBzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QoCpwBP,yB;MACJ,C;KARA,C;+FAUA,yB;MAAA,sC;MpCowBA,0D;MAAA,+C;MkCvtCA,+B;MEmdA,yBAO+B,yB;QF1d/B,+B;;UE0d+B,qB;YAAE,yBFhdS,eEgdC,EFhdD,CEgdT,C;UAAF,C;QAAA,C;OAAA,C;MAP/B,uC;QAOmB,kBAAR,iB;QAAQ,sB;;UpCiwBD,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IoClwByB,UFhdS,elCktCpB,YAAK,KAAL,CkCltCoB,CEgdT,CpCkwBzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QoCtwBP,yB;MACJ,C;KARA,C;+FAUA,yB;MAAA,sC;MpCstBA,0D;MAAA,+C;MEpuCA,+B;MkC8gBA,yBAO+B,yB;QlCrhB/B,+B;;UkCqhB+B,qB;YAAE,yBlC3gBS,ekC2gBC,ElC3gBD,CkC2gBT,C;UAAF,C;QAAA,C;OAAA,C;MAP/B,uC;QAOmB,kBAAR,iB;QAAQ,sB;;UpCmtBD,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IoCptByB,UlC3gBS,eF+tCpB,YAAK,KAAL,CE/tCoB,CkC2gBT,CpCotBzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QoCxtBP,yB;MACJ,C;KARA,C;+FAUA,yB;MAAA,sC;MpCwtBA,0D;MAAA,+C;MInuCA,iC;MgC2gBA,yBAO+B,yB;QhClhB/B,iC;;UgCkhB+B,qB;YAAE,yBhCxgBY,gBgCwgBF,EhCxgBE,CgCwgBZ,C;UAAF,C;QAAA,C;OAAA,C;MAP/B,uC;QAOmB,kBAAR,iB;QAAQ,sB;;UpCqtBD,Q;UAAA,OAAQ,SAAR,wBAAQ,CAAR,W;UAAd,OAAc,cAAd,C;YAAc,uB;YACV,IoCttByB,UhCxgBY,gBJ8tCvB,YAAK,KAAL,CI9tCuB,CgCwgBZ,CpCstBzB,C;cACI,qBAAO,K;cAAP,uB;;;UAGR,qBAAO,E;;;QoC1tBP,yB;MACJ,C;KARA,C;iFAUA,yB;MAAA,4C;MjChgBA,6B;MiCggBA,4B;QAQI,OjC9fmC,ciC8fpB,KAAR,iBAAQ,CjC9foB,C;MiC+fvC,C;KATA,C;iFAWA,yB;MAAA,4C;MF5fA,+B;ME4fA,4B;QAQI,OF1fsC,eE0fvB,KAAR,iBAAQ,CF1fuB,C;ME2f1C,C;KATA,C;iFAWA,yB;MAAA,4C;MlCxjBA,+B;MkCwjBA,4B;QAQI,OlCtjBsC,ekCsjBvB,KAAR,iBAAQ,ClCtjBuB,C;MkCujB1C,C;KATA,C;iFAWA,yB;MAAA,4C;MhCtjBA,iC;MgCsjBA,4B;QAQI,OhCpjByC,gBgCojB1B,KAAR,iBAAQ,ChCpjB0B,C;MgCqjB7C,C;KATA,C;iFAWA,yB;MAAA,+C;MAAA,iE;MA01EI,0D;MA11EJ,uC;QAQkB,Q;QAAA,OAAa,SAk1EX,YAl1EF,SAk1EN,QAAQ,CAl1EW,CAAb,W;QAAd,OAAc,cAAd,C;UAAc,uB;UACV,cAAc,sBAAK,KAAL,C;UACd,IAAI,UAAU,OAAV,CAAJ,C;YAAwB,OAAO,O;;QAEnC,MAAM,gCAAuB,mDAAvB,C;MACV,C;KAbA,C;iFAeA,yB;MAAA,+C;MAAA,iE;MAm1EI,0D;MAn1EJ,uC;QAQkB,Q;QAAA,OAAa,SA20EX,YA30EF,SA20EN,QAAQ,CA30EW,CAAb,W;QAAd,OAAc,cAAd,C;UAAc,uB;UACV,cAAc,s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M;QACI,MjCx8LiD,SiCw8LjD,GjCx8L2D,KAAK,GAAW,CCiJ5C,SgCuzLxB,OhCvzLkC,KAAL,GAAiB,KAAtB,CDjJ4C,MAAX,IAAf,C;;MiC08LrD,OAAO,G;IACX,C;+EAEA,yB;MAAA,0C;MjC5vLA,6B;MiC4vLA,4B;QAOI,OjCzvLmC,ciCyvLpB,IAAR,iBAAQ,CjCzvLoB,C;MiC0vLvC,C;KARA,C;+EAUA,yB;MAAA,0C;MFvvLA,+B;MEuvLA,4B;QAOI,OFpvLsC,eEovLvB,IAAR,iBAAQ,CFpvLuB,C;MEqvL1C,C;KARA,C;+EAUA,yB;MAAA,sC;MA5hBA,wB;MA4hBA,iBAOiB,yB;QlCj2Lb,6B;;UkCi2Le,OlCx1LoB,ckCw1LpB,ElCx1L8B,KAAL,GAAiB,GAAtB,C;QkCw1LR,C;OAAd,C;MAPjB,4B;QAphBoB,Q;QADhB,UAAgB,W;QACA,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MjC98KiD,SiC88KjD,GjC98K2D,KAAK,GAAW,CDgJ5C,SkC8zKf,OlC9zKyB,KAAL,GAAiB,GAAtB,CChJ4C,MAAX,IAAf,C;;QiCw+LrD,OAxhBO,G;MAyhBX,C;KARA,C;+EAUA,yB;MAAA,sC;MAxhBA,wB;MAwhBA,iBAOiB,yB;QhC12Lb,6B;;UgC02Le,OhCj2LoB,cgCi2LpB,EhCj2L8B,KAAL,GAAiB,KAAtB,C;QgCi2LR,C;OAAd,C;MAPjB,4B;QAhhBoB,Q;QADhB,UAAgB,W;QACA,2B;QAAhB,OAAgB,cAAhB,C;UAAgB,yB;UACZ,MjC59KiD,SiC49KjD,GjC59K2D,KAAK,GAAW,CCiJ5C,SgC20Kf,OhC30KyB,KAAL,GAAiB,KAAtB,CDjJ4C,MAAX,IAAf,C;;QiCk/LrD,OAphBO,G;MAqhBX,C;KARA,C;;MC/hMoB,UACL,M;MAHX,aAAa,gBAAW,cAAX,C;MACb,YAAY,C;MACI,2B;MAAhB,OAAgB,cAAhB,C;QAAgB,yB;QACZ,oBAAO,cAAP,EAAO,sBAAP,WAAkB,OAAlB,C;;MACJ,OAAO,M;IACX,C;;MAUoB,UACL,M;MAHX,aAAa,eAAU,cAAV,C;MACb,YAAY,C;MACI,2B;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AAX,C;QAAsB,gC;WACtB,0C;QAA4B,MAAM,MAAO,U;;QACjC,a;MAHZ,W;IAKJ,C;;;MAlCA,0D;MACyD,6BAAK,QAAL,EAAe,2CAAf,C;MADzD,Y;IAAA,C;;M1B+CA,sC;MAAA,4C;IATJ,C;IAAA,yF;MAWoB,2B;IAAA,CAXpB,E;IAAA,4E;MAcY,wBAAW,MAAX,C;IAAA,C;IAdZ,sF;;MDiHW,Q;MADP,e4B1JA,M5B0JA,C;MACO,Q4B3JP,M5B2JO,+D;M4B1JX,W;IAAA,C;;;MCwHI,aAAa,IAAb,MAAa,E;MACb,KAAK,MAAL,C;MACA,OAAO,M;IACX,C;;MC3HyG,kBAApB,wBAAc,IAAd,C;MAA0B,IvEoE3G,a;MuEpEiF,OvEqE1E,W;IuErE0E,C;;MAQvC,kBAA1B,cAAhB,sCAAgB,EAAc,IAAd,EAAoB,IAApB,C;MAAiC,sBvE2E3C,WuE3E2C,C;MAAjD,OvE4EO,W;IuE5EP,C;;MCZ8C,8B;MAAA,OCIN,aDJwB,yBAAa,QAAb,mCCIxB,C7D6rBgC,sB;I4DjsB1B,C;;MzFu8GvC,kBAAY,gB;MA8EH,Q;MAAhB,wByF7gHqB,UzF6gHrB,gB;QAAgB,cyF7gHK,UzF6gHrB,M;QAAsB,IAAI,CyF7gHkB,oBzF6gHP,OyF7gHO,CzF6gHtB,C;UAAyB,WAAY,WAAI,OAAJ,C;;MyF7gH3D,qBzF8gHO,W;MyF7gHP,InFoJwD,CmFpJpD,cnFoJqD,UmFpJzD,C;Q5DoGuC,U;Q4DnGnC,qB5DmGyD,OAAtB,+B4DnGd,mB5DmGc,uBAAsB,CAAO,W;Q8DvGpD,kBAAhB,sB;QFMQ,0C;QACA,IAAI,E5DkNoC,0BAAU,C4DlN9C,CAAJ,C;UACI,2BAAO,GAAP,C;;QAEW,sCAAa,GAAb,C;QALnB,sBxE8DG,W0EnE8B,W;QFYjC,OAAO,I;;MAGX,OAAO,K;IACX,C;;MAQmB,c;;QzF6yTC,Q;QAAhB,wByF7yTI,UzF6yTJ,gB;UAAgB,cyF7yTZ,UzF6yTJ,M;UAAsB,IyF7yTD,oBzF6yTe,OyF7yTf,CzF6yTC,C;YAAwB,aAAO,I;YAAP,e;;;QAC9C,aAAO,K;;;MyF9yTP,e;QACI,kBAA6B,MAAX,UAA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AqGA,6B;MClGA,4C;MDHA,wB;QAEsD,OCGF,WDyGjB,cAAU,SAAL,GAAiB,GAAtB,CCzGiB,EC0GjB,cF7GqC,KE6G3B,KAAL,GAAiB,KAAtB,CD1GiB,C;MDHE,C;KAFtD,C;0FAGA,yB;MAkGA,6B;MClGA,4C;MDAA,wB;QAEoD,OCAA,WDyGjB,cAAU,SAAL,GAAiB,GAAtB,CCzGiB,EDAkB,KCAlB,C;MDAA,C;KAFpD,C;0FAGA,yB;MAyGA,WAS6D,wB;MAT7D,+B;MgCzGA,8C;MhCAA,wB;QAEsD,OgCAA,YhCgHjB,eAAW,oBAAL,SAAK,CAAL,UAAN,CgChHiB,EhCAmB,KgCAnB,C;MhCAA,C;KAFtD,C;0FAIA,yB;MA2FA,6B;MCrFA,kD;MDNA,wB;QAEqD,OCMD,cD4FjB,cAAU,SAAL,GAAiB,GAAtB,CC5FiB,ED4FjB,cAlGoC,KAkG1B,KAAL,GAAiB,GAAtB,CC5FiB,C;MDNC,C;KAFrD,C;0FAGA,yB;MAwFA,6B;MCrFA,kD;MDHA,wB;QAEsD,OCGF,cD4FjB,cAAU,SAAL,GAAiB,GAAtB,CC5FiB,EC6FjB,cFhGqC,KEgG3B,KAAL,GAAiB,KAAtB,CD7FiB,C;MDHE,C;KAFtD,C;0FAGA,yB;MAqFA,6B;MCrFA,kD;MDAA,wB;QAEoD,OCAA,cD4FjB,cAAU,SAAL,GAAiB,GAAtB,CC5FiB,EDAkB,KCAlB,C;MDAA,C;KAFpD,C;0FAGA,yB;MA4FA,WAS6D,wB;MAT7D,+B;MgC5FA,oD;MhCAA,wB;QAEsD,OgCAA,ehCmGjB,eAAW,oBAAL,SAAK,CAAL,UAAN,CgCnGiB,EhCAmB,KgCAnB,C;MhCAA,C;KAFtD,C;0EAIA,yB;MAAA,0B;MAAA,+B;MAAA,mB;QAE0C,sBAAW,OAAL,SAAK,KAAX,C;MAAA,C;KAF1C,C;0EAGA,yB;MAAA,0B;MAAA,+B;MAAA,mB;QAE0C,sBAAW,OAAL,SAAK,KAAX,C;MAAA,C;KAF1C,C;kGAIA,yB;MAAA,8C;MAuEA,6B;MAvEA,wB;QAE8D,0BA8E3B,cAAU,SAAL,GAAiB,GAAtB,CA9E2B,EA8E3B,cA9EoD,KA8E1C,KAAL,GAAiB,GAAtB,CA9E2B,C;MAAA,C;KAF9D,C;0FAIA,yB;MAAA,+B;MyJ5IJ,0B;MzJ4II,wB;QAEmD,sByJ3IgC,OzJ2I1B,IAAK,KyJ3IX,GzJ2IoB,KAAM,KyJ3IM,CzJ2IhC,C;MAAA,C;KAFnD,C;wFAGA,yB;MAAA,+B;MyJ1IJ,0B;MzJ0II,wB;QAEkD,sByJzI+B,OzJyIzB,IAAK,KyJzIX,GzJyImB,KAAM,KyJzIM,CzJyI/B,C;MAAA,C;KAFlD,C;0FAGA,yB;MAAA,+B;MyJxIJ,0B;MzJwII,wB;QAEmD,sByJvIgC,OzJuI1B,IAAK,KyJvIX,GzJuIoB,KAAM,KyJvIM,CzJuIhC,C;MAAA,C;KAFnD,C;0EAGA,yB;MAAA,+B;MyJtIJ,0B;MzJsII,mB;QAEiC,sByJrIqB,OAAP,CzJqIR,SyJrIe,CzJqIrB,C;MAAA,C;KAFjC,C;;MAamC,gB;IAAA,C;kFACnC,yB;MyJ9IJ,4B;MzJ8II,mB;QASqC,OyJpJiD,QzJoJ5C,SyJpJY,GzJoJE,GyJpJ8B,C;MzJoJjD,C;KATrC,C;;MAmBiC,OAAK,SAAL,GAAiB,G;IAAjB,C;gFACjC,yB;MAAA,WASqD,wB;MATrD,mB;QASmC,OAAK,oBAAL,SAAK,CAAL,U;MAAA,C;KATnC,C;;MAaqC,W;IAAA,C;oFACrC,yB;MAAA,iC;MyJhLJ,4B;MzJgLI,mB;QASuC,uByJtL+C,QzJsLnC,SyJtLG,GzJsLW,GyJtLqB,CzJsL/C,C;MAAA,C;KATvC,C;gFAUA,yB;MAAA,6B;MAAA,mB;QASmC,qBAAU,SAAL,GAAiB,GAAtB,C;MAAA,C;KATnC,C;kFAUA,yB;MAAA,WAS6D,wB;MAT7D,+B;MAAA,mB;QASqC,sBAAW,oBAAL,SAAK,CAAL,UAAN,C;MAAA,C;KATrC,C;;MAiBqC,OApDC,SAAL,GAAiB,G;IAoDb,C;;MAOE,OA3DD,SAAL,GAAiB,G;IA2DX,C;;MAEE,OAAQ,CA7DX,SAAL,GAAiB,GA6DD,Y;IAAR,C;;;;;;MA/O7C,c;MAG6D,qD;MAH7D,a;IAAA,C;;MAAA,2IAG6D,oCAH7D,G;IAAA,C;wEAmPA,yB;MAAA,+B;MAAA,4B;QAU0C,sBAAM,SAAN,C;MAAA,C;KA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CAAN,EAAS,CAAT,C;MACX,C;KARA,C;wEAUA,yB;MAAA,8C;MAAA,uB;QAOI,OAAO,MAAM,CAAN,EAAS,CAAT,C;MACX,C;KARA,C;;MC3BI,ShLyHoD,cgLzH3C,ChLyH2C,EgLzHvC,ChLyHuC,C;MgLxHpD,ShLwHoD,cgLxH3C,ChLwH2C,EgLxHvC,ChLwHuC,C;MgLvHpD,OhLiDkE,YgLjDvD,EhLiDwE,KAAjB,EgLjDjD,EhLiD8E,KAA7B,CgLjDvD,KAAX,GhLgFsD,SgLhFjC,EhLgF2C,KAAK,GgLhF3C,EhLgFuD,KAAZ,IAAf,CgLhFtD,GhLmEqD,SAAU,CAaT,SgLhFpB,EhLgF8B,KAAK,GgLhF9B,EhLgF0C,KAAZ,IAAf,CAbS,MAAK,GgLnExB,ChLmEmC,KAAX,IAAf,C;IgLlEzD,C;;MAGI,SjJsHsD,eiJtH7C,CjJsH6C,EiJtHzC,CjJsHyC,C;MiJrHtD,SjJqHsD,eiJrH7C,CjJqH6C,EiJrHzC,CjJqHyC,C;MiJpHtD,OjJmDmE,aiJnDxD,EjJmD0E,KAAlB,EiJnDlD,EjJmDgF,KAA9B,CiJnDxD,KAAX,GjJ6EwD,UiJ7EnC,EjJ6E8C,KAAK,UiJ7E9C,EjJ6E0D,KAAZ,CAAhB,CiJ7ExD,GjJgEuD,UAAW,CAaV,UiJ7EtB,EjJ6EiC,KAAK,UiJ7EjC,EjJ6E6C,KAAZ,CAAhB,CAbU,MAAK,KiJhE3B,CjJgEsC,KAAX,CAAhB,C;IiJ/D3D,C;;MAqBI,WAAO,CAAP,C;QAD8E,OhLsBZ,YgLrBlD,KhLqBmE,KAAjB,EgLrBzC,GhLqBsE,KAA7B,CgLrBlD,KAD8D,GAChD,GADgD,GhLqDxB,SgLpDf,GhLoDyB,KAAK,GgLpDxB,mBAAiB,GAAjB,EAAsB,KAAtB,EhLkQV,SgLlQuC,IhLkQvC,CgLlQU,ChLoDoC,KAAZ,IAAf,C;;YgLnDtD,WAAO,CAAP,C;QAF8E,OhLsBZ,YgLpBlD,KhLoBmE,KAAjB,EgLpBzC,GhLoBsE,KAA7B,CgLpBlD,KAF8D,GAEhD,GAFgD,GhLwCzB,SgLtCd,GhLsCwB,KAAK,GgLtCvB,mBAAiB,KAAjB,EAAwB,GAAxB,EhLiQV,SgLjQwC,CAAC,IA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vH6B,MAAK,EAAY,CDsH9C,cE5HwC,KF4H9B,KAAL,GAAiB,GAAtB,CCtH8C,MAAZ,CAAf,C;MCNC,C;KAFvD,C;gGAGA,yB;MAmHA,6B;MAnHA,wB;QAEwD,ODGF,cAAe,YAAL,CCuH7B,cAAU,SAAL,GAAiB,KAAtB,CDvH6B,MAAK,EAAY,CCuH9C,cA1HyC,KA0H/B,KAAL,GAAiB,KAAtB,CDvH8C,MAAZ,CAAf,C;MCHE,C;KAFxD,C;gGAGA,yB;MAgHA,6B;MAhHA,wB;QAEsD,ODAA,cAAe,YAAL,CCuH7B,cAAU,SAAL,GAAiB,KAAtB,CDvH6B,MAAK,ECAK,KDAO,KAAZ,CAAf,C;MCAA,C;KAFtD,C;gGAGA,yB;MAuHA,aAS6D,0B;MAT7D,+B;MAvHA,wB;QAEwD,O8BAA,eAAW,C9B8H9B,eAAW,oBAAL,SAAK,CAAL,YAAN,C8B9H8B,MAAK,U9BAK,K8BAO,KAAZ,CAAhB,C;M9BAA,C;KAFxD,C;4FAIA,yB;MAyGA,6B;MDnGA,4C;MCNA,wB;QAEqD,ODMD,WC0GjB,cAAU,SAAL,GAAiB,KAAtB,CD1GiB,EDyGjB,cE/GoC,KF+G1B,KAAL,GAAiB,GAAtB,CCzGiB,C;MCNC,C;KAFrD,C;4FAGA,yB;MAsGA,6B;MDnGA,4C;MCHA,wB;QAEsD,ODGF,WC0GjB,cAAU,SAAL,GAAiB,KAAtB,CD1GiB,EC0GjB,cA7GqC,KA6G3B,KAAL,GAAiB,KAAtB,CD1GiB,C;MCHE,C;KAFtD,C;4FAGA,yB;MAmGA,6B;MDnGA,4C;MCAA,wB;QAEoD,ODAA,WC0GjB,cAAU,SAAL,GAAiB,KAAtB,CD1GiB,ECAkB,KDAlB,C;MCAA,C;KAFpD,C;4FAGA,yB;MA0GA,aAS6D,0B;MAT7D,+B;M8B1GA,8C;M9BAA,wB;QAEsD,O8BAA,Y9BiHjB,eAAW,oBAAL,SAAK,CAAL,YAAN,C8BjHiB,E9BAmB,K8BAnB,C;M9BAA,C;KAFtD,C;4FAIA,yB;MA4FA,6B;MDtFA,kD;MCNA,wB;QAEqD,ODMD,cC6FjB,cAAU,SAAL,GAAiB,KAAtB,CD7FiB,ED4FjB,cElGoC,KFkG1B,KAAL,GAAiB,GAAtB,CC5FiB,C;MCNC,C;KAFrD,C;4FAGA,yB;MAyFA,6B;MDtFA,kD;MCHA,wB;QAEsD,ODGF,cC6FjB,cAAU,SAAL,GAAiB,KAAtB,CD7FiB,EC6FjB,cAhGqC,KAgG3B,KAAL,GAAiB,KAAtB,CD7FiB,C;MCHE,C;KAFtD,C;4FAGA,yB;MAsFA,6B;MDtFA,kD;MCAA,wB;QAEoD,ODAA,cC6FjB,cAAU,SAAL,GAAiB,KAAtB,CD7FiB,ECAkB,KDAlB,C;MCAA,C;KAFpD,C;4FAGA,yB;MA6FA,aAS6D,0B;MAT7D,+B;M8B7FA,oD;M9BAA,wB;QAEsD,O8BAA,e9BoGjB,eAAW,oBAAL,SAAK,CAAL,YAAN,C8BpGiB,E9BAmB,K8BAnB,C;M9BAA,C;KAFtD,C;4EAIA,yB;MAAA,4B;MAAA,iC;MAAA,mB;QAE2C,uBAAY,QAAL,SAAK,KAAZ,C;MAAA,C;KAF3C,C;4EAGA,yB;MAAA,4B;MAAA,iC;MAAA,mB;QAE2C,uBAAY,QAAL,SAAK,KAAZ,C;MAAA,C;KAF3C,C;oGAIA,yB;MAAA,8C;MAwEA,6B;MAxEA,wB;QAE+D,0BA+E5B,cAAU,SAAL,GAAiB,KAAtB,CA/E4B,EA+E5B,cA/EqD,KA+E3C,KAAL,GAAiB,KAAtB,CA/E4B,C;MAAA,C;KAF/D,C;4FAIA,yB;MAAA,iC;MuJvHJ,4B;MvJuHI,wB;QAEqD,uBuJtHiC,QvJsH1B,IAAK,KuJtHX,GvJsHoB,KAAM,KuJtHM,CvJsHjC,C;MAAA,C;KAFrD,C;0FAGA,yB;MAAA,iC;MuJrHJ,4B;MvJqHI,wB;QAEoD,uBuJpHgC,QvJoHzB,IAAK,KuJpHX,GvJoHmB,KAAM,KuJpHM,CvJoHhC,C;MAAA,C;KAFpD,C;4FAGA,yB;MAAA,iC;MuJnHJ,4B;MvJmHI,wB;QAEqD,uBuJlHiC,QvJkH1B,IAAK,KuJlHX,GvJkHoB,KAAM,KuJlHM,CvJkHjC,C;MAAA,C;KAFrD,C;4EAGA,yB;MAAA,iC;MuJjHJ,4B;MvJiHI,mB;QAEkC,uBuJhHsB,QAAP,CvJgHR,SuJhHe,CvJgHtB,C;MAAA,C;KAFlC,C;kFAIA,yB;MAAA,0B;MAAA,mB;QAUmC,OAAK,OAAL,SAAK,C;MAAL,C;KAVn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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IjGsE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"} \ No newline at end of file diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.meta.js b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.meta.js deleted file mode 100644 index b0cb513..0000000 --- a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin.meta.js +++ /dev/null @@ -1,2 +0,0 @@ -// Kotlin.kotlin_module_metadata(393729, "kotlin", "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"); -// Kotlin.kotlin_module_metadata(393729, "kotlin", "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"); diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/jquery/jquery.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/jquery/jquery.kjsm deleted file mode 100644 index 60f74cfe3dd9439cccad89804d9b534a7adcd620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1848 zcma)5OLyBu6xMS*zHyve*DXf8OxluCNbI^iN}xcKl+*eg%IoADSdOJhq(qinNlwTw z=)MbJ#h+lqmVd^b(KHTFdc2tV=6?6_-MJcBmgQQOWz%wKF&?m^Cv#bx!7n~MKeF+6 znqtR!l_nXu_p>wLB8qlXQI=pIK=Z447FJ1~jlg}BRlt6ziX=OPW~d?_i>U-AW;2;Z z;FeVZo~UT&YS&KxM5J?y31g8RN@x&7sVo+Chv4mJNd#UKFYqCSI|7S0L)R*UR+I6 zuuJgLTtv{ED&Z(U%>Z-{wR}xasVp>f#C!%`CVwW)nJ83)ej!D41}lYBQKrE%O(MBZ zp_K}CX&&I8CQ%gw?8#XnLs7|yD$24HG$FBH%6=qiyoFG6FZ%~YKJ9PBRW&QO2ZKqH zRfRa)3iIip{%V7xa+6BSA`@w8xJ}~f&%M!~iSU>z_mixwsJ|_ekCQM4e@5(&!1nU_ zB$c)K6LgYtPacSQT76qcHFj#QO>L^9ae#C5gjNY`T)zM>Q}4jO4m=cTIw3u9^T`qL zQl>Jj@&X!RPLo!!Q9gyngH%q{=p31Lez(Cv3mCW1?pbtp=iQ2ZXG*n;b#HwcpYcRhmEB&M<$cu zy`|L_IiFJwTS{m9Tu0}O7=A&ySC-0M=hcqaOM} zSC7coJFEAhH*T8V=zKe~ItL|N0odqkPoshQ==5)Up4Z zZ5!X!>|!>zbaWfvGrU4J=JYc2Exceh6FCZ6@=Px0qD zP%ts_ahSX_v(LOUO$i|mA*6&sF<7lt9Y5zv&$@X8ZxpK1_cI+tSqiLp05-gv1HdMk zjiVIcMoqQyrBwk`5@n1G703spyg>P})Y9U#@g8-Sc%3I}r{=QP8%3$ra@O^;q*wU# z#^y}DTBTDNn`Q3|d&Sm{H`0XY?NDzcU22D$^r`_8D}B5Nfszz_f|(~ z2+nmngYpzFNuc~9;~bwBl>s_7;112)CD1Yqoqs=byaJod)OShRgX0`{o3J$}WKK z0;=1Aj`#%zOaQ{}`diKsbepAqd4BE+Mcvyxa`E4LH89{}zpz`s?eAF!xTCTOY^**I Ty|;jEakK*0I(>2c0~E*)*mjHq diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/annotation/annotation.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/annotation/annotation.kjsm deleted file mode 100644 index df6acf2fd738171d1c14367ff01c7dff27be759f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmaiy&2G~`5XaXau_u$%*=*9*OCaY|$W=|8EZ(I{EcF5} zis->$FpRypKO9Voh!dZT{K?1*y<XQ%0_d{<~+r;Dp>Q^x+@KJw$$)v}u&&QDjDw3YM>QB94OoZCsJ)A`5r ztT=Wkj7DlBQ%SC*xL5 zjoUeG4w7X_l&nZrCD$Y!$(kgWtV;^XhGbK6U2-EQ zR+U{-)={>mELXO!tWdV0Y*X3w+`8~xb2l=33su+@0Io0ro^G|1Y%W{QW#7#OG*g*` zqzb7@S|d568i|wYBtdGBnxyrMI&A#WKU>QaxY1pgF5l|1TM*C^4(tkq>Pri-V?Qt7 zC2jvF=~>okCr?6}LFbQJ^f5xK;6Hl@Sy?MDYYM@4TPWyHEod8^-8TJ(&hN3mHo65J JTzXR?vY#U=%=-WU diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/browser/browser.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/browser/browser.kjsm deleted file mode 100644 index 695ad787d5dfa14ac6642144881c7e4647b40c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 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 UK$>3@vDdi-#e{JUll5HV-{}yJ1poj5 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/comparisons/comparisons.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/comparisons/comparisons.kjsm deleted file mode 100644 index b8250adec2b5a8f2b4fc21ef2ffbb4a1fd1d8d6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5539 zcmb`LO?%Tu5XU81me(8G*(izQ2udKOEhH^fOiKfOc}hZgobc8Hp{E{1BEYRI=aCg2 zeC?sVbLzF1eg@9{ApIOYc4l`HY_FoIz#$oFz5n^m&aB2-8-`Ib48w#!3;vur&;6yJ zM&0<*Zoju5B;7$j9`HZQ+)=}PYIMALH%JeXAi9_Ag~_HA1Zh9vJmdOt6!Oybc*rZt z1Ke%JDK`UdKISY5pNGjH+~dvr>T1%ZOXGVZuFZ#>D`%2gCC3{>&IVx=?qVp_n+Nf3 z+U>_{oOR!(a#LKOnW&4R6WR@(QjMLgJ;hOKaTR<@Uxf4Y_lp ze}Gvk-;DY}%I({IfR-OT>nABM@5m`2xXc&7d$AuT-Ch`{L9`POx=-V9@8NJCVzPHI zr{x_fb#_SG>&6g5EgmTr=kY-l4Q_UmLCUN0`gQ=9H7bNmKey9oVay%;59<@kj%1{P zBby_2S1G|w^E&ZuUjIHwf?f#8zYB)jG5(j@5nrXBpZ9oW`*}~!sVlE?``t?U42<77 zh|=zpZWL}t!C=4}J7ZJae@t!(gWJpyCU=-Atd;@R5GArU*)rLRw5FIMTchzAu;|4F zH5aoqI#2dA*|TKNkzFSHKH2kRKOp-N*$ZSZl3gMDIoT^UVup7oLwZHbd8geL zGu=$NUt7)`M|WGgJBY^=&2~dHJnll`AjqmTQ>Q6$g{(+ifP8XSd8w9j>bC3Riz!EXv8M0uD@qinJY=g0@wp9zW)~c#F#X zFzT4HF&W`xja-O0r$U>;%USN(lXg+Z!kk?br!YIq4VmD>U2H?v#IVZ9- z1+ns!t1|mD#6pX#8J&fjRh3GcOqdMOQIXY>T*9D5jH_dg6pE!Oh?S>o%O%Yc3oWu{ zJC%P;WBdvH5NUI-SV?VsU(*n67UDccO!1aHMV%)qTBObwplTYT&KIUOiHa7f%>qH<;GB6XnvRnri4p#b%oSbd8&TS%*-IkwFzAMc{g=6NdCX2HY%Y_pjP%70#i z_A&3i)-<7F<4@C>k!LqkL9F~Xi%P9&p2*S^#L928$kLkTi7ZV)to$~MEUk0uEY)T+ zCle;W&7x9knmT5pRGNZV`E3?iTFX4431n)BR;zl#5*m%?p_q1;4#RRrw2H!O-zxSjgDrk6H}RdL$>_# z+9U1?N2WP>`^W-uIVZApIBtLDwcS~Frc=kSo<%rHeIbuh zENifeYxEtzHM%3)Vm${j`PC~+`Kx7fi!J`a%;iVyZ>wds8}i2p^j?M^BT5?UHjIpo( E1D?6-#{d8T diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/contracts/contracts.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/contracts/contracts.kjsm deleted file mode 100644 index a8c450704686258435380560052e3c2f398f8a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1517 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 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/coroutines/js/internal/internal.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/coroutines/js/internal/internal.kjsm deleted file mode 100644 index 6df3723ccfbc2dbb38d2fcd9a94683295a2a49c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmY+7u}%Xq5JdNE$G0q37+29r2#E?&96?BkHj1dyL`su31WPy^b~yWxQt}H_dE+r^biuy0C2Nl}_$oHhDXVfx~{8 zeGH`kIz;;tRR*j{UIuZU)+FKH) zAcbHAX)KH!0uzkdaj>IiD$bACwW0dz{L(;8R$DbJMsg(XVDYX#P#{}{1B+N%g?NEq K2%lJTLhudfUplq` diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/dom/dom.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/dom/dom.kjsm deleted file mode 100644 index 821134ec23fe106a6ff36ab557f4479a4d8f2fc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcma)%&2H2%6onnf@!YvHp_i1Q#XGuWF$&WSTYlOl8_ENO#3~Up_9$^n`v$DL;!)=1 zDsl6NKw^O+-*a>P>EuKR5ep$AK9Y}K8vN$Nwsz~v@9;6gdEH)Y?asP@dbq*aJMXu) za2WgM8sqQhCB_}CKKja{uG=en7Z8f7dcQ5&7H3lcmTlWxw#DRa(-ilpKZT}t*O(Uj zy>-<@Dp%|*s@l~7=a)CG47GQ!QGM==)x}+~u4QMsxw_w5#37>pxC&i`q~w|nre$M` zV5e;O;LDr-hu~{5^g)=K;i9oSe{1`i*%y=)p$0+nRPY|70!fNzObPpnH2a;-dlj@8 zbvY`H`gGK+S4AhRigOe5LzAqyNQ_AG=JEi7joDwuPe>mCPz=v6V5xaA diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/experimental/experimental.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/experimental/experimental.kjsm deleted file mode 100644 index 22524b3807e6fdd78c4e274e0f4d8d28f1cf58de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 951 zcmb7=&u-H|5XRT*Kb=fmcW@}A=Fb6fs8Cd;<&vudl^Q6C-hB0O`#tcF|<=L6DiuKD>;s$L4+8uar!cy z6kYK#JD=(S#29OlDAY-3*|RvE3T&+7*LP00*AJsJbVhOhO%&+GX`1~IeshQlG&hlv{hbGZfFnu&a(Uo{U8-lG}IFOOb2)5Ft@B z=2Gnmds6LA3}iY-dw7}U1)7PRAwf7RJTV#<-TaL;13U4v>WjD_B&Na4n5cBlZCqk7hE5p z;adRv%_VTyxdo%5Nzqi%^a%ZyUfyM&EZ|?6E2_+Vglf^NyR41o)byrvw&?YLWovrF z>|bEKIfDgn@+00hyKD&_SU!U7JAiGwv!z$7J|2K_>!n-kY%jqF^gY;7ru#{w_0E%r N3w(MDD$PQM>@P!eug(Af diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/internal/internal.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/internal/internal.kjsm deleted file mode 100644 index 7667a113de5d15d885dac0186c8981dbc0bf20db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2450 zcmb7@&r{n*6vri57R$3Si%7tjgkNbXrLAK~+R`*_M;H~{80?X4W;ijzUZ`4GawVCB zV|vP&Q~!qk1v&QAzp2OWTdxf%&^F`Ie0HC|-}m0Wl@vuuDT<=|r zY6n2-POWY`%_B(Luebs9=26{-?4H+Q@jmOG@U#GxfX|H80{;Rghlb-_yNO+21sa3E zVl{kOkGwGQl8Z`ED+i_SN`h9V@v4gM@oU#aVn6VP{`bqPm$70A~?P~*>s{3wo z8b;k6)?-13&ju#y{fIftJM~XXgwjz}!6d~$<1C88s2p|}q$<38x?Hsy4ak&h2aTrFDmQEV+OTV@ zTCo~nG-@rUYy&vFVK)&i(yDc^+p>1;<3rnN;LK^cwqLJQZD$n8SoO+iquW8h3$){% z@)<|!*fHN|piu>MqEHnKqEaoda4Iy#iBX;Jbea}X zosLP4OJ)QWIw7c1Dmf*2PjW_bRB7k{`(Us@$&$>hv?gSz45Q zELjp%=!WDMl3z-0Nq&=83csfckLYGWE9Ey0`b6@n zP>Dn(5|s9?cC@V!w0>dQ#t$&XC%urw8MQ3XYF4a1 z;;X!4&>@9}?}dv~0zbj*idfEHEgy*G26?UKXE%wdn_N_SxUCWGCyf;O^O!%Sn>jBD0cG&}8%E2q AQ~&?~ diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/io/io.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/io/io.kjsm deleted file mode 100644 index dedf80a8aaa85c6f26af533b05feb6cf0e9aea20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 932 zcmaiwO>fgc5Qf+5ukj>Jw{9`U9H?@r5Qi%2sp13yq%=Y)YKzn(F5RRC$BtqCa=<-irgGhxK^&o%flYVT_rKF@p}L<8&hLYhI>FcAVt+i=)$I$SK8PT*&jP zTvR2Rud_AU)3hq?(E6AqCEAN+l9lMrWl_X4iEf>z8TN+NbSjtfR$HB$I!EWSB*zT- zmjaz}F^T6AtxSERw&N;)lV?Sq%J=yUyOaD@jtkA|=Jj)kB;z@{lf1lBNMFzJc1^tG z^VNDG(Qhnm*ri-1ahiOKZ&Ha)14DZirPgsG!lM?-iz?@(0LU8-`$j#hVd6uQdS`GJm)C@NP-uAX=jvS<}O6`hC=oD&d_ zBP%op=I94(fWz)RuxMX6Bw8f8ji@d?0qU~R>))2%e)X2I1 zx%DVdVP1j}dW5kb!n6lcYwCX>FV;^GeoyR0c)0(f-sPb4kC}ptt(rDbDB^^OT|Ly_ bTM7QZl{W7{@jCD++##NM55@*8WXS#ipX{9e diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/js/js.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/js/js.kjsm deleted file mode 100644 index 70b839ee676190d9f64d866be53ee68bb94b2c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11511 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 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/jvm/jvm.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/jvm/jvm.kjsm deleted file mode 100644 index eb00737e0758b2fc06c3c6f76fc560ad72736c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1604 zcmah{T~pdX6kS3H%LOq8KahUY)>>!kSf`!wv5KLiRbZ0X*6Bkh1FNQngdu@`ymh8i z-+Ag!@h9}Z^iT9|*hqoVJ|rji?#(%8&n_V(NeD^cBjKauN^tInuH&tL>bK!f5|m*H zNnX?ae!J>0w*|26d46bzj_(23qi@BsyQeIKyzRRFXVw~)0jQ&SF_Eh7=?A-@9`=H8 zhwb{!UYmI#YeAvj;k34^f9bHM(3nHz!=4*DCyvW1t{ns*SN9HdNaI4yZZnWQ{#MMe z>v*R?t4FnpwO6mfY{RHGbi+FS_*%Ct-T0?r4jVb7sP|dd_3c&w*-E`;TE*aG)e^g&*byJuJ2oq{n;Ed?cin<_hAwpSQ6j+Rqs3oy}N8mlte<12d0v`)p z5%@&ls=%j3QcC`!iSjdgQ7%fG(nfNJ45&s^TAnHz(A>U4VME!X11ixpf6+@yhU1y* z$8+Q3$DAFaajGe5z9emA4H)A4pFiXQT|>ncR4iX9szP~ApeAsF`X#5%#ZF2{vxqd> z6wUm&Bb$CN7iVsAG@St|=V=~8S<-kYvs=r8Ge=d8(p#EL>FVvPjCAg7E_QbP2JcR8 zblm9&PNPLMfGU!DAJZ#fdJ$fiURjXFDaIlX$H`xD^7;RJoIHf+I*e|@Ld-B7+JxXC z7hH_TH}SaE@wnEek83g%QJ2U4@6rpYxD?Zsk?tWqkRIG0XHGCNBRA SF1mc<_{2RykpY!~0Qn1L3mcLE diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/kotlin.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/kotlin.kjsm deleted file mode 100644 index 086449349452d726c7331dc839584962b66421ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22122 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 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/native/concurrent/concurrent.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/native/concurrent/concurrent.kjsm deleted file mode 100644 index 01fe67cee0c8d44e6b23536c5a5bf5e9d7a1dbb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 479 zcmZ`z%}&BV5T0)7G7MNYB{5BpJOCk{@K_873=vX@3CFc;gjlwu7W56gbMjGq4d2LZ zsi_wav)|75mjM7904y`i3=abTCC!ta9%z~GPHGURIzDEZ(m8!w#4jT8i%RrI?k=}7 zQ=932f6V1mqKHDR)7;dgnn>1vzLMFq%E^^UlD?_UWql=4`zr@7qWNMHt=80vRBmo4 zs+^Ndj*5Ddg;@S0Aug|^b+@oQPS&T7Gx1d`#-Nw5(4TI>>X%e5B zBn`|MuLR1Xia1lQJ~yE`@l#@0PooJ|qBz|>3qx%5jeq@i2Yz^F5aQ_B$d678R$rV&M`;j8kFk=NVQ7w0tnN&wEbjY>|K6k~*(E?b z%AQbKn$Vo^xSSZ755=4Pnv@XEO&aIQmF+kVjUOTI7H$vx1Q*T=A15X)x+>`?828N( zVf?$K_onuzero=Zyp-PS12c>hQ+}x|gS{x6Ov${jM<^6S8<^rKfh*xKLZ+-7xmqZ{ zkuYP`=&w}uvbtEJE^#GCu2xHQOI&xDYkdRW`Yzx~IHD^$*0uoQZ7ADST58+j9ZTC< z^km0w0SU=AalDVJGUtD0M0TYDm-yY6V5_RTqu2DR7GQNM7f=V#0882ic(|;ay3vz= z7S+6BBQwycb{2YHfRvm6TN!iZOJJ=}Ae>rz8bkM5MBB`}qt;xp#k!yzH;=E2YT1=V z1ii1qd!TN*w9b42rFSE1Ct|-wuQXwc9e!TQ)PHig@6_8x%Gaeq=gDs|@2L;u1vbE%n;dUOVgki%#!e8T_2VB$ma_3xNxe$g=AfpVZ1& diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/random/random.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/random/random.kjsm deleted file mode 100644 index 700a16195b2e7fcdb8e8e8dccd7955167201893f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2928 zcmdT_OH&(15Z+y_c1Mi_ zk3J-KPWcMNv|UqNw<*;jb}O$Q=i< z=lYe<_MM;uf2YAnG+;=Tv7eaCIy^=VBS@l_U zy(`^Y1D!j9b%@PyqMa}d!tdlDjHhwvVmY++oVAWIPn*>Q3-qS%#xNuFO{{&`#xJw5 zb8*5#x5NC{_L_d=wteP&e|duaoK4*L9S8l=O>yg4IkqRB9Ulc@M_zBr5l!929zL-{ zoTC2R#cQO!;JkVt$dMgk>)KUFpV{6igLKHN6+76*l%!iDWO`|nSvC1^BLIQPkj19( zTS2CGw`6Wfg&;tb4!PJqX3Z14Dqk(@FBLSZfKC*ufeuEe6m_XMhRS)NxVu1UNnab4mDBCqaitZJ5S3GFPcNo!r6cO^FRO5v4R zC{eATt!Pz)eu8K=%qx;5lNKQ*ODE*c(lt?D<77v27U>H5Q;btU%poptY$!ayBCX=# zmNbGi!YHFDjpit0RvNR3afyC95Z01LtD(M9l`Eo=>1&cIEYbS|q!~$?87588&yb|? zuo_moi3eWg=ZL(ZFE}Q~Y5Jv9e$`i&>D&BpH)-Spl;=h^sZ8HNTXujqKay9W+sMmH z-W-qJFvX>YX4AXlFn^l+j^)>e;tPJ2;3m)TOhTId*PLa#gB*+3I5ti+o;xf9J;eRfha{{e`jh&(l5R z@SWouI>}}6Rg|*yV?4mYOC6UPPnG`ZrKW>M7Jema=}(RPoXV%FIKG-jw1<>td5B)9 zxrc;Kp@uZ(&~^)@4BGgrWKdHa)}SR>9fKx|Gw747FON5m-XP)$3BC9m!8Q5Bh8o_m z{sY0i7Ev>S9Flxw!e4xD(%%&RT@Cl|zaiX9d~(7|NYX1Syt*3h)qh;(_RCa9jlN+V z{GwlxJW1n&Xov^Vw15!HAh2R=zC_1~n;~b_5R$=qR>OSha$6dSEYq<`~Z@QgR%fZ|9ht4xr zIO@8c&9>XK4|j1E#>n!qXLUW6L2ITHXUjQcnVx5#vh=p&v9YGxZre={Ch9SL+q1jY zLEC289vP0?&f&JxY@hX7=fFH_b$c*d+k&fRe|KiJdn~u%x^3HXSl0DUZ18eo^-eb3 zL!0GVy{*ov_l)T+oYr%@Y#ak2CpgkQ_p#S)Imb*B^h)0{mFoCW%dy&9ZM$Pb&^hq& zzfNm?v<56QL;F)V~<--)Bc1K z&T{8=m(rQOvvh|Qd^PTI5;7D_`WTEAB-3G`;^zUIK1X|S);WL*pJ=*vw`qUqeQIMPjCWd2t8>=*j4CR#@yvrxq4Htb$0shdUv{6E z+CCqSOZ)pSnOjeNbEr_9dmGxROKqIoWjR}vz20)5k)RJ4+jd~Tupc_@XN-MhpLXr0 z<=KZU*MSldR6GNs?|AY9iO>py=u?ySdQ0f0uPK}{$o%-u6l0uz^-=fj(ct&F0u4C=N*>Y zIqy8MIsl`C*Qo-=ZrrH{f3}BL`|jlDUB1x13~{N=&qoT1>F;L zA1G$y&ybC`jK2u(Uj^3!?mgo`jM^}I&*+fOJ>$HTDF14fuNj||Q|9urX50sw2bu@^ zW+U-JPnYM7hvih`R&5eI+`6e3GesDgmu|up6d$4Ng`O*4Mm2NgCj4`@x#F{nz%B}Q z(Pys$dsVPkeYOT{O|UheT>*AQuq!@$4cKdfy@u>1isUY^?+W(aM()4K#LxP;{z_5T zZx=JV{>BGC>nZ*97rHL==Rtp7=+BR!UkClV(65i6zYhBALVrD0f8O{k2Jp{)z(Gv` z4r~cHvL)ci7JwsL0*-6}II<<+$QFPjTLO-30XVWH;K&w$BU=KF>|ubTz62cghXIcI z5^&TX1~}?Vz)?RQ@H@tnfq?5!;h9nrYF#%z=XY3R_hL-OjW5cwO{N;TaM_t?y*Q$E z0hO<#vdS~`8#NfNiW-cIWxi32jfP^%I~U8mqZk_w#gu<8mib39HXe$p4z7`JE>_Dj zH8T*HEE2TE?nGNE7H-SMzHKFFD=P_Yv4zo=Dr$}V%8EiUwla$2D~sF7%0fGAX|#*4 zuod#h?fh8h%|dLWa&NLO(Hm|E=q^Ot z79jFDh^p9loRjqiOb7auZ|AWQ4}WMT2`A66RC$` z^3{jJ6l*;crdaEtFkP@v*p@|G$!hW!dK~Q|UtQudFekCrviRby!=>x{mN4~&I!ImO z5~~hp%s?PcqCoiSLxG639ts3mhgatNmeuC3ELJ@V#0BbWF+jAUK=|rIfrzyp3Ith) zf$)7tfrwR)77(fXCsbLTP%!g=6AfP)_!*NjXO%uoJy8F)(q9m@b{Dqrn753zfPpw- z;i2R?8(@NOCvep2<*1{2yrZbW`ltrxXiM=uNCQ~NXlpkWxUhL)0P`jIwaKS3Mm=Qd?-4*cMgKKg-v$_!`@ z-WQl^G{8rEG=L%;Zm_(YP=dn^&;vebqXAT3oWW~G8h-)Z;H#F4-vb&yrtn>-F7?f#IR!D{>ov&LyNmxx3Eu6~ zf7 zN$D#{5kE`j%0bp@l%+*kl_+aXvbr=qwvn3NXQ}CZmYScndG0b{gP+|(k2># zl!PO|sO4!D_7jvu{YaazpP)_H4Tl^ad8Q5#~RbSno)qeEKoyGn)QXAs5SLOX&eG)8zpc`YCuU1D0iMW zX22}Z=d9oiFlXMl26x(%A2M)D@+Ut`!tHg=odjpXNwRhs;hB{1fTRja6Sco5OA`PB zA|-(+AP@$44#BW9#a|be`FFA`Mlv!Yx*=g0xiE$GU)e0O-~e zPyUHj0y(AI7kZ}F)r+Oek@@5g1qF%zI<^E&F+AZujNB(AS^E41-g?r!ORvZ>6kR$E z%f>Fn4HvrnJTwz2ZhbQMLvrAx0#c)&e&X&Jk;OkFxHngc#p1-n$i5UvDp|9iSr3)VXyV3*QH zdtJsTQaH2BQ;4S=rVuGYSK%p~Q7NqSr?67wy^WMChF6(v9-hKiFG^u$m*)m4%_=wA zDg^$jN+CMM6#C9XDSQV-DutB`H(KDzjTU}o5*uwz!UOIxg|nE#SxVuINFjV^3#L%P z(3ir>?@D1Mm_k0l6yC+d;58ZJ&McjkbIUx1c(!8-ky7=;i;*~IYyV2>S4wj#ne#lE z*VU;xU*yR|Ds5jjpEtt!%+rZD4?)0Ig1Mqwe|iyGc)ygtrDtnDCG~Xa4Or@pjcX7T zo~{@iO%x0=koPfT6SW%C=yROT*m+1jk3b!><8;h|V3Moha)sKEkmxABDbe5M6|zwK zcT&%l7N|z%M2*1jeOM!xAW%Gv6}sSY=atZTJP)8DcjWEQKawYLb2sOyQgA7g+?N~! zYsh-2nr_MUh-z9~=GBA`eppRNsS*A8cr`7mYO42FQytcgu_2YVqpy(f4oeqRQytgI ztBG#?>0_6w@oKsaOI=dcgu!7og@O!K(>6+j)l?r;O&|zVlTaHH5>?Y3iT*CHCX-i_ zN!7F{stJD24OWvv7r^MNruy%#rn;;iQB7*>XaC}c)qd7@Sc3kF#gzU*G5Fi-_c4;F I_EVPlKO%iZ)c^nh diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/reflect/js/internal/internal.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/reflect/js/internal/internal.kjsm deleted file mode 100644 index e4eda4fac98fea4c9e825d496787797a956bce03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3017 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 G4*nlbFe<44 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/text/text.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/kotlin/text/text.kjsm deleted file mode 100644 index 8e582c7e0823c146c0bc1ec84b00e164df9a221a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24349 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 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/khronos/webgl/webgl.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/khronos/webgl/webgl.kjsm deleted file mode 100644 index 4ee5ae588baf17ae667866701affc315d98357d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24241 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 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/css/masking/masking.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/css/masking/masking.kjsm deleted file mode 100644 index ba39f2d3e62481c123cd5181331a2ad979cf6917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753 zcmah_O>fgc5MA%ajy=uCCMCrLBv2)eL>1h6i-T1aiXFuXw5P~QT-$2Aj_fTZ7moY@ z4v1gCZ{Qd4I~Y5TQsBU0<~_}O`)0I+5Jm`5uqc++>mR0BIJkSY7%cL9kofscEJFB2 zf#Dn&3cyf-`cCS4@6Sf7cs=%IWUqoG5E6`0nyh^hrvkK_RIXwHY$!JH6utAAb3UC< zug3P=wcgmHspZa`*XPceymj0U4m|m5?Aa4zbQd?sQ!-K>Kgnv3evVwA%XibD}6z6_SOxJ`o0m&MVB%zTkwr&$8#J zyUZ*6M<(gB?>akvu76>s`jVd1EvnOr#`Qiu(Gj7-g949V=s&nwdsY|^uo|a|YLSV- zIjYUeZ#AS{q%EXBb+S$6|4qFrQrrKg_AsimO?|juVD9Ooy`jISk1L87eAOwC-y~R| AYybcN diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/clipboard/clipboard.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/clipboard/clipboard.kjsm deleted file mode 100644 index 897605e7970a5386cecee7a0f813c43d70ef940e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmZWl%W~5&6m?|BmTz9SP9LtJJhEX$ClfX-X($6_L#LF|t>cJbaHWi_wDb$uv&gVu z%{TBxZ1@STRX2s{LOS={b95ha9LIGWr$L9&@wbuv`DAme^#c*C9qE=1czFk<)wi3ernQV zoyziq(7-F>vG`)Ze`|CuXVARRxe?&KlR4Fyk{Lpqvaar`v26#zqiUmXSG8$288yxRhs8%u@JDcdUPl>4P53*?u#55+F-uCW@2@@JyY}RVk*xb7_Q@X#sE`>375%SzJax z8o_59ZaainzioSlD~6zaKe9L?2XvaA3Lwx7$iLMA~u9!NUUA67O{2g)~r1Y zM?NAI2FkA8%C@NU;4xof+@ZSNaTNKuPVQF3X_Jj=r=!;OMyE@!vOnU#G47EakG8L+ h5yx#iGdw+cc5=Gxu8eDBjL2B8v@-T@jPwQI`~^yHvTOhV diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/css/css.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/css/css.kjsm deleted file mode 100644 index 3d487243616238d0988ba6e58d1623b65406d8c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8372 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 ZlJ=j5@u>E(@q5%ic#4R#!~9DNgn!R~O&|aO diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/pointerevents/pointerevents.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/pointerevents/pointerevents.kjsm deleted file mode 100644 index 79050c24aa5a9e5667826aba92932874e1c870b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1723 zcmZvbOLNmm5XWUnmd5Qz28D-X_5tC!3uLolVS&>w3oI#KsW=76QIQ9Gim}Eejg#^x z;KqSNYKu?8l@s4&KL$l>q(MVf4tD>#|J^<9nYQCNp5r(T{J8iD&JI>&HeNftnXHZE zbZsVis#wMjSgLaP;)91OcqoI1I&{BJ=xmkw4~u*Vsxo*c=Q%55zFN!}1aG7gJcVGW zGMsq^EVjN$iVL+1&BE-VIpn#5<{=-c3H0h8p(kn{ z#A41M%#)0fbD$P3p)$@hpETlQ#e+=TQp1nzhz7 z{$sqM43>=hd_L8BWCFt^lR|u7Gn^MS-&zhA(|swRF44X&@eepVgy0oVM-uG_r{|)$ zg?)U<93Y9)1TUg^R+7l+Oy+C^MDJZ13xLfOSB1Su#Ugsw0GB%86NfhNyFp$2cBuye z@u=S~6qh#9YtjHcmlEWVwvdaAwzeVdR(7efCn|eV+a?`U{`tzksI5!?KIW z{T2??+g`!Li^YNsLeG|T=jC57caI9m?17QmwPe=ONS#_Tn`9(XOJ+fh)U746ug6Gc deT`(DWw!Yk$t?FVlKKA_392#ha`556`3iqAQp^AV diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/svg/svg.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/svg/svg.kjsm deleted file mode 100644 index 56d78bcc6585f089fe81d9637c3250fdd4968b43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13246 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 W3@AUSr{sJ259=v1H1J;>*7V;ZxaLv- diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/url/url.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/dom/url/url.kjsm deleted file mode 100644 index a355392f04d3fce3eaf28877c5f7e6ebc42e81ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 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 F`7gj|$vyx8 diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/files/files.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/files/files.kjsm deleted file mode 100644 index 8be134a2ff17370b8f9df613c909df9c7798de72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1894 zcmah|%TgOx5FO1+S1lwpW59z9hF}}pBq6fM!*O2L@UWpUPy)N~a*!@!is245GuSAb z?CgCORDK}&hI~xcS?3ed_s#$^6^Dg%`gWi0KHV*8nr3L4R-lhgAG=nsL~(Ea?LudM zKL~jOzgu9C2Mlt7mHA9BjP}4jjM6X=V6;RZN_*tm^5ZlCs};w7ABr1MdJu>nI2mt# zsW1GaptI9I=1`1|(;yNF)MTlxI6CHW+V}h(upn6sql9;%=tWV;eF0_?{LH~v6)Bjh z%(l1FSXQ<=k_qNZ5u{)xVbI|ODX9R1i!PKqkx02nRZHuQAD$3-g~kFV2k`<@tE>(G zh(k?A2Bi#zev-b3y1{-xa!gWBiITJ)B-EiB9YJL^5j(^0LGo zKkjiN@i>lR+MV$CWKwD6M0DgDA5p&K$xz0zBN0Y^7fKnbWn^Z)p3{REDl}{_=1Gzz zLnMxK2S7}E``f9X(ojS>38{V7by$X4i5l8F+25zBOnH28vVa!|Kc-Z5p-Sdk@>Bn1 zdp#@LN_O}ul?(kn9zykUJKKHHf#Tso9Epg2MsN9EFNE@7BNos-W8sGYtAc)ed{cyd zFlaf>KLyZH1Cwc3pzi|eU^5*JS0lekwuu(m5{o%9g*uk=cO}PKj>9?LP^ja0juSaf z5z0=}R2A`)++IxiWcxIijL#g%By2bc{TK?{sb;k zY!a80&%|YVP2q~G)kS?0%XPiMnn06c-E<3$^7HrXSEjS+Kbcm4h!Yg9s_>)=!^fyo z_)HNhb9$rJwDB$_!t?iVUh6le&-}v9&^4NR!}4aFF=}bo(HU}Jx-=(STa9AFb{P3V zidwVLAskw}iz9?aQ$|K*S!In~SU1Tkw@WxgSlT@^$*js?W}=LeN%PFyXMdy1q=5GL z`MgbrZZ`SjS5IHe7rT`H{*(eNHPBUt|roi^T*l`r&GsqN%t+uH+e7uX-@)|$*Q z9lcR$413y|gLkrZU94)1@@Mk=3$0a>z)0))^3S!xfYy8Lo#Eb)LwP#W+cw^(DkFps zbDWbn^Or7Xa;9gAIrgM5OCoH1LZP9xDt;%CqcM2`9g1BS!j9SEf;$E&K7#{zFa6(raus9{{qqxW3B)I diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/notifications/notifications.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/notifications/notifications.kjsm deleted file mode 100644 index 3a7187aecbacc052c42a0e6841360b0fff5889a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2847 zcmaJ?&2ke*5SI2|ZCi}imJtg^wu~VmiID{fgam?&Y-2)f$`KTo99FA|vthOCtX67kNj!w#Ezpqx9VwVQ$t~{CY)`S?KgxZqmq`|dG3f1h4CX688d0#m z&C)Q&IGKM4v#J-A9wvh$KgR0-2L79NkVnyX;|$=4rh{-eWaOgi^>m`Ir1Yl|9cGG3 z`*8^N(=3T~esr4$RI{fB-O_59!^l(t7Pzh?uCXK|Q;-cJT#(N{FihA^|mWYdoUu12z)6^e>s~Y7Mf!Xu>hZKxn(jSA-_cI@F4O6J9ww(}D zWeor$4Di zq(1;}pPJr(fE9|?!XrPe-7*2r{ z@wZ4cupEu(wF2r5#0D`DGih_FkrJ0S0imB2`Z7ub?Fd@WkcwdEgY0f4a9sbWdyQEx;x?o>40{tw%pQzdD+;`iE2SHpmjv3oVD-&PhZy zftbtcS(mTLJ#?v~;eAfpJhpUaPLH^Lk?VIA{5Z$z{r?n+htXVayTbV@$7>v09M=^r zYT)`Sie4nj^_La>hQI{#`qYEvkFK*Gn9UluyvbRQ<8_YnteXnHs^A+6ZYg+~W3$C> zx#)pwxY$&@XI`nbLC6CvwR&A^UcB?ChTTU^8#REMm3NxWGn$8IG@UbXwoYn(bF{`a z=WkNeTUygRxFAQ5L$i3Q)}7}Mp1(LQvn+O;w|dQChMStBJ#LV5p2I7E=4@*LD{{SZ ze&)aB=G;Mv%;1Hk7jMf5=U9FS8-HoeF{#JRcTTpS0-?605AV%;FZCOMjnD`8%nEKnW2mNB>Yq%9YR%*|F_56plFMTXCBIrpnUjEW6-lZ(q2AMTxsarnl7`%8Qz*G$B(*rX zOYWp8lw3tqD7n3+P;wngO36^}Gf63F$fYYO#Y=8bNqI8)wNvYs&u+4Qh1t8;xN`C} Mg8CZqzZDez2QE1fy8r+H diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/performance/performance.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/performance/performance.kjsm deleted file mode 100644 index 04f28d2ca9159520989ddc75cdaeb064951abbf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1192 zcmZvZ-%`^+6vnqn2kK?cWsFb$^a8Oh*wNVmy)5~t?3qq7w`eR zaC`!u!6)*=uVq`tqnHn%Ua)(aWO8v0_O_Uw4H=ZXVl)o9N~-rhANr@AcK74y`-9+9 zJJ^P~qYIHpSV*1y_VMmcyXS+Owt>HQ(B96yz(4YXV;|du_2Yy^vMZ)sf+cUp3?LGm zqvrEIn7b%fa^XmZ81Ldm)z26*$-qk+F7dW|BJ8t%dU3Vc{I8QmRMEp=mV}Xvukb|d z)w=owHRLendqP}J$112^6taCdXEM6TxH81W*{Ri8m$^0l?K8pscViVjyM7*(urE_K zk+aFkSnvtUC$lE=8WR>x6V}Z>6#gBVT%GdS`D%+6`gCG(3!(9n>&`9pY&6Op^1-H6v?@3PSmETmg;+s!5!LjD^VRegR7}TkjKHRK zG^<#b@_Hw)4OLrfDjZg+T6kBY9fEOpm6Ihe=ctnZl+>)7MyoLoy;?Tb)OcUx1C0+g uKGL|NaaH4EjV+B&G(Oe%OyhHnFEqZ?xTf)y#@8CxHE!gH_x|P>K>h+SSR{G? diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/workers/workers.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/workers/workers.kjsm deleted file mode 100644 index 2c87d1a53134851013b86391c2ed9c711b523417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7027 zcmc&2>3S2_RqJSUB+FOwCX2<6gTW@j2tk4&Awk~2!pIJk zrc2U2Y1&e{rfu5%>I3xa1LRTK|9ygx+1lF;%|WDWx!bzA1sN_jHMegnySlovUq@9aT{H}k1-ApyqHQbt zAk{QOb2W&~SeBtFCd90|t6Qc6Y39W3hGy?C3sPi9+egV=#Z|XKW`HUU*BdU??9@?C zgXpHl?kgUlk7=5rQp6bolVV#3^&o1 zxjx-gjYdsdHC4-WZObsU8USbHhGwnZxR^|0e27R;Qky3lt(hF(DYzM{LUrmGte+=Mt2 zWEX=iZV@(Dn(IzyGLf3%Dv&S~$K{G@AX&D)h2`uM61?ha>$i@&qkD~2H+*g zN}{K|Dih4Yiel4pNEJ66EI8E_B|E}u+n3RUHQj@)=_;f*6Z$S zWeK8;1u|`ht5ggI+i0^`#ENcWu|u<-vGA={bz^sOLzd}vNV2VXqBiDmABNlX`ZEK) z7-$b=aelsz<`W}rv zW|@4Xr4Zru#m{LxHw!>x%@?;!otFUgS*B^Z`lhb3iHDli9q93saLD4&ZgTJv>JYPV zrY3oGVs<8+9lgGe-AV^$dj{Kbe5@^W{}pej;;qGMUBR}KSghE7!gs0{E2dG$F4i`! zhFQbqB<#`D`@P1t*whUyau~eUe&f|P?6TR-ra5u8t^0m)h`PFKXwc^;HYFQo^I0YC z4M@8R-JKBIwA6-!W3+cqck~V2(A|Art5J3XvZ?IpTl4|r#o3j`wc^VB9DqO<%hzzP zE-m5R>Yc@<#bV_y#23re6{Jx%fl@Z9JYS`vk@9kR9^#exxz+MqvAhDw>h&U?)|V?c z<|`0iS-$n=()`-|5=iTd<+ySZk_cs+vJ3 zILIpQ0etaV=EDetNB|;ofCTYxkc2>zLnNFHAU%S3ghUaKAdKNjA~K#RH7;O6z+M5< z42DP_LaJ{VxqC=XP>(R!Lyj>RA;$&%gn*|6oDlG|fO!E63=Wa=;(S5CX#p=Gq*gEE z-=pLew0(@cD(+rm@F*#Y^NfJAf_`0`O9I{y@RoqL1*`~IWpJSB%etW75%3;^N6DAP z`3(k-k*^5)n*x57!3f!4Fhn!~H^u#1;%o?L3%Y}l#`+MWyiC4^rx?E6H-iFsk0Y1K z_dVpt6p`c$%;OlonugG}t4kCl5g zdcf*QYYI+VXU{dourA4!ioNx!6|A>_(7xgJx}0Fq8ONx$k8{BG9q6lT?mmk{KUI9!e((5j=@b4FwsCC4=54OL@}YAsu6H*=ExxF+m2f z%%lwWro%fQXPyi`qwW)A$QRjxxC;^%ekh-!Rq;Un2g&x*Y*mIa66#A58{;U)rq`~n z-FcM4D{l~ZSEP02HIa9fYF&9V+Pg}NtET0ouq>u*)3V2imc7C3=}5HHd-J=?l{dl< zUQx>*1!;+7M2YmbJ+MSZF*WH@KN~I?mA-1xi)V&=(#QdG^-T!L(qW z#rA4G!I1B*dgS-R*(^&~2zx9|RSu1wr-aMF^VEt#0~lr;fl`vZ)T+MHAbGj1&L!?? z>3G+w_Bv`1N@1QDB;XLVj=6?47dp?$b)lNm`4X2iOstO+8vF&?Oy zPlD9y7}^=ZM0?xZdxL1JpuL6eUHRI;TTdNV;|JD#3Y*ur{#(kuF9c6Rzwd$9X(CRr zM381eC6>-{?1eH*XOb+7XHDf}7^L_h;K{j(ED4SRqC|xL2911NMDBe-cpmt|^FAoN zD_@r%HhO4gOVsa^UHv}Q#qSC9+xK{J9BVCCS)-g1t{$51!$%?Y=N=7r5_Lo?05L@h>39k(mIM$kX$S?A)y*Q{*lyA&G6vNh-n8eTIcIOuTQYE`EwntL9vq@|EpF zI(5#Xjy(R(;je(dXB(j-M9F2@7sB!O-H)5_Jl%b9qN3|!u+|X0AWHjlwnko})^TWO z$*zCauce*HAwTon$B!J$%FlgA{6u8mJQW~6 TrD7$Is!?GX4kHaSpR diff --git a/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/xhr/xhr.kjsm b/multiplatform-crypto-delegated/node_modules/kotlin/kotlin/org/w3c/xhr/xhr.kjsm deleted file mode 100644 index 434f26c0ce58eda23e8b4600425cd58876446ff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2580 zcmah}-FDkV5SC?GUXK%Jqco|brcIhcfC9lyX({EecC0ipi5+A+BtYRP_BQrG)*4A} z>lY~ZT=eh+JOfYA3m$<>&VeU@duCU1ut`pH;mpi8-~8;%D2k#a6-7zlPsN`;ZDzTD zvi|gTYyDZrhu_nXL>rO_KvE!Ni~GH@6FQ)O&qKHCL9*x#L3@laB-^|PGuw^5UBR+k z)?;1>y3_A7uMJw$>xQ6tPLF|J5B;up0;wmCJ7AD{+;v$1TFK?dK!g#o+RSAkgX9Sd zAzkHRN5mLW;q~$mN!?as*vEXxD7r4BioWj*A=z;PNS8QwnS&h$7(Tu4^An#1f%QZ- z#e@hT6`5KnvP?^G2iq)nTOrI&ga{ZYc6JhWHhHf<2%TdWE4$ojvo<7m@TsYghmH#w znN$Yk4)=Dq!?16&9|kN4AtOQ^ugg8q%C)Kmsd|U|n0VVNmMy#foo#JeI|o)7(z~@{ zd8hgi^xD2vML=&>>sGY^i<2p3t%l=^85!L3nbRHyp%b!J$MH@WWVQxgE5w4g0Hm`n zoIr3EeeMMerbb$WJqyPyF%fgJmL12)nP*3FO?wwk4GaKM=B+`rd(p`t0EnclkPf>& z#s_#9gT5FZT$(J>jL?~1&OQ0WOe967Y^35q@G-!>etegJoY7>mMcXbOm6}^ymW^M< zZmonft!*~<#Qsy(-hSf{}N|l-@HOz7a*_1BD=yJ?jl~Sj##rW$|&eOHn|7MK88{6;2_WM%m^n=*` zSV~HFr8H%{hCM&Rs>}4-ykh>AFpuc6sTPb4z~`=*T0T+8N&ULi=cImPO#f<(^Yxhi zO{8!CNPZ$JS^1SHtCTh{wRux5T)X#DjgaOU>(W1|`|hX%=M$<+PBMm2>gzhKQt+k)yNYk(kLaVdc_IF{M;tYLv0E zMCVOvOc`Uo!t|*(M=xWR+^M}l7ss=X^>ZFR){mHAQM_>m-#A+`44qyTeag39L(Q-= zxI?UU_(DVVI;wM#dLvdvibv!xnl~`TC42F766#`(5oo;=-= zHbqWleDzrQ^O!ktRQ57mH}i&O;DRO(0#9b~@Oci`Qoz8=Vl7#EOV&+AJK7K>BlR|_ zX2iZTLbLR)WM7FW_eNPV^urM)L+_(H7X^NV>Qco01l1g(Vm<#P$S*XX$0=VeDcJ7b zE84{~Sfx3#>)21Rlu1@L2^ z=ra#J{So~EJoT@&v)YZY1&2d&?Ae+9=CU)p)-)}rX_}5713#wWXz&k#QagCf2c01c z!F&<{k2_XJ9;!!0bhv?0`ew7vFR{48}Z+CmTFw0~Rx|T;_SA zgoG-yFl3WX;JXaV*#(_}-Un;@u&IBtMxx14whe8qp^081B`to3_B6aFNua2781kK%xi28U=Z|72^;yI_9*eNiy+|%fyTdSem5hgs{3vF=%c1Jx z2s4SqRNp5OnoLwqS**}>Wmoeo+>f9j35<(<^qB{+?&F={TfR4e+91G&XO1&>Co!gZ z%2Jnc>}OuU;@Pq)cZDtGAyFk>+UM~-b=r_W6XOF@8O-N$V<~0shQYzw>v71V2!{+h zHUamx!cNFp%#|C(lg#EXys9 zlI4GgM-Npx!9TF9J|M9Gqp7Ro&C&mmQ$^Qg^)sw!+r zVaE|GQ%6}(B(hA;D*c?&FDU(@l3ygUNUtdUY9h<@E2UpovV~F<^9^RH({B~^o!b3g z=|3p_N0fs83F*`HXSLf=yLXg+SLweheM{-vN&YvY`nbsVmyU@rJjV`oIdQ502 z7lrKVZ;3(REwKo(388kLkju4qM047-?oivZ;q1w)`MTaLG%HQ3HAhc5QLNyio^g!k940%3az4wPkxXMcVwP!0<~;gS6{nhI&I_hRFCk-Ng_j+$O`_RG zbD>#7pD)p#9CW(AOET^?+&iY?E@tCilgy1z)ptWM7in{<#TNbAA$H!z_BNNge-P2( z<1*ATrgK!f6WMgjl379Kq+(8GnH9mT(3@$3GYulNA_o5NLz8vG}v9_;cA3+VX&F$TSplKFh30ru(U$cLj5u zu49}9yn#J=195dPS$#0;b-_FIKJt}pzWZWtnQlzY?{l8WhAeXvLtaovxtI;TDVP?0 zfXpRi@=ETY%%Q$3WY*__EOig}?Cjp&J7QpqABjEm@1gwQ**%iX<4-Ya=j`oU|`V{ zQ^@XLMz2PTxXj~F&19$rVI&li{Y6}rab any number of characters -var star = qmark + '*?' - -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?' - -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?' - -// characters that need to be escaped in RegExp. -var reSpecials = charSet('().*{}+?[]^$\\!') - -// "abc" -> { a:true, b:true, c:true } -function charSet (s) { - return s.split('').reduce(function (set, c) { - set[c] = true - return set - }, {}) -} - -// normalizes slashes. -var slashSplit = /\/+/ - -minimatch.filter = filter -function filter (pattern, options) { - options = options || {} - return function (p, i, list) { - return minimatch(p, pattern, options) - } -} - -function ext (a, b) { - a = a || {} - b = b || {} - var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) - Object.keys(a).forEach(function (k) { - t[k] = a[k] - }) - return t -} - -minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch - - var orig = minimatch - - var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) - } - - m.Minimatch = function Minimatch (pattern, options) { - return new orig.Minimatch(pattern, ext(def, options)) - } - - return m -} - -Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch - return minimatch.defaults(def).Minimatch -} - -function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false - } - - // "" only matches "" - if (pattern.trim() === '') return p === '' - - return new Minimatch(pattern, options).match(p) -} - -function Minimatch (pattern, options) { - if (!(this instanceof Minimatch)) { - return new Minimatch(pattern, options) - } - - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } - - if (!options) options = {} - pattern = pattern.trim() - - // windows support: need to use /, not \ - if (path.sep !== '/') { - pattern = pattern.split(path.sep).join('/') - } - - this.options = options - this.set = [] - this.pattern = pattern - this.regexp = null - this.negate = false - this.comment = false - this.empty = false - - // make the set of regexps etc. - this.make() -} - -Minimatch.prototype.debug = function () {} - -Minimatch.prototype.make = make -function make () { - // don't do it more than once. - if (this._made) return - - var pattern = this.pattern - var options = this.options - - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - this.comment = true - return - } - if (!pattern) { - this.empty = true - return - } - - // step 1: figure out negation, etc. - this.parseNegate() - - // step 2: expand braces - var set = this.globSet = this.braceExpand() - - if (options.debug) this.debug = console.error - - this.debug(this.pattern, set) - - // step 3: now we have a set, so turn each one into a series of path-portion - // matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - set = this.globParts = set.map(function (s) { - return s.split(slashSplit) - }) - - this.debug(this.pattern, set) - - // glob --> regexps - set = set.map(function (s, si, set) { - return s.map(this.parse, this) - }, this) - - this.debug(this.pattern, set) - - // filter out everything that didn't compile properly. - set = set.filter(function (s) { - return s.indexOf(false) === -1 - }) - - this.debug(this.pattern, set) - - this.set = set -} - -Minimatch.prototype.parseNegate = parseNegate -function parseNegate () { - var pattern = this.pattern - var negate = false - var options = this.options - var negateOffset = 0 - - if (options.nonegate) return - - for (var i = 0, l = pattern.length - ; i < l && pattern.charAt(i) === '!' - ; i++) { - negate = !negate - negateOffset++ - } - - if (negateOffset) this.pattern = pattern.substr(negateOffset) - this.negate = negate -} - -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -minimatch.braceExpand = function (pattern, options) { - return braceExpand(pattern, options) -} - -Minimatch.prototype.braceExpand = braceExpand - -function braceExpand (pattern, options) { - if (!options) { - if (this instanceof Minimatch) { - options = this.options - } else { - options = {} - } - } - - pattern = typeof pattern === 'undefined' - ? this.pattern : pattern - - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } - - if (options.nobrace || - !pattern.match(/\{.*\}/)) { - // shortcut. no need to expand. - return [pattern] - } - - return expand(pattern) -} - -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -Minimatch.prototype.parse = parse -var SUBPARSE = {} -function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } - - var options = this.options - - // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR - if (pattern === '') return '' - - var re = '' - var hasMagic = !!options.nocase - var escaping = false - // ? => one single character - var patternListStack = [] - var negativeLists = [] - var stateChar - var inClass = false - var reClassStart = -1 - var classStart = -1 - // . and .. never match anything that doesn't start with ., - // even when options.dot is set. - var patternStart = pattern.charAt(0) === '.' ? '' // anything - // not (start or / followed by . or .. followed by / or end) - : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))' - : '(?!\\.)' - var self = this - - function clearStateChar () { - if (stateChar) { - // we had some state-tracking character - // that wasn't consumed by this pass. - switch (stateChar) { - case '*': - re += star - hasMagic = true - break - case '?': - re += qmark - hasMagic = true - break - default: - re += '\\' + stateChar - break - } - self.debug('clearStateChar %j %j', stateChar, re) - stateChar = false - } - } - - for (var i = 0, len = pattern.length, c - ; (i < len) && (c = pattern.charAt(i)) - ; i++) { - this.debug('%s\t%s %s %j', pattern, i, re, c) - - // skip over any that are escaped. - if (escaping && reSpecials[c]) { - re += '\\' + c - escaping = false - continue - } - - switch (c) { - case '/': - // completely not allowed, even escaped. - // Should already be path-split by now. - return false - - case '\\': - clearStateChar() - escaping = true - continue - - // the various stateChar values - // for the "extglob" stuff. - case '?': - case '*': - case '+': - case '@': - case '!': - this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c) - - // all of those are literals inside a class, except that - // the glob [!a] means [^a] in regexp - if (inClass) { - this.debug(' in class') - if (c === '!' && i === classStart + 1) c = '^' - re += c - continue - } - - // if we already have a stateChar, then it means - // that there was something like ** or +? in there. - // Handle the stateChar, then proceed with this one. - self.debug('call clearStateChar %j', stateChar) - clearStateChar() - stateChar = c - // if extglob is disabled, then +(asdf|foo) isn't a thing. - // just clear the statechar *now*, rather than even diving into - // the patternList stuff. - if (options.noext) clearStateChar() - continue - - case '(': - if (inClass) { - re += '(' - continue - } - - if (!stateChar) { - re += '\\(' - continue - } - - patternListStack.push({ - type: stateChar, - start: i - 1, - reStart: re.length, - open: plTypes[stateChar].open, - close: plTypes[stateChar].close - }) - // negation is (?:(?!js)[^/]*) - re += stateChar === '!' ? '(?:(?!(?:' : '(?:' - this.debug('plType %j %j', stateChar, re) - stateChar = false - continue - - case ')': - if (inClass || !patternListStack.length) { - re += '\\)' - continue - } - - clearStateChar() - hasMagic = true - var pl = patternListStack.pop() - // negation is (?:(?!js)[^/]*) - // The others are (?:) - re += pl.close - if (pl.type === '!') { - negativeLists.push(pl) - } - pl.reEnd = re.length - continue - - case '|': - if (inClass || !patternListStack.length || escaping) { - re += '\\|' - escaping = false - continue - } - - clearStateChar() - re += '|' - continue - - // these are mostly the same in regexp and glob - case '[': - // swallow any state-tracking char before the [ - clearStateChar() - - if (inClass) { - re += '\\' + c - continue - } - - inClass = true - classStart = i - reClassStart = re.length - re += c - continue - - case ']': - // a right bracket shall lose its special - // meaning and represent itself in - // a bracket expression if it occurs - // first in the list. -- POSIX.2 2.8.3.2 - if (i === classStart + 1 || !inClass) { - re += '\\' + c - escaping = false - continue - } - - // handle the case where we left a class open. - // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } - } - - // finish up the class. - hasMagic = true - inClass = false - re += c - continue - - default: - // swallow any state char that wasn't consumed - clearStateChar() - - if (escaping) { - // no need - escaping = false - } else if (reSpecials[c] - && !(c === '^' && inClass)) { - re += '\\' - } - - re += c - - } // switch - } // for - - // handle the case where we left a class open. - // "[abc" is valid, equivalent to "\[abc" - if (inClass) { - // split where the last [ was, and escape it - // this is a huge pita. We now have to re-walk - // the contents of the would-be class to re-translate - // any characters that were passed through as-is - cs = pattern.substr(classStart + 1) - sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] - hasMagic = hasMagic || sp[1] - } - - // handle the case where we had a +( thing at the *end* - // of the pattern. - // each pattern list stack adds 3 chars, and we need to go through - // and escape any | chars that were passed through as-is for the regexp. - // Go through and escape them, taking care not to double-escape any - // | chars that were already escaped. - for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { - var tail = re.slice(pl.reStart + pl.open.length) - this.debug('setting tail', re, pl) - // maybe some even number of \, then maybe 1 \, followed by a | - tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) { - if (!$2) { - // the | isn't already escaped, so escape it. - $2 = '\\' - } - - // need to escape all those slashes *again*, without escaping the - // one that we need for escaping the | character. As it works out, - // escaping an even number of slashes can be done by simply repeating - // it exactly after itself. That's why this trick works. - // - // I am sorry that you have to see this. - return $1 + $1 + $2 + '|' - }) - - this.debug('tail=%j\n %s', tail, tail, pl, re) - var t = pl.type === '*' ? star - : pl.type === '?' ? qmark - : '\\' + pl.type - - hasMagic = true - re = re.slice(0, pl.reStart) + t + '\\(' + tail - } - - // handle trailing things that only matter at the very end. - clearStateChar() - if (escaping) { - // trailing \\ - re += '\\\\' - } - - // only need to apply the nodot start if the re starts with - // something that could conceivably capture a dot - var addPatternStart = false - switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true - } - - // Hack to work around lack of negative lookbehind in JS - // A pattern like: *.!(x).!(y|z) needs to ensure that a name - // like 'a.xyz.yz' doesn't match. So, the first negative - // lookahead, has to look ALL the way ahead, to the end of - // the pattern. - for (var n = negativeLists.length - 1; n > -1; n--) { - var nl = negativeLists[n] - - var nlBefore = re.slice(0, nl.reStart) - var nlFirst = re.slice(nl.reStart, nl.reEnd - 8) - var nlLast = re.slice(nl.reEnd - 8, nl.reEnd) - var nlAfter = re.slice(nl.reEnd) - - nlLast += nlAfter - - // Handle nested stuff like *(*.js|!(*.json)), where open parens - // mean that we should *not* include the ) in the bit that is considered - // "after" the negated section. - var openParensBefore = nlBefore.split('(').length - 1 - var cleanAfter = nlAfter - for (i = 0; i < openParensBefore; i++) { - cleanAfter = cleanAfter.replace(/\)[+*?]?/, '') - } - nlAfter = cleanAfter - - var dollar = '' - if (nlAfter === '' && isSub !== SUBPARSE) { - dollar = '$' - } - var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast - re = newRe - } - - // if the re is not "" at this point, then we need to make sure - // it doesn't match against an empty path part. - // Otherwise a/* will match a/, which it should not. - if (re !== '' && hasMagic) { - re = '(?=.)' + re - } - - if (addPatternStart) { - re = patternStart + re - } - - // parsing just a piece of a larger pattern. - if (isSub === SUBPARSE) { - return [re, hasMagic] - } - - // skip the regexp for non-magical patterns - // unescape anything in it, though, so that it'll be - // an exact match against a file etc. - if (!hasMagic) { - return globUnescape(pattern) - } - - var flags = options.nocase ? 'i' : '' - try { - var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { - // If it was an invalid regular expression, then it can't match - // anything. This trick looks for a character after the end of - // the string, which is of course impossible, except in multi-line - // mode, but it's not a /m regex. - return new RegExp('$.') - } - - regExp._glob = pattern - regExp._src = re - - return regExp -} - -minimatch.makeRe = function (pattern, options) { - return new Minimatch(pattern, options || {}).makeRe() -} - -Minimatch.prototype.makeRe = makeRe -function makeRe () { - if (this.regexp || this.regexp === false) return this.regexp - - // at this point, this.set is a 2d array of partial - // pattern strings, or "**". - // - // It's better to use .match(). This function shouldn't - // be used, really, but it's pretty convenient sometimes, - // when you just want to work with a regex. - var set = this.set - - if (!set.length) { - this.regexp = false - return this.regexp - } - var options = this.options - - var twoStar = options.noglobstar ? star - : options.dot ? twoStarDot - : twoStarNoDot - var flags = options.nocase ? 'i' : '' - - var re = set.map(function (pattern) { - return pattern.map(function (p) { - return (p === GLOBSTAR) ? twoStar - : (typeof p === 'string') ? regExpEscape(p) - : p._src - }).join('\\\/') - }).join('|') - - // must match entire pattern - // ending in a * or ** will make it less strict. - re = '^(?:' + re + ')$' - - // can match anything, as long as it's not this. - if (this.negate) re = '^(?!' + re + ').*$' - - try { - this.regexp = new RegExp(re, flags) - } catch (ex) { - this.regexp = false - } - return this.regexp -} - -minimatch.match = function (list, pattern, options) { - options = options || {} - var mm = new Minimatch(pattern, options) - list = list.filter(function (f) { - return mm.match(f) - }) - if (mm.options.nonull && !list.length) { - list.push(pattern) - } - return list -} - -Minimatch.prototype.match = match -function match (f, partial) { - this.debug('match', f, this.pattern) - // short-circuit in the case of busted things. - // comments, etc. - if (this.comment) return false - if (this.empty) return f === '' - - if (f === '/' && partial) return true - - var options = this.options - - // windows: need to use /, not \ - if (path.sep !== '/') { - f = f.split(path.sep).join('/') - } - - // treat the test path as a set of pathparts. - f = f.split(slashSplit) - this.debug(this.pattern, 'split', f) - - // just ONE of the pattern sets in this.set needs to match - // in order for it to be valid. If negating, then just one - // match means that we have failed. - // Either way, return on the first hit. - - var set = this.set - this.debug(this.pattern, 'set', set) - - // Find the basename of the path by looking for the last non-empty segment - var filename - var i - for (i = f.length - 1; i >= 0; i--) { - filename = f[i] - if (filename) break - } - - for (i = 0; i < set.length; i++) { - var pattern = set[i] - var file = f - if (options.matchBase && pattern.length === 1) { - file = [filename] - } - var hit = this.matchOne(file, pattern, partial) - if (hit) { - if (options.flipNegate) return true - return !this.negate - } - } - - // didn't get any hits. this is success if it's a negative - // pattern, failure otherwise. - if (options.flipNegate) return false - return this.negate -} - -// set partial to true to test if, for example, -// "/a/b" matches the start of "/*/b/*/d" -// Partial means, if you run out of file before you run -// out of pattern, then that's fine, as long as all -// the parts match. -Minimatch.prototype.matchOne = function (file, pattern, partial) { - var options = this.options - - this.debug('matchOne', - { 'this': this, file: file, pattern: pattern }) - - this.debug('matchOne', file.length, pattern.length) - - for (var fi = 0, - pi = 0, - fl = file.length, - pl = pattern.length - ; (fi < fl) && (pi < pl) - ; fi++, pi++) { - this.debug('matchOne loop') - var p = pattern[pi] - var f = file[fi] - - this.debug(pattern, p, f) - - // should be impossible. - // some invalid regexp stuff in the set. - if (p === false) return false - - if (p === GLOBSTAR) { - this.debug('GLOBSTAR', [pattern, p, f]) - - // "**" - // a/**/b/**/c would match the following: - // a/b/x/y/z/c - // a/x/y/z/b/c - // a/b/x/b/x/c - // a/b/c - // To do this, take the rest of the pattern after - // the **, and see if it would match the file remainder. - // If so, return success. - // If not, the ** "swallows" a segment, and try again. - // This is recursively awful. - // - // a/**/b/**/c matching a/b/x/y/z/c - // - a matches a - // - doublestar - // - matchOne(b/x/y/z/c, b/**/c) - // - b matches b - // - doublestar - // - matchOne(x/y/z/c, c) -> no - // - matchOne(y/z/c, c) -> no - // - matchOne(z/c, c) -> no - // - matchOne(c, c) yes, hit - var fr = fi - var pr = pi + 1 - if (pr === pl) { - this.debug('** at the end') - // a ** at the end will just swallow the rest. - // We have found a match. - // however, it will not swallow /.x, unless - // options.dot is set. - // . and .. are *never* matched by **, for explosively - // exponential reasons. - for (; fi < fl; fi++) { - if (file[fi] === '.' || file[fi] === '..' || - (!options.dot && file[fi].charAt(0) === '.')) return false - } - return true - } - - // ok, let's see if we can swallow whatever we can. - while (fr < fl) { - var swallowee = file[fr] - - this.debug('\nglobstar while', file, fr, pattern, pr, swallowee) - - // XXX remove this slice. Just pass the start index. - if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { - this.debug('globstar found match!', fr, fl, swallowee) - // found a match. - return true - } else { - // can't swallow "." or ".." ever. - // can only swallow ".foo" when explicitly asked. - if (swallowee === '.' || swallowee === '..' || - (!options.dot && swallowee.charAt(0) === '.')) { - this.debug('dot detected!', file, fr, pattern, pr) - break - } - - // ** swallows a segment, and continue. - this.debug('globstar swallow a segment, and continue') - fr++ - } - } - - // no match was found. - // However, in partial mode, we can't say this is necessarily over. - // If there's more *pattern* left, then - if (partial) { - // ran out of file - this.debug('\n>>> no match, partial?', file, fr, pattern, pr) - if (fr === fl) return true - } - return false - } - - // something other than ** - // non-magic patterns just have to match exactly - // patterns with magic have been turned into regexps. - var hit - if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } - this.debug('string match', p, f, hit) - } else { - hit = f.match(p) - this.debug('pattern match', p, f, hit) - } - - if (!hit) return false - } - - // Note: ending in / means that we'll get a final "" - // at the end of the pattern. This can only match a - // corresponding "" at the end of the file. - // If the file ends in /, then it can only match a - // a pattern that ends in /, unless the pattern just - // doesn't have any more for it. But, a/b/ should *not* - // match "a/b/*", even though "" matches against the - // [^/]*? pattern, except in partial mode, where it might - // simply not be reached yet. - // However, a/b/ should still satisfy a/* - - // now either we fell off the end of the pattern, or we're done. - if (fi === fl && pi === pl) { - // ran out of pattern and filename at the same time. - // an exact hit! - return true - } else if (fi === fl) { - // ran out of file, but still had pattern left. - // this is ok if we're doing the match as part of - // a glob fs traversal. - return partial - } else if (pi === pl) { - // ran out of pattern, still have file left. - // this is only acceptable if we're on the very last - // empty segment of a file with a trailing slash. - // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd - } - - // should be unreachable. - throw new Error('wtf?') -} - -// replace stuff like \* with * -function globUnescape (s) { - return s.replace(/\\(.)/g, '$1') -} - -function regExpEscape (s) { - return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') -} diff --git a/multiplatform-crypto-delegated/node_modules/minimatch/package.json b/multiplatform-crypto-delegated/node_modules/minimatch/package.json deleted file mode 100644 index 05bba2d..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimatch/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_from": "minimatch@3.0.4", - "_id": "minimatch@3.0.4", - "_inBundle": false, - "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "_location": "/minimatch", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "minimatch@3.0.4", - "name": "minimatch", - "escapedName": "minimatch", - "rawSpec": "3.0.4", - "saveSpec": null, - "fetchSpec": "3.0.4" - }, - "_requiredBy": [ - "/glob", - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083", - "_spec": "minimatch@3.0.4", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/minimatch/issues" - }, - "bundleDependencies": false, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "deprecated": false, - "description": "a glob matcher in javascript", - "devDependencies": { - "tap": "^10.3.2" - }, - "engines": { - "node": "*" - }, - "files": [ - "minimatch.js" - ], - "homepage": "https://github.com/isaacs/minimatch#readme", - "license": "ISC", - "main": "minimatch.js", - "name": "minimatch", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/minimatch.git" - }, - "scripts": { - "postpublish": "git push origin --all; git push origin --tags", - "postversion": "npm publish", - "preversion": "npm test", - "test": "tap test/*.js --cov" - }, - "version": "3.0.4" -} diff --git a/multiplatform-crypto-delegated/node_modules/minimist/.travis.yml b/multiplatform-crypto-delegated/node_modules/minimist/.travis.yml deleted file mode 100644 index cc4dba2..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" diff --git a/multiplatform-crypto-delegated/node_modules/minimist/LICENSE b/multiplatform-crypto-delegated/node_modules/minimist/LICENSE deleted file mode 100644 index ee27ba4..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/minimist/example/parse.js b/multiplatform-crypto-delegated/node_modules/minimist/example/parse.js deleted file mode 100644 index abff3e8..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/example/parse.js +++ /dev/null @@ -1,2 +0,0 @@ -var argv = require('../')(process.argv.slice(2)); -console.dir(argv); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/index.js b/multiplatform-crypto-delegated/node_modules/minimist/index.js deleted file mode 100644 index 584f551..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/index.js +++ /dev/null @@ -1,187 +0,0 @@ -module.exports = function (args, opts) { - if (!opts) opts = {}; - - var flags = { bools : {}, strings : {} }; - - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); - - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - }); - - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - - var defaults = opts['default'] || {}; - - var argv = { _ : [] }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - - var notFlags = []; - - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--')+1); - args = args.slice(0, args.indexOf('--')); - } - - function setArg (key, val) { - var value = !flags.strings[key] && isNumber(val) - ? Number(val) : val - ; - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); - }); - } - - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - setArg(m[1], m[2]); - } - else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false); - } - else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !/^-/.test(next) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, next); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true'); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true); - } - } - else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j+2); - - if (next === '-') { - setArg(letters[j], next) - continue; - } - - if (/[A-Za-z]/.test(letters[j]) - && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next); - broken = true; - break; - } - - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2)); - broken = true; - break; - } - else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true); - } - } - - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) - && !flags.bools[key] - && (aliases[key] ? !flags.bools[aliases[key]] : true)) { - setArg(key, args[i+1]); - i++; - } - else if (args[i+1] && /true|false/.test(args[i+1])) { - setArg(key, args[i+1] === 'true'); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true); - } - } - } - else { - argv._.push( - flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) - ); - } - } - - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); - }); - } - }); - - notFlags.forEach(function(key) { - argv._.push(key); - }); - - return argv; -}; - -function hasKey (obj, keys) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - o = (o[key] || {}); - }); - - var key = keys[keys.length - 1]; - return key in o; -} - -function setKey (obj, keys, value) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - if (o[key] === undefined) o[key] = {}; - o = o[key]; - }); - - var key = keys[keys.length - 1]; - if (o[key] === undefined || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } -} - -function isNumber (x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); -} - -function longest (xs) { - return Math.max.apply(null, xs.map(function (x) { return x.length })); -} diff --git a/multiplatform-crypto-delegated/node_modules/minimist/package.json b/multiplatform-crypto-delegated/node_modules/minimist/package.json deleted file mode 100644 index 73db455..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "_from": "minimist@0.0.8", - "_id": "minimist@0.0.8", - "_inBundle": false, - "_integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "_location": "/minimist", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "minimist@0.0.8", - "name": "minimist", - "escapedName": "minimist", - "rawSpec": "0.0.8", - "saveSpec": null, - "fetchSpec": "0.0.8" - }, - "_requiredBy": [ - "/mkdirp" - ], - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_spec": "minimist@0.0.8", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mkdirp", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "bugs": { - "url": "https://github.com/substack/minimist/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "parse argument options", - "devDependencies": { - "tap": "~0.4.0", - "tape": "~1.0.4" - }, - "homepage": "https://github.com/substack/minimist", - "keywords": [ - "argv", - "getopt", - "parser", - "optimist" - ], - "license": "MIT", - "main": "index.js", - "name": "minimist", - "repository": { - "type": "git", - "url": "git://github.com/substack/minimist.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "ff/5", - "firefox/latest", - "chrome/10", - "chrome/latest", - "safari/5.1", - "safari/latest", - "opera/12" - ] - }, - "version": "0.0.8" -} diff --git a/multiplatform-crypto-delegated/node_modules/minimist/readme.markdown b/multiplatform-crypto-delegated/node_modules/minimist/readme.markdown deleted file mode 100644 index c256353..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/readme.markdown +++ /dev/null @@ -1,73 +0,0 @@ -# minimist - -parse argument options - -This module is the guts of optimist's argument parser without all the -fanciful decoration. - -[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist) - -[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist) - -# example - -``` js -var argv = require('minimist')(process.argv.slice(2)); -console.dir(argv); -``` - -``` -$ node example/parse.js -a beep -b boop -{ _: [], a: 'beep', b: 'boop' } -``` - -``` -$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz -{ _: [ 'foo', 'bar', 'baz' ], - x: 3, - y: 4, - n: 5, - a: true, - b: true, - c: true, - beep: 'boop' } -``` - -# methods - -``` js -var parseArgs = require('minimist') -``` - -## var argv = parseArgs(args, opts={}) - -Return an argument object `argv` populated with the array arguments from `args`. - -`argv._` contains all the arguments that didn't have an option associated with -them. - -Numeric-looking arguments will be returned as numbers unless `opts.string` or -`opts.boolean` is set for that argument name. - -Any arguments after `'--'` will not be parsed and will end up in `argv._`. - -options can be: - -* `opts.string` - a string or array of strings argument names to always treat as -strings -* `opts.boolean` - a string or array of strings to always treat as booleans -* `opts.alias` - an object mapping string names to strings or arrays of string -argument names to use as aliases -* `opts.default` - an object mapping string argument names to default values - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install minimist -``` - -# license - -MIT diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/dash.js b/multiplatform-crypto-delegated/node_modules/minimist/test/dash.js deleted file mode 100644 index 8b034b9..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/dash.js +++ /dev/null @@ -1,24 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('-', function (t) { - t.plan(5); - t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] }); - t.deepEqual(parse([ '-' ]), { _: [ '-' ] }); - t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] }); - t.deepEqual( - parse([ '-b', '-' ], { boolean: 'b' }), - { b: true, _: [ '-' ] } - ); - t.deepEqual( - parse([ '-s', '-' ], { string: 's' }), - { s: '-', _: [] } - ); -}); - -test('-a -- b', function (t) { - t.plan(3); - t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/default_bool.js b/multiplatform-crypto-delegated/node_modules/minimist/test/default_bool.js deleted file mode 100644 index f0041ee..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/default_bool.js +++ /dev/null @@ -1,20 +0,0 @@ -var test = require('tape'); -var parse = require('../'); - -test('boolean default true', function (t) { - var argv = parse([], { - boolean: 'sometrue', - default: { sometrue: true } - }); - t.equal(argv.sometrue, true); - t.end(); -}); - -test('boolean default false', function (t) { - var argv = parse([], { - boolean: 'somefalse', - default: { somefalse: false } - }); - t.equal(argv.somefalse, false); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/dotted.js b/multiplatform-crypto-delegated/node_modules/minimist/test/dotted.js deleted file mode 100644 index ef0ae34..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/dotted.js +++ /dev/null @@ -1,16 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('dotted alias', function (t) { - var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 22); - t.equal(argv.aa.bb, 22); - t.end(); -}); - -test('dotted default', function (t) { - var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 11); - t.equal(argv.aa.bb, 11); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/long.js b/multiplatform-crypto-delegated/node_modules/minimist/test/long.js deleted file mode 100644 index 5d3a1e0..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/long.js +++ /dev/null @@ -1,31 +0,0 @@ -var test = require('tape'); -var parse = require('../'); - -test('long opts', function (t) { - t.deepEqual( - parse([ '--bool' ]), - { bool : true, _ : [] }, - 'long boolean' - ); - t.deepEqual( - parse([ '--pow', 'xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture sp' - ); - t.deepEqual( - parse([ '--pow=xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture eq' - ); - t.deepEqual( - parse([ '--host', 'localhost', '--port', '555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures sp' - ); - t.deepEqual( - parse([ '--host=localhost', '--port=555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures eq' - ); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/parse.js b/multiplatform-crypto-delegated/node_modules/minimist/test/parse.js deleted file mode 100644 index 8a90646..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/parse.js +++ /dev/null @@ -1,318 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('parse args', function (t) { - t.deepEqual( - parse([ '--no-moo' ]), - { moo : false, _ : [] }, - 'no' - ); - t.deepEqual( - parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), - { v : ['a','b','c'], _ : [] }, - 'multi' - ); - t.end(); -}); - -test('comprehensive', function (t) { - t.deepEqual( - parse([ - '--name=meowmers', 'bare', '-cats', 'woo', - '-h', 'awesome', '--multi=quux', - '--key', 'value', - '-b', '--bool', '--no-meep', '--multi=baz', - '--', '--not-a-flag', 'eek' - ]), - { - c : true, - a : true, - t : true, - s : 'woo', - h : 'awesome', - b : true, - bool : true, - key : 'value', - multi : [ 'quux', 'baz' ], - meep : false, - name : 'meowmers', - _ : [ 'bare', '--not-a-flag', 'eek' ] - } - ); - t.end(); -}); - -test('nums', function (t) { - var argv = parse([ - '-x', '1234', - '-y', '5.67', - '-z', '1e7', - '-w', '10f', - '--hex', '0xdeadbeef', - '789' - ]); - t.deepEqual(argv, { - x : 1234, - y : 5.67, - z : 1e7, - w : '10f', - hex : 0xdeadbeef, - _ : [ 789 ] - }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv.y, 'number'); - t.deepEqual(typeof argv.z, 'number'); - t.deepEqual(typeof argv.w, 'string'); - t.deepEqual(typeof argv.hex, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); -}); - -test('flag boolean', function (t) { - var argv = parse([ '-t', 'moo' ], { boolean: 't' }); - t.deepEqual(argv, { t : true, _ : [ 'moo' ] }); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); - -test('flag boolean value', function (t) { - var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], { - boolean: [ 't', 'verbose' ], - default: { verbose: true } - }); - - t.deepEqual(argv, { - verbose: false, - t: true, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); -}); - -test('flag boolean default false', function (t) { - var argv = parse(['moo'], { - boolean: ['t', 'verbose'], - default: { verbose: false, t: false } - }); - - t.deepEqual(argv, { - verbose: false, - t: false, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); - -}); - -test('boolean groups', function (t) { - var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { - boolean: ['x','y','z'] - }); - - t.deepEqual(argv, { - x : true, - y : false, - z : true, - _ : [ 'one', 'two', 'three' ] - }); - - t.deepEqual(typeof argv.x, 'boolean'); - t.deepEqual(typeof argv.y, 'boolean'); - t.deepEqual(typeof argv.z, 'boolean'); - t.end(); -}); - -test('newlines in params' , function (t) { - var args = parse([ '-s', "X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - - // reproduce in bash: - // VALUE="new - // line" - // node program.js --s="$VALUE" - args = parse([ "--s=X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - t.end(); -}); - -test('strings' , function (t) { - var s = parse([ '-s', '0001234' ], { string: 's' }).s; - t.equal(s, '0001234'); - t.equal(typeof s, 'string'); - - var x = parse([ '-x', '56' ], { string: 'x' }).x; - t.equal(x, '56'); - t.equal(typeof x, 'string'); - t.end(); -}); - -test('stringArgs', function (t) { - var s = parse([ ' ', ' ' ], { string: '_' })._; - t.same(s.length, 2); - t.same(typeof s[0], 'string'); - t.same(s[0], ' '); - t.same(typeof s[1], 'string'); - t.same(s[1], ' '); - t.end(); -}); - -test('empty strings', function(t) { - var s = parse([ '-s' ], { string: 's' }).s; - t.equal(s, ''); - t.equal(typeof s, 'string'); - - var str = parse([ '--str' ], { string: 'str' }).str; - t.equal(str, ''); - t.equal(typeof str, 'string'); - - var letters = parse([ '-art' ], { - string: [ 'a', 't' ] - }); - - t.equal(letters.a, ''); - t.equal(letters.r, true); - t.equal(letters.t, ''); - - t.end(); -}); - - -test('slashBreak', function (t) { - t.same( - parse([ '-I/foo/bar/baz' ]), - { I : '/foo/bar/baz', _ : [] } - ); - t.same( - parse([ '-xyz/foo/bar/baz' ]), - { x : true, y : true, z : '/foo/bar/baz', _ : [] } - ); - t.end(); -}); - -test('alias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: 'zoom' } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.f, 11); - t.end(); -}); - -test('multiAlias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: [ 'zm', 'zoom' ] } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.z, argv.zm); - t.equal(argv.f, 11); - t.end(); -}); - -test('nested dotted objects', function (t) { - var argv = parse([ - '--foo.bar', '3', '--foo.baz', '4', - '--foo.quux.quibble', '5', '--foo.quux.o_O', - '--beep.boop' - ]); - - t.same(argv.foo, { - bar : 3, - baz : 4, - quux : { - quibble : 5, - o_O : true - } - }); - t.same(argv.beep, { boop : true }); - t.end(); -}); - -test('boolean and alias with chainable api', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = parse(aliased, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var propertyArgv = parse(regular, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - alias: { 'h': 'herp' }, - boolean: 'herp' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -test('boolean and alias using explicit true', function (t) { - var aliased = [ '-h', 'true' ]; - var regular = [ '--herp', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); -}); - -// regression, see https://github.com/substack/node-optimist/issues/71 -test('boolean and --x=true', function(t) { - var parsed = parse(['--boool', '--other=true'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'true'); - - parsed = parse(['--boool', '--other=false'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'false'); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/parse_modified.js b/multiplatform-crypto-delegated/node_modules/minimist/test/parse_modified.js deleted file mode 100644 index 21851b0..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/parse_modified.js +++ /dev/null @@ -1,9 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('parse with modifier functions' , function (t) { - t.plan(1); - - var argv = parse([ '-b', '123' ], { boolean: 'b' }); - t.deepEqual(argv, { b: true, _: ['123'] }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/short.js b/multiplatform-crypto-delegated/node_modules/minimist/test/short.js deleted file mode 100644 index d513a1c..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/short.js +++ /dev/null @@ -1,67 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('numeric short args', function (t) { - t.plan(2); - t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] }); - t.deepEqual( - parse([ '-123', '456' ]), - { 1: true, 2: true, 3: 456, _: [] } - ); -}); - -test('short', function (t) { - t.deepEqual( - parse([ '-b' ]), - { b : true, _ : [] }, - 'short boolean' - ); - t.deepEqual( - parse([ 'foo', 'bar', 'baz' ]), - { _ : [ 'foo', 'bar', 'baz' ] }, - 'bare' - ); - t.deepEqual( - parse([ '-cats' ]), - { c : true, a : true, t : true, s : true, _ : [] }, - 'group' - ); - t.deepEqual( - parse([ '-cats', 'meow' ]), - { c : true, a : true, t : true, s : 'meow', _ : [] }, - 'short group next' - ); - t.deepEqual( - parse([ '-h', 'localhost' ]), - { h : 'localhost', _ : [] }, - 'short capture' - ); - t.deepEqual( - parse([ '-h', 'localhost', '-p', '555' ]), - { h : 'localhost', p : 555, _ : [] }, - 'short captures' - ); - t.end(); -}); - -test('mixed short bool and capture', function (t) { - t.same( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); -}); - -test('short and long', function (t) { - t.deepEqual( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/minimist/test/whitespace.js b/multiplatform-crypto-delegated/node_modules/minimist/test/whitespace.js deleted file mode 100644 index 8a52a58..0000000 --- a/multiplatform-crypto-delegated/node_modules/minimist/test/whitespace.js +++ /dev/null @@ -1,8 +0,0 @@ -var parse = require('../'); -var test = require('tape'); - -test('whitespace should be whitespace' , function (t) { - t.plan(1); - var x = parse([ '-x', '\t' ]).x; - t.equal(x, '\t'); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/.travis.yml b/multiplatform-crypto-delegated/node_modules/mkdirp/.travis.yml deleted file mode 100644 index 74c57bf..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" -before_install: - - npm install -g npm@~1.4.6 diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/LICENSE b/multiplatform-crypto-delegated/node_modules/mkdirp/LICENSE deleted file mode 100644 index 432d1ae..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2010 James Halliday (mail@substack.net) - -This project is free software released under the MIT/X11 license: - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/bin/usage.txt b/multiplatform-crypto-delegated/node_modules/mkdirp/bin/usage.txt deleted file mode 100644 index f952aa2..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/bin/usage.txt +++ /dev/null @@ -1,12 +0,0 @@ -usage: mkdirp [DIR1,DIR2..] {OPTIONS} - - Create each supplied directory including any necessary parent directories that - don't yet exist. - - If the directory already exists, do nothing. - -OPTIONS are: - - -m, --mode If a directory needs to be created, set the mode as an octal - permission string. - diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/examples/pow.js b/multiplatform-crypto-delegated/node_modules/mkdirp/examples/pow.js deleted file mode 100644 index e692421..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/examples/pow.js +++ /dev/null @@ -1,6 +0,0 @@ -var mkdirp = require('mkdirp'); - -mkdirp('/tmp/foo/bar/baz', function (err) { - if (err) console.error(err) - else console.log('pow!') -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/index.js b/multiplatform-crypto-delegated/node_modules/mkdirp/index.js deleted file mode 100644 index 6ce241b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/index.js +++ /dev/null @@ -1,98 +0,0 @@ -var path = require('path'); -var fs = require('fs'); -var _0777 = parseInt('0777', 8); - -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - -function mkdirP (p, opts, f, made) { - if (typeof opts === 'function') { - f = opts; - opts = {}; - } - else if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - p = path.resolve(p); - - xfs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - mkdirP(path.dirname(p), opts, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, opts, cb, made); - }); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - xfs.stat(p, function (er2, stat) { - // if the stat fails, then that's super weird. - // let the original error be the failure reason. - if (er2 || !stat.isDirectory()) cb(er, made) - else cb(null, made); - }); - break; - } - }); -} - -mkdirP.sync = function sync (p, opts, made) { - if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - p = path.resolve(p); - - try { - xfs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), opts, made); - sync(p, opts, made); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - var stat; - try { - stat = xfs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - } - } - - return made; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/package.json b/multiplatform-crypto-delegated/node_modules/mkdirp/package.json deleted file mode 100644 index eaa3be2..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_from": "mkdirp@0.5.1", - "_id": "mkdirp@0.5.1", - "_inBundle": false, - "_integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "_location": "/mkdirp", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "mkdirp@0.5.1", - "name": "mkdirp", - "escapedName": "mkdirp", - "rawSpec": "0.5.1", - "saveSpec": null, - "fetchSpec": "0.5.1" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", - "_spec": "mkdirp@0.5.1", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "bugs": { - "url": "https://github.com/substack/node-mkdirp/issues" - }, - "bundleDependencies": false, - "dependencies": { - "minimist": "0.0.8" - }, - "deprecated": false, - "description": "Recursively mkdir, like `mkdir -p`", - "devDependencies": { - "mock-fs": "2 >=2.7.0", - "tap": "1" - }, - "homepage": "https://github.com/substack/node-mkdirp#readme", - "keywords": [ - "mkdir", - "directory" - ], - "license": "MIT", - "main": "index.js", - "name": "mkdirp", - "repository": { - "type": "git", - "url": "git+https://github.com/substack/node-mkdirp.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "0.5.1" -} diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/readme.markdown b/multiplatform-crypto-delegated/node_modules/mkdirp/readme.markdown deleted file mode 100644 index 3cc1315..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/readme.markdown +++ /dev/null @@ -1,100 +0,0 @@ -# mkdirp - -Like `mkdir -p`, but in node.js! - -[![build status](https://secure.travis-ci.org/substack/node-mkdirp.png)](http://travis-ci.org/substack/node-mkdirp) - -# example - -## pow.js - -```js -var mkdirp = require('mkdirp'); - -mkdirp('/tmp/foo/bar/baz', function (err) { - if (err) console.error(err) - else console.log('pow!') -}); -``` - -Output - -``` -pow! -``` - -And now /tmp/foo/bar/baz exists, huzzah! - -# methods - -```js -var mkdirp = require('mkdirp'); -``` - -## mkdirp(dir, opts, cb) - -Create a new directory and any necessary subdirectories at `dir` with octal -permission string `opts.mode`. If `opts` is a non-object, it will be treated as -the `opts.mode`. - -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -`cb(err, made)` fires with the error or the first directory `made` -that had to be created, if any. - -You can optionally pass in an alternate `fs` implementation by passing in -`opts.fs`. Your implementation should have `opts.fs.mkdir(path, mode, cb)` and -`opts.fs.stat(path, cb)`. - -## mkdirp.sync(dir, opts) - -Synchronously create a new directory and any necessary subdirectories at `dir` -with octal permission string `opts.mode`. If `opts` is a non-object, it will be -treated as the `opts.mode`. - -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. - -Returns the first directory that had to be created, if any. - -You can optionally pass in an alternate `fs` implementation by passing in -`opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` and -`opts.fs.statSync(path)`. - -# usage - -This package also ships with a `mkdirp` command. - -``` -usage: mkdirp [DIR1,DIR2..] {OPTIONS} - - Create each supplied directory including any necessary parent directories that - don't yet exist. - - If the directory already exists, do nothing. - -OPTIONS are: - - -m, --mode If a directory needs to be created, set the mode as an octal - permission string. - -``` - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install mkdirp -``` - -to get the library, or - -``` -npm install -g mkdirp -``` - -to get the command. - -# license - -MIT diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/chmod.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/chmod.js deleted file mode 100644 index 6a404b9..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/chmod.js +++ /dev/null @@ -1,41 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); -var _0744 = parseInt('0744', 8); - -var ps = [ '', 'tmp' ]; - -for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); -} - -var file = ps.join('/'); - -test('chmod-pre', function (t) { - var mode = _0744 - mkdirp(file, mode, function (er) { - t.ifError(er, 'should not error'); - fs.stat(file, function (er, stat) { - t.ifError(er, 'should exist'); - t.ok(stat && stat.isDirectory(), 'should be directory'); - t.equal(stat && stat.mode & _0777, mode, 'should be 0744'); - t.end(); - }); - }); -}); - -test('chmod', function (t) { - var mode = _0755 - mkdirp(file, mode, function (er) { - t.ifError(er, 'should not error'); - fs.stat(file, function (er, stat) { - t.ifError(er, 'should exist'); - t.ok(stat && stat.isDirectory(), 'should be directory'); - t.end(); - }); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/clobber.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/clobber.js deleted file mode 100644 index 2433b9a..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/clobber.js +++ /dev/null @@ -1,38 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0755 = parseInt('0755', 8); - -var ps = [ '', 'tmp' ]; - -for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); -} - -var file = ps.join('/'); - -// a file in the way -var itw = ps.slice(0, 3).join('/'); - - -test('clobber-pre', function (t) { - console.error("about to write to "+itw) - fs.writeFileSync(itw, 'I AM IN THE WAY, THE TRUTH, AND THE LIGHT.'); - - fs.stat(itw, function (er, stat) { - t.ifError(er) - t.ok(stat && stat.isFile(), 'should be file') - t.end() - }) -}) - -test('clobber', function (t) { - t.plan(2); - mkdirp(file, _0755, function (err) { - t.ok(err); - t.equal(err.code, 'ENOTDIR'); - t.end(); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/mkdirp.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/mkdirp.js deleted file mode 100644 index eaa8921..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/mkdirp.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('woo', function (t) { - t.plan(5); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs.js deleted file mode 100644 index 97186b6..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs.js +++ /dev/null @@ -1,29 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var test = require('tap').test; -var mockfs = require('mock-fs'); -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('opts.fs', function (t) { - t.plan(5); - - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/beep/boop/' + [x,y,z].join('/'); - var xfs = mockfs.fs(); - - mkdirp(file, { fs: xfs, mode: _0755 }, function (err) { - t.ifError(err); - xfs.exists(file, function (ex) { - t.ok(ex, 'created file'); - xfs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs_sync.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs_sync.js deleted file mode 100644 index 6c370aa..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/opts_fs_sync.js +++ /dev/null @@ -1,27 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var test = require('tap').test; -var mockfs = require('mock-fs'); -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('opts.fs sync', function (t) { - t.plan(4); - - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/beep/boop/' + [x,y,z].join('/'); - var xfs = mockfs.fs(); - - mkdirp.sync(file, { fs: xfs, mode: _0755 }); - xfs.exists(file, function (ex) { - t.ok(ex, 'created file'); - xfs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/perm.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/perm.js deleted file mode 100644 index fbce44b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/perm.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('async perm', function (t) { - t.plan(5); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); - -test('async root perm', function (t) { - mkdirp('/tmp', _0755, function (err) { - if (err) t.fail(err); - t.end(); - }); - t.end(); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/perm_sync.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/perm_sync.js deleted file mode 100644 index 398229f..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/perm_sync.js +++ /dev/null @@ -1,36 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('sync perm', function (t) { - t.plan(4); - var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json'; - - mkdirp.sync(file, _0755); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); - -test('sync root perm', function (t) { - t.plan(3); - - var file = '/tmp'; - mkdirp.sync(file, _0755); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/race.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/race.js deleted file mode 100644 index b0b9e18..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/race.js +++ /dev/null @@ -1,37 +0,0 @@ -var mkdirp = require('../').mkdirp; -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('race', function (t) { - t.plan(10); - var ps = [ '', 'tmp' ]; - - for (var i = 0; i < 25; i++) { - var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - ps.push(dir); - } - var file = ps.join('/'); - - var res = 2; - mk(file); - - mk(file); - - function mk (file, cb) { - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }) - }); - } -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/rel.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/rel.js deleted file mode 100644 index 4ddb342..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/rel.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('rel', function (t) { - t.plan(5); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var cwd = process.cwd(); - process.chdir('/tmp'); - - var file = [x,y,z].join('/'); - - mkdirp(file, _0755, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - process.chdir(cwd); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }) - }) - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/return.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/return.js deleted file mode 100644 index bce68e5..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/return.js +++ /dev/null @@ -1,25 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('return value', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - // should return the first dir created. - // By this point, it would be profoundly surprising if /tmp didn't - // already exist, since every other test makes things in there. - mkdirp(file, function (err, made) { - t.ifError(err); - t.equal(made, '/tmp/' + x); - mkdirp(file, function (err, made) { - t.ifError(err); - t.equal(made, null); - }); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/return_sync.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/return_sync.js deleted file mode 100644 index 7c222d3..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/return_sync.js +++ /dev/null @@ -1,24 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; - -test('return value', function (t) { - t.plan(2); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - // should return the first dir created. - // By this point, it would be profoundly surprising if /tmp didn't - // already exist, since every other test makes things in there. - // Note that this will throw on failure, which will fail the test. - var made = mkdirp.sync(file); - t.equal(made, '/tmp/' + x); - - // making the same file again should have no effect. - made = mkdirp.sync(file); - t.equal(made, null); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/root.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/root.js deleted file mode 100644 index 9e7d079..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/root.js +++ /dev/null @@ -1,19 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var test = require('tap').test; -var _0755 = parseInt('0755', 8); - -test('root', function (t) { - // '/' on unix, 'c:/' on windows. - var file = path.resolve('/'); - - mkdirp(file, _0755, function (err) { - if (err) throw err - fs.stat(file, function (er, stat) { - if (er) throw er - t.ok(stat.isDirectory(), 'target is a directory'); - t.end(); - }) - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/sync.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/sync.js deleted file mode 100644 index 8c8dc93..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('sync', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - try { - mkdirp.sync(file, _0755); - } catch (err) { - t.fail(err); - return t.end(); - } - - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0755); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/umask.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/umask.js deleted file mode 100644 index 2033c63..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/umask.js +++ /dev/null @@ -1,28 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('implicit mode from umask', function (t) { - t.plan(5); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - mkdirp(file, function (err) { - t.ifError(err); - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, _0777 & (~process.umask())); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }) - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mkdirp/test/umask_sync.js b/multiplatform-crypto-delegated/node_modules/mkdirp/test/umask_sync.js deleted file mode 100644 index 11a7614..0000000 --- a/multiplatform-crypto-delegated/node_modules/mkdirp/test/umask_sync.js +++ /dev/null @@ -1,32 +0,0 @@ -var mkdirp = require('../'); -var path = require('path'); -var fs = require('fs'); -var exists = fs.exists || path.exists; -var test = require('tap').test; -var _0777 = parseInt('0777', 8); -var _0755 = parseInt('0755', 8); - -test('umask sync modes', function (t) { - t.plan(4); - var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16); - - var file = '/tmp/' + [x,y,z].join('/'); - - try { - mkdirp.sync(file); - } catch (err) { - t.fail(err); - return t.end(); - } - - exists(file, function (ex) { - t.ok(ex, 'file created'); - fs.stat(file, function (err, stat) { - t.ifError(err); - t.equal(stat.mode & _0777, (_0777 & (~process.umask()))); - t.ok(stat.isDirectory(), 'target not a directory'); - }); - }); -}); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/CHANGELOG.md b/multiplatform-crypto-delegated/node_modules/mocha/CHANGELOG.md deleted file mode 100644 index 5e44bb6..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/CHANGELOG.md +++ /dev/null @@ -1,2000 +0,0 @@ -# 5.2.0 / 2018-05-18 - -## :tada: Enhancements - -- [#3375]: Add support for comments in `mocha.opts` ([@plroebuck]) - -## :bug: Fixes - -- [#3346]: Exit correctly from `before` hooks when using `--bail` ([@outsideris]) - -## :book: Documentation - -- [#3328]: Mocha-flavored [API docs](https://mochajs.org/api/)! ([@Munter]) - -## :nut_and_bolt: Other - -- [#3330]: Use `Buffer.from()` ([@harrysarson]) -- [#3295]: Remove redundant folder ([@DavNej]) -- [#3356]: Refactoring ([@plroebuck]) - -[#3375]: https://github.com/mochajs/mocha/pull/3375 -[#3346]: https://github.com/mochajs/mocha/pull/3346 -[#3328]: https://github.com/mochajs/mocha/pull/3328 -[#3330]: https://github.com/mochajs/mocha/pull/3330 -[#3295]: https://github.com/mochajs/mocha/pull/3295 -[#3356]: https://github.com/mochajs/mocha/pull/3356 - -[@plroebuck]: https://github.com/plroebuck -[@harrysarson]: https://github.com/harrysarson -[@outsideris]: https://github.com/outsideris -[@Munter]: https://github.com/Munter - -# 5.1.1 / 2018-04-18 - -## :bug: Fixes - -- [#3325]: Revert change which broke `--watch` ([@boneskull]) - -[#3325]: https://github.com/mochajs/mocha/issues/3325 - -# 5.1.0 / 2018-04-12 - -## :tada: Enhancements - -- [#3210]: Add `--exclude` option ([@metalex9]) - -## :bug: Fixes - -- [#3318]: Fix failures in circular objects in JSON reporter ([@jeversmann], [@boneskull]) - -## :book: Documentation - -- [#3323]: Publish actual [API documentation](https://mochajs.org/api/)! ([@dfberry], [@Munter]) -- [#3299]: Improve docs around exclusive tests ([@nicgirault]) - -## :nut_and_bolt: Other - -- [#3302], [#3308], [#3310], [#3315], [#3316]: Build matrix improvements ([more info](https://boneskull.com/mocha-and-travis-ci-build-stages/)) ([@outsideris], [@boneskull]) -- [#3272]: Refactor reporter tests ([@jMuzsik]) - -[#3210]: https://github.com/mochajs/mocha/pull/3210 -[#3318]: https://github.com/mochajs/mocha/pull/3318 -[#3323]: https://github.com/mochajs/mocha/pull/3323 -[#3299]: https://github.com/mochajs/mocha/pull/3299 -[#3302]: https://github.com/mochajs/mocha/pull/3302 -[#3308]: https://github.com/mochajs/mocha/pull/3308 -[#3310]: https://github.com/mochajs/mocha/pull/3310 -[#3315]: https://github.com/mochajs/mocha/pull/3315 -[#3316]: https://github.com/mochajs/mocha/pull/3316 -[#3272]: https://github.com/mochajs/mocha/pull/3272 -[@metalex9]: https://github.com/metalex9 -[@jeversmann]: https://github.com/jeversmann -[@dfberry]: https://github.com/dfberry -[@nicgirault]: https://github.com/nicgirault -[@jMuzsik]: https://github.com/jMuzsik - -# 5.0.5 / 2018-03-22 - -Welcome [@outsideris] to the team! - -## :bug: Fixes - -- [#3096]: Fix `--bail` failing to bail within hooks ([@outsideris]) -- [#3184]: Don't skip too many suites (using `describe.skip()`) ([@outsideris]) - -## :book: Documentation - -- [#3133]: Improve docs regarding "pending" behavior ([@ematicipo]) -- [#3276], [#3274]: Fix broken stuff in `CHANGELOG.md` ([@tagoro9], [@honzajavorek]) - -## :nut_and_bolt: Other - -- [#3208]: Improve test coverage for AMD users ([@outsideris]) -- [#3267]: Remove vestiges of PhantomJS from CI ([@anishkny]) -- [#2952]: Fix a debug message ([@boneskull]) - -[#3096]: https://github.com/mochajs/mocha/issues/3096 -[#3184]: https://github.com/mochajs/mocha/issues/3184 -[#3133]: https://github.com/mochajs/mocha/issues/3133 -[#3276]: https://github.com/mochajs/mocha/pull/3276 -[#3274]: https://github.com/mochajs/mocha/pull/3274 -[#3208]: https://github.com/mochajs/mocha/issues/3208 -[#2952]: https://github.com/mochajs/mocha/issues/2952 -[#3267]: https://github.com/mochajs/mocha/pull/3267 - -[@ematicipo]: https://github.com/ematicipo -[@tagoro9]: https://github.com/tagoro9 -[@honzajavorek]: https://github.com/honajavorek -[@anishkny]: https://github.com/anishkny - -# 5.0.4 / 2018-03-07 - -## :bug: Fixes - -- [#3265]: Fixes regression in "watch" functionality introduced in v5.0.2 ([@outsideris]) - -[#3265]: https://github.com/mochajs/mocha/issues/3265 - -# 5.0.3 / 2018-03-06 - -This patch features a fix to address a potential "low severity" [ReDoS vulnerability](https://snyk.io/vuln/npm:diff:20180305) in the [diff](https://npm.im/diff) package (a dependency of Mocha). - -## :lock: Security Fixes - -- [#3266]: Bump `diff` to v3.5.0 ([@anishkny]) - -## :nut_and_bolt: Other - -- [#3011]: Expose `generateDiff()` in `Base` reporter ([@harrysarson]) - -[#3266]: https://github.com/mochajs/mocha/pull/3266 -[#3011]: https://github.com/mochajs/mocha/issues/3011 - -[@anishkny]: https://github.com/anishkny -[@harrysarson]: https://github.com/harrysarson - -# 5.0.2 / 2018-03-05 - -This release fixes a class of tests which report as *false positives*. **Certain tests will now break**, though they would have previously been reported as passing. Details below. Sorry for the inconvenience! - -## :bug: Fixes - -- [#3226]: Do not swallow errors that are thrown asynchronously from passing tests ([@boneskull]). Example: - - ```js - it('should actually fail, sorry!', function (done) { - // passing assertion - assert(true === true); - - // test complete & is marked as passing - done(); - - // ...but something evil lurks within - setTimeout(() => { - throw new Error('chaos!'); - }, 100); - }); - ``` - - Previously to this version, Mocha would have *silently swallowed* the `chaos!` exception, and you wouldn't know. Well, *now you know*. Mocha cannot recover from this gracefully, so it will exit with a nonzero code. - - **Maintainers of external reporters**: *If* a test of this class is encountered, the `Runner` instance will emit the `end` event *twice*; you *may* need to change your reporter to use `runner.once('end')` intead of `runner.on('end')`. -- [#3093]: Fix stack trace reformatting problem ([@outsideris]) - -## :nut_and_bolt: Other - -- [#3248]: Update `browser-stdout` to v1.3.1 ([@honzajavorek]) - -[#3248]: https://github.com/mochajs/mocha/issues/3248 -[#3226]: https://github.com/mochajs/mocha/issues/3226 -[#3093]: https://github.com/mochajs/mocha/issues/3093 -[@honzajavorek]: https://github.com/honzajavorek - -# 5.0.1 / 2018-02-07 - -...your garden-variety patch release. - -Special thanks to [Wallaby.js](https://wallabyjs.com) for their continued support! :heart: - -## :bug: Fixes - -- [#1838]: `--delay` now works with `.only()` ([@silviom]) -- [#3119]: Plug memory leak present in v8 ([@boneskull]) - -## :book: Documentation - -- [#3132], [#3098]: Update `--glob` docs ([@outsideris]) -- [#3212]: Update [Wallaby.js](https://wallabyjs.com)-related docs ([@ArtemGovorov]) -- [#3205]: Remove outdated cruft ([@boneskull]) - -## :nut_and_bolt: Other - -- [#3224]: Add proper Wallaby.js config ([@ArtemGovorov]) -- [#3230]: Update copyright year ([@josephlin55555]) - -[#1838]: https://github.com/mochajs/mocha/issues/1838 -[#3119]: https://github.com/mochajs/mocha/issues/3119 -[#3132]: https://github.com/mochajs/mocha/issues/3132 -[#3098]: https://github.com/mochajs/mocha/issues/3098 -[#3212]: https://github.com/mochajs/mocha/pull/3212 -[#3205]: https://github.com/mochajs/mocha/pull/3205 -[#3224]: https://github.com/mochajs/mocha/pull/3224 -[#3230]: https://github.com/mochajs/mocha/pull/3230 -[@silviom]: https://github.com/silviom -[@outsideris]: https://github.com/outsideris -[@ArtemGovorov]: https://github.com/ArtemGovorov -[@josephlin55555]: https://github.com/josephlin55555 - -# 5.0.0 / 2018-01-17 - -Mocha starts off 2018 right by again dropping support for *unmaintained rubbish*. - -Welcome [@vkarpov15] to the team! - -## :boom: Breaking Changes - -- **[#3148]: Drop support for IE9 and IE10** ([@Bamieh]) - Practically speaking, only code which consumes (through bundling or otherwise) the userland [buffer](https://npm.im/buffer) module should be affected. However, Mocha will no longer test against these browsers, nor apply fixes for them. - -## :tada: Enhancements - -- [#3181]: Add useful new `--file` command line argument ([documentation](https://mochajs.org/#--file-file)) ([@hswolff]) - -## :bug: Fixes - -- [#3187]: Fix inaccurate test duration reporting ([@FND]) -- [#3202]: Fix bad markup in HTML reporter ([@DanielRuf]) - -## :sunglasses: Developer Experience - -- [#2352]: Ditch GNU Make for [nps](https://npm.im/nps) to manage scripts ([@TedYav]) - -## :book: Documentation - -- [#3137]: Add missing `--no-timeouts` docs ([@dfberry]) -- [#3134]: Improve `done()` callback docs ([@maraisr]) -- [#3135]: Fix cross-references ([@vkarpov15]) -- [#3163]: Fix tpyos ([@tbroadley]) -- [#3177]: Tweak `README.md` organization ([@xxczaki]) -- Misc updates ([@boneskull]) - -## :nut_and_bolt: Other - -- [#3118]: Move TextMate Integration to [its own repo](https://github.com/mochajs/mocha.tmbundle) ([@Bamieh]) -- [#3185]: Add Node.js v9 to build matrix; remove v7 ([@xxczaki]) -- [#3172]: Markdown linting ([@boneskull]) -- Test & Netlify updates ([@Munter], [@boneskull]) - -[#3148]: https://github.com/mochajs/mocha/issues/3148 -[#3181]: https://github.com/mochajs/mocha/issues/3181 -[#3187]: https://github.com/mochajs/mocha/issues/3187 -[#3202]: https://github.com/mochajs/mocha/pull/3202 -[#2352]: https://github.com/mochajs/mocha/issues/2352 -[#3137]: https://github.com/mochajs/mocha/issues/3137 -[#3134]: https://github.com/mochajs/mocha/issues/3134 -[#3135]: https://github.com/mochajs/mocha/issues/3135 -[#3163]: https://github.com/mochajs/mocha/pull/3163 -[#3177]: https://github.com/mochajs/mocha/pull/3177 -[#3118]: https://github.com/mochajs/mocha/issues/3118 -[#3185]: https://github.com/mochajs/mocha/issues/3185 -[#3172]: https://github.com/mochajs/mocha/issues/3172 -[@hswolff]: https://github.com/hswolff -[@FND]: https://github.com/FND -[@DanielRuf]: https://github.com/DanielRuf -[@TedYav]: https://github.com/TedYav -[@dfberry]: https://github.com/dfberry -[@maraisr]: https://github.com/maraisr -[@vkarpov15]: https://github.com/vkarpov15 -[@tbroadley]: https://github.com/tbroadley - -# 4.1.0 / 2017-12-28 - -This is mainly a "housekeeping" release. - -Welcome [@Bamieh] and [@xxczaki] to the team! - -## :bug: Fixes - -- [#2661]: `progress` reporter now accepts reporter options ([@canoztokmak]) -- [#3142]: `xit` in `bdd` interface now properly returns its `Test` object ([@Bamieh]) -- [#3075]: Diffs now computed eagerly to avoid misinformation when reported ([@abrady0]) -- [#2745]: `--help` will now help you even if you have a `mocha.opts` ([@Zarel]) - -## :tada: Enhancements - -- [#2514]: The `--no-diff` flag will completely disable diff output ([@CapacitorSet]) -- [#3058]: All "setters" in Mocha's API are now also "getters" if called without arguments ([@makepanic]) - -## :book: Documentation - -- [#3170]: Optimization and site speed improvements ([@Munter]) -- [#2987]: Moved the old [site repo](https://github.com/mochajs/mochajs.github.io) into the main repo under `docs/` ([@boneskull]) -- [#2896]: Add [maintainer guide](https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md) ([@boneskull]) -- Various fixes and updates ([@xxczaki], [@maty21], [@leedm777]) - -## :nut_and_bolt: Other - -- Test improvements and fixes ([@eugenet8k], [@ngeor], [@38elements], [@Gerhut], [@ScottFreeCode], [@boneskull]) -- Refactoring and cruft excision ([@38elements], [@Bamieh], [@finnigantime], [@boneskull]) - -[#2661]: https://github.com/mochajs/mocha/issues/2661 -[#3142]: https://github.com/mochajs/mocha/issues/3142 -[#3075]: https://github.com/mochajs/mocha/pull/3075 -[#2745]: https://github.com/mochajs/mocha/issues/2745 -[#2514]: https://github.com/mochajs/mocha/issues/2514 -[#3058]: https://github.com/mochajs/mocha/issues/3058 -[#3170]: https://github.com/mochajs/mocha/pull/3170 -[#2987]: https://github.com/mochajs/mocha/issues/2987 -[#2896]: https://github.com/mochajs/mocha/issues/2896 -[@canoztokmak]: https://github.com/canoztokmak -[@Bamieh]: https://github.com/Bamieh -[@abrady0]: https://github.com/abrady0 -[@Zarel]: https://github.com/Zarel -[@CapacitorSet]: https://github.com/CapacitorSet -[@xxczaki]: https://github.com/xxczaki -[@maty21]: https://github.com/maty21 -[@leedm777]: https://github.com/leedm777 -[@eugenet8k]: https://github.com/eugenet8k -[@38elements]: https://github.com/38elements -[@Gerhut]: https://github.com/Gerhut -[@finnigantime]: https://github.com/finnigantime - -# 4.0.1 / 2017-10-05 - -## :bug: Fixes - -- [#3051]: Upgrade Growl to v1.10.3 to fix its [peer dep problems](https://github.com/tj/node-growl/pull/68) ([@dpogue]) - -[#3051]: https://github.com/mochajs/mocha/pull/3051 -[@dpogue]: https://github.com/dpogue - -# 4.0.0 / 2017-10-02 - -You might want to read this before filing a new bug! :stuck_out_tongue_closed_eyes: - -## :boom: Breaking Changes - -For more info, please [read this article](https://boneskull.com/mocha-v4-nears-release/). - -### Compatibility - -- [#3016]: Drop support for unmaintained versions of Node.js ([@boneskull]): - - 0.10.x - - 0.11.x - - 0.12.x - - iojs (any) - - 5.x.x -- [#2979]: Drop support for non-ES5-compliant browsers ([@boneskull]): - - IE7 - - IE8 - - PhantomJS 1.x -- [#2615]: Drop Bower support; old versions (3.x, etc.) will remain available ([@ScottFreeCode], [@boneskull]) - -### Default Behavior - -- [#2879]: By default, Mocha will no longer force the process to exit once all tests complete. This means any test code (or code under test) which would normally prevent `node` from exiting will do so when run in Mocha. Supply the `--exit` flag to revert to pre-v4.0.0 behavior ([@ScottFreeCode], [@boneskull]) - -### Reporter Output - -- [#2095]: Remove `stdout:` prefix from browser reporter logs ([@skeggse]) -- [#2295]: Add separator in "unified diff" output ([@olsonpm]) -- [#2686]: Print failure message when `--forbid-pending` or `--forbid-only` is specified ([@ScottFreeCode]) -- [#2814]: Indent contexts for better readability when reporting failures ([@charlierudolph]) - -## :-1: Deprecations - -- [#2493]: The `--compilers` command-line option is now soft-deprecated and will emit a warning on `STDERR`. Read [this](https://github.com/mochajs/mocha/wiki/compilers-deprecation) for more info and workarounds ([@ScottFreeCode], [@boneskull]) - -## :tada: Enhancements - -- [#2628]: Allow override of default test suite name in XUnit reporter ([@ngeor]) - -## :book: Documentation - -- [#3020]: Link to CLA in `README.md` and `CONTRIBUTING.md` ([@skeggse]) - -## :nut_and_bolt: Other - -- [#2890]: Speed up build by (re-)consolidating SauceLabs tests ([@boneskull]) - -[#3016]: https://github.com/mochajs/mocha/issues/3016 -[#2979]: https://github.com/mochajs/mocha/issues/2979 -[#2615]: https://github.com/mochajs/mocha/issues/2615 -[#2879]: https://github.com/mochajs/mocha/issues/2879 -[#2095]: https://github.com/mochajs/mocha/issues/2095 -[#2295]: https://github.com/mochajs/mocha/issues/2295 -[#2686]: https://github.com/mochajs/mocha/issues/2686 -[#2814]: https://github.com/mochajs/mocha/pull/2814 -[#2493]: https://github.com/mochajs/mocha/issues/2493 -[#2628]: https://github.com/mochajs/mocha/issues/2628 -[#3020]: https://github.com/mochajs/mocha/pull/3020 -[#2890]: https://github.com/mochajs/mocha/issues/2890 -[@skeggse]: https://github.com/skeggse -[@olsonpm]: https://github.com/olsonpm -[@ngeor]: https://github.com/ngeor - -# 3.5.3 / 2017-09-11 - -## :bug: Fixes - -- [#3003]: Fix invalid entities in xUnit reporter first appearing in v3.5.1 ([@jkrems]) - -[#3003]: https://github.com/mochajs/mocha/pull/3003 - -# 3.5.2 / 2017-09-10 - -## :bug: Fixes - -- [#3001]: Fix AMD-related failures first appearing in v3.5.1 ([@boneskull]) - -[#3001]: https://github.com/mochajs/mocha/pull/3001 - -# 3.5.1 / 2017-09-09 - -## :newspaper: News - -- :mega: Mocha is now sponsoring [PDXNode](http://pdxnode.org)! If you're in the [Portland](https://wikipedia.org/wiki/Portland,_Oregon) area, come check out the monthly talks and hack nights! - -## :bug: Fixes - -- [#2997]: Fix missing `xit` export for "require" interface ([@solodynamo]) -- [#2957]: Fix unicode character handling in XUnit reporter failures ([@jkrems]) - -## :nut_and_bolt: Other - -- [#2986]: Add issue and PR templates ([@kungapal]) -- [#2918]: Drop bash dependency for glob-related tests ([@ScottFreeCode]) -- [#2922]: Improve `--compilers` coverage ([@ScottFreeCode]) -- [#2981]: Fix tpyos and spelling errors ([@jsoref]) - -[#2997]: https://github.com/mochajs/mocha/pull/2997 -[#2957]: https://github.com/mochajs/mocha/pull/2957 -[#2918]: https://github.com/mochajs/mocha/pull/2918 -[#2986]: https://github.com/mochajs/mocha/pull/2986 -[#2922]: https://github.com/mochajs/mocha/pull/2922 -[#2981]: https://github.com/mochajs/mocha/pull/2981 -[@solodynamo]: https://github.com/solodynamo -[@jkrems]: https://github.com/jkrems -[@jsoref]: https://github.com/jsoref - -# 3.5.0 / 2017-07-31 - -## :newspaper: News - -- Mocha now has a [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) (thanks [@kungapal]!). -- Old issues and PRs are now being marked "stale" by [Probot's "Stale" plugin](https://github.com/probot/stale). If an issue is marked as such, and you would like to see it remain open, simply add a new comment to the ticket or PR. -- **WARNING**: Support for non-ES5-compliant environments will be dropped starting with version 4.0.0 of Mocha! - -## :lock: Security Fixes - -- [#2860]: Address [CVE-2015-8315](https://nodesecurity.io/advisories/46) via upgrade of [debug](https://npm.im/debug) ([@boneskull]) - -## :tada: Enhancements - -- [#2696]: Add `--forbid-only` and `--forbid-pending` flags. Use these in CI or hooks to ensure tests aren't accidentally being skipped! ([@charlierudolph]) -- [#2813]: Support Node.js 8's `--napi-modules` flag ([@jupp0r]) - -## :nut_and_bolt: Other - -- Various CI-and-test-related fixes and improvements ([@boneskull], [@dasilvacontin], [@PopradiArpad], [@Munter], [@ScottFreeCode]) -- "Officially" support Node.js 8 ([@elergy]) - -[#2860]: https://github.com/mochajs/mocha/pull/2860 -[#2696]: https://github.com/mochajs/mocha/pull/2696 -[#2813]: https://github.com/mochajs/mocha/pull/2813 -[@charlierudolph]: https://github.com/charlierudolph -[@PopradiArpad]: https://github.com/PopradiArpad -[@kungapal]: https://github.com/kungapal -[@elergy]: https://github.com/elergy -[@jupp0r]: https://github.com/jupp0r - -# 3.4.2 / 2017-05-24 - -## :bug: Fixes - -- [#2802]: Remove call to deprecated `os.tmpDir` ([@makepanic]) -- [#2820]: Eagerly set `process.exitCode` ([@chrisleck]) - -## :nut_and_bolt: Other - -- [#2778]: Move linting into an npm script ([@Munter]) - -[@chrisleck]: https://github.com/chrisleck -[@makepanic]: https://github.com/makepanic -[@Munter]: https://github.com/Munter - -[#2778]: https://github.com/mochajs/mocha/pull/2778 -[#2802]: https://github.com/mochajs/mocha/issues/2802 -[#2820]: https://github.com/mochajs/mocha/pull/2820 - -# 3.4.1 / 2017-05-14 - -Fixed a publishing mishap with git's autocrlf settings. - -# 3.4.0 / 2017-05-14 - -Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week. - -This week's highlights: - -- `allowUncaught` added to commandline as `--allow-uncaught` (and bugfixed) -- warning-related Node flags - -## :tada: Enhancements - -- [#2793], [#2697]: add --allowUncaught to Node.js ([@lrowe]) -- [#2733]: Add `--no-warnings` and `--trace-warnings` flags ([@sonicdoe]) - -## :bug: Fixes - -- [#2793], [#2697]: fix broken allowUncaught ([@lrowe]) - -## :nut_and_bolt: Other - -- [#2778]: Add license report and scan status ([@xizhao]) -- [#2794]: no special case for macOS running Karma locally ([@boneskull]) -- [#2795]: reverts use of semistandard directly ([#2648]) ([@boneskull]) - -[@lrowe]: https://github.com/lrowe -[@sonicdoe]: https://github.com/sonicdoe -[@xizhao]: https://github.com/xizhao -[@boneskull]: https://github.com/boneskull - -[#2795]: https://github.com/mochajs/mocha/pull/2795 -[#2733]: https://github.com/mochajs/mocha/pull/2733 -[#2793]: https://github.com/mochajs/mocha/pull/2793 -[#2697]: https://github.com/mochajs/mocha/pull/2697 -[#2778]: https://github.com/mochajs/mocha/pull/2778 -[#2794]: https://github.com/mochajs/mocha/pull/2794 - -# 3.3.0 / 2017-04-24 - -Thanks to all our contributors, maintainers, sponsors, and users! ❤️ - -As highlights: - -- We've got coverage now! -- Testing is looking less flaky \o/. -- No more nitpicking about "mocha.js" build on PRs. - -## :tada: Enhancements - -- [#2659]: Adds support for loading reporter from an absolute or relative path ([@sul4bh]) -- [#2769]: Support `--inspect-brk` on command-line ([@igwejk]) - -## :bug: Fixes - -- [#2662]: Replace unicode chars w/ hex codes in HTML reporter ([@rotemdan]) - -## :mag: Coverage - -- [#2672]: Add coverage for node tests ([@c089], [@Munter]) -- [#2680]: Increase tests coverage for base reporter ([@epallerols]) -- [#2690]: Increase tests coverage for doc reporter ([@craigtaub]) -- [#2701]: Increase tests coverage for landing, min, tap and list reporters ([@craigtaub]) -- [#2691]: Increase tests coverage for spec + dot reporters ([@craigtaub]) -- [#2698]: Increase tests coverage for xunit reporter ([@craigtaub]) -- [#2699]: Increase tests coverage for json-stream, markdown and progress reporters ([@craigtaub]) -- [#2703]: Cover .some() function in utils.js with tests ([@seppevs]) -- [#2773]: Add tests for loading reporters w/ relative/absolute paths ([@sul4bh]) - -## :nut_and_bolt: Other - -- Remove bin/.eslintrc; ensure execs are linted ([@boneskull]) -- [#2542]: Expand CONTRIBUTING.md ([@boneskull]) -- [#2660]: Double timeouts on integration tests ([@Munter]) -- [#2653]: Update copyright year ([@Scottkao85], [@Munter]) -- [#2621]: Update dependencies to enable Greenkeeper ([@boneskull], [@greenkeeper]) -- [#2625]: Use trusty container in travis-ci; use "artifacts" addon ([@boneskull]) -- [#2670]: doc(CONTRIBUTING): fix link to org members ([@coderbyheart]) -- Add Mocha propaganda to README.md ([@boneskull]) -- [#2470]: Avoid test flake in "delay" test ([@boneskull]) -- [#2675]: Limit browser concurrency on sauce ([@boneskull]) -- [#2669]: Use temporary test-only build of mocha.js for browsers tests ([@Munter]) -- Fix "projects" link in README.md ([@boneskull]) -- [#2678]: Chore(Saucelabs): test on IE9, IE10 and IE11 ([@coderbyheart]) -- [#2648]: Use `semistandard` directly ([@kt3k]) -- [#2727]: Make the build reproducible ([@lamby]) - -[@boneskull]: https://github.com/boneskull -[@c089]: https://github.com/c089 -[@coderbyheart]: https://github.com/coderbyheart -[@craigtaub]: https://github.com/craigtaub -[@epallerols]: https://github.com/epallerols -[@greenkeeper]: https://github.com/greenkeeper -[@igwejk]: https://github.com/igwejk -[@kt3k]: https://github.com/kt3k -[@lamby]: https://github.com/lamby -[@Munter]: https://github.com/Munter -[@rotemdan]: https://github.com/rotemdan -[@seppevs]: https://github.com/seppevs -[@sul4bh]: https://github.com/sul4bh - -[#2470]: https://github.com/mochajs/mocha/pull/2470 -[#2542]: https://github.com/mochajs/mocha/issues/2542 -[#2621]: https://github.com/mochajs/mocha/pull/2621 -[#2625]: https://github.com/mochajs/mocha/pull/2625 -[#2648]: https://github.com/mochajs/mocha/pull/2648 -[#2653]: https://github.com/mochajs/mocha/pull/2653 -[#2659]: https://github.com/mochajs/mocha/pull/2659 -[#2660]: https://github.com/mochajs/mocha/pull/2660 -[#2662]: https://github.com/mochajs/mocha/pull/2662 -[#2669]: https://github.com/mochajs/mocha/pull/2669 -[#2670]: https://github.com/mochajs/mocha/pull/2670 -[#2672]: https://github.com/mochajs/mocha/pull/2672 -[#2675]: https://github.com/mochajs/mocha/pull/2675 -[#2678]: https://github.com/mochajs/mocha/pull/2678 -[#2680]: https://github.com/mochajs/mocha/pull/2680 -[#2690]: https://github.com/mochajs/mocha/pull/2690 -[#2691]: https://github.com/mochajs/mocha/pull/2691 -[#2698]: https://github.com/mochajs/mocha/pull/2698 -[#2699]: https://github.com/mochajs/mocha/pull/2699 -[#2701]: https://github.com/mochajs/mocha/pull/2701 -[#2703]: https://github.com/mochajs/mocha/pull/2703 -[#2727]: https://github.com/mochajs/mocha/pull/2727 -[#2769]: https://github.com/mochajs/mocha/pull/2769 -[#2773]: https://github.com/mochajs/mocha/pull/2773 - -# 3.2.0 / 2016-11-24 - -## :newspaper: News - -### Mocha is now a JS Foundation Project! - -Mocha is proud to have joined the [JS Foundation](https://js.foundation). For more information, [read the announcement](https://js.foundation/announcements/2016/10/17/Linux-Foundation-Unites-JavaScript-Community-Open-Web-Development/). - -### Contributor License Agreement - -Under the foundation, all contributors to Mocha must sign the [JS Foundation CLA](https://js.foundation/CLA/) before their code can be merged. When sending a PR--if you have not already signed the CLA--a friendly bot will ask you to do so. - -Mocha remains licensed under the [MIT license](https://github.com/mochajs/mocha/blob/master/LICENSE). - -## :bug: Bug Fix - -- [#2535]: Fix crash when `--watch` encounters broken symlinks ([@villesau]) -- [#2593]: Fix (old) regression; incorrect symbol shown in `list` reporter ([@Aldaviva]) -- [#2584]: Fix potential error when running XUnit reporter ([@vobujs]) - -## :tada: Enhancement - -- [#2294]: Improve timeout error messaging ([@jeversmann], [@boneskull]) -- [#2520]: Add info about `--inspect` flag to CLI help ([@ughitsaaron]) - -## :nut_and_bolt: Other - -- [#2570]: Use [karma-mocha](https://npmjs.com/package/karma-mocha) proper ([@boneskull]) -- Licenses updated to reflect new copyright, add link to license and browser matrix to `README.md` ([@boneskull], [@ScottFreeCode], [@dasilvacontin]) - -[#2294]: https://github.com/mochajs/mocha/issues/2294 -[#2535]: https://github.com/mochajs/mocha/issues/2535 -[#2520]: https://github.com/mochajs/mocha/pull/2520 -[#2593]: https://github.com/mochajs/mocha/pull/2593 -[#2584]: https://github.com/mochajs/mocha/issues/2584 -[#2570]: https://github.com/mochajs/mocha/issues/2570 -[@Aldaviva]: https://github.com/Aldaviva -[@jeversmann]: https://github.com/jeversmann -[@ughitsaaron]: https://github.com/ughitsaaron -[@villesau]: https://github.com/villesau -[@vobujs]: https://github.com/vobujs - -Thanks to all our contributors, sponsors and backers! Keep on the lookout for a public roadmap and new contribution guide coming soon. - -# 3.1.2 / 2016-10-10 - -## :bug: Bug Fix - -- [#2528]: Recovery gracefully if an `Error`'s `stack` property isn't writable ([@boneskull]) - -[#2528]: https://github.com/mochajs/mocha/issues/2528 - -# 3.1.1 / 2016-10-09 - -## :bug: Bug Fix - -- [#1417]: Don't report `done()` was called multiple times when it wasn't ([@frankleonrose]) - -## :nut_and_bolt: Other - -- [#2490]: Lint with [semistandard](https://npmjs.com/package/semistandard) config ([@makepanic]) -- [#2525]: Lint all `.js` files ([@boneskull]) -- [#2524]: Provide workaround for developers unable to run browser tests on macOS Sierra ([@boneskull]) - -[#1417]: https://github.com/mochajs/mocha/issues/1417 -[#2490]: https://github.com/mochajs/mocha/issues/2490 -[#2525]: https://github.com/mochajs/mocha/issues/2525 -[#2524]: https://github.com/mochajs/mocha/issues/2524 -[@makepanic]: https://github.com/makepanic -[@frankleonrose]: https://github.com/frankleonrose - -# 3.1.0 / 2016-09-27 - -## :tada: Enhancement - -- [#2357]: Support `--inspect` on command-line ([@simov]) -- [#2194]: Human-friendly error if no files are matched on command-line ([@Munter]) -- [#1744]: Human-friendly error if a Suite has no callback (BDD/TDD only) ([@anton]) - -## :bug: Bug Fix - -- [#2488]: Fix case in which *variables beginning with lowercase "D"* may not have been reported properly as global leaks ([@JustATrick]) :laughing: -- [#2465]: Always halt execution in async function when `this.skip()` is called ([@boneskull]) -- [#2445]: Exits with expected code 130 when `SIGINT` encountered; exit code can no longer rollover at 256 ([@Munter]) -- [#2315]: Fix uncaught TypeError thrown from callback stack ([@1999]) -- Fix broken `only()`/`skip()` in IE7/IE8 ([@boneskull]) -- [#2502]: Fix broken stack trace filter on Node.js under Windows ([@boneskull]) -- [#2496]: Fix diff output for objects instantiated with `String` constructor ([more](https://youtrack.jetbrains.com/issue/WEB-23383)) ([@boneskull]) - -[#2496]: https://github.com/mochajs/mocha/issues/2496 -[#2502]: https://github.com/mochajs/mocha/issues/2502 -[#2315]: https://github.com/mochajs/mocha/issues/2315 -[#2445]: https://github.com/mochajs/mocha/pull/2445 -[#2465]: https://github.com/mochajs/mocha/issues/2465 -[#2488]: https://github.com/mochajs/mocha/issues/2488 -[#1744]: https://github.com/mochajs/mocha/issues/1744 -[#2194]: https://github.com/mochajs/mocha/issues/2194 -[#2357]: https://github.com/mochajs/mocha/issues/2357 -[@1999]: https://github.com/1999 -[@JustATrick]: https://github.com/JustATrick -[@anton]: https://github.com/anton -[@simov]: https://github.com/simov - -# 3.0.2 / 2016-08-08 - -## :bug: Bug Fix - -- [#2424]: Fix error loading Mocha via Require.js ([@boneskull]) -- [#2417]: Fix execution of *deeply* nested `describe.only()` suites ([@not-an-aardvark]) -- Remove references to `json-cov` and `html-cov` reporters in CLI ([@boneskull]) - -[#2417]: https://github.com/mochajs/mocha/issues/2417 -[#2424]: https://github.com/mochajs/mocha/issues/2424 - -# 3.0.1 / 2016-08-03 - -## :bug: Bug Fix - -- [#2406]: Restore execution of nested `describe.only()` suites ([@not-an-aardvark]) - -[#2406]: https://github.com/mochajs/mocha/issues/2406 -[@not-an-aardvark]: https://github.com/not-an-aardvark - -# 3.0.0 / 2016-07-31 - -## :boom: Breaking Changes - -- :warning: Due to the increasing difficulty of applying security patches made within its dependency tree, as well as looming incompatibilities with Node.js v7.0, **Mocha no longer supports Node.js v0.8**. -- :warning: **Mocha may no longer be installed by versions of `npm` less than `1.4.0`.** Previously, this requirement only affected Mocha's development dependencies. In short, this allows Mocha to depend on packages which have dependencies fixed to major versions (`^`). -- `.only()` is no longer "fuzzy", can be used multiple times, and generally just works like you think it should. :joy: -- To avoid common bugs, when a test injects a callback function (suggesting asynchronous execution), calls it, *and* returns a `Promise`, Mocha will now throw an exception: - - ```js - const assert = require('assert'); - - it('should complete this test', function (done) { - return new Promise(function (resolve) { - assert.ok(true); - resolve(); - }) - .then(done); - }); - ``` - - The above test will fail with `Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.`. -- When a test timeout value *greater than* `2147483648` is specified in any context (`--timeout`, `mocha.setup()`, per-suite, per-test, etc.), the timeout will be *disabled* and the test(s) will be allowed to run indefinitely. This is equivalent to specifying a timeout value of `0`. See [MDN](https://developer.mozilla.org/docs/Web/API/WindowTimers/setTimeout#Maximum_delay_value) for reasoning. -- The `dot` reporter now uses more visually distinctive characters when indicating "pending" and "failed" tests. -- Mocha no longer supports [component](https://www.npmjs.com/package/component). -- The long-forsaken `HTMLCov` and `JSONCov` reporters--and any relationship to the "node-jscoverage" project--have been removed. -- `spec` reporter now omits leading carriage returns (`\r`) in non-TTY environment. - -## :tada: Enhancements - -- [#808]: Allow regular-expression-like strings in `--grep` and browser's `grep` querystring; enables flags such as `i` for case-insensitive matches and `u` for unicode. ([@a8m]) -- [#2000]: Use distinctive characters in `dot` reporter; `,` will denote a "pending" test and `!` will denote a "failing" test. ([@elliottcable]) -- [#1632]: Throw a useful exception when a suite or test lacks a title. ([@a8m]) -- [#1481]: Better `.only()` behavior. ([@a8m]) -- [#2334]: Allow `this.skip()` in async tests and hooks. ([@boneskull]) -- [#1320]: Throw a useful exception when test resolution method is overspecified. ([@jugglinmike]) -- [#2364]: Support `--preserve-symlinks`. ([@rosswarren]) - -## :bug: Bug Fixes - -- [#2259]: Restore ES3 compatibility. Specifically, support an environment lacking `Date.prototype.toISOString()`, `JSON`, or has a non-standard implementation of `JSON`. ([@ndhoule], [@boneskull]) -- [#2286]: Fix `after()` failing to execute if test skipped using `this.skip()` in `beforeEach()`; no longer marks the entire suite as "pending". ([@dasilvacontin], [@boneskull]) -- [#2208]: Fix function name display in `markdown` and `html` (browser) reporters. ([@ScottFreeCode]) -- [#2299]: Fix progress bar in `html` (browser) reporter. ([@AviVahl]) -- [#2307]: Fix `doc` reporter crashing when test fails. ([@jleyba]) -- [#2323]: Ensure browser entry point (`browser-entry.js`) is published to npm (for use with bundlers). ([@boneskull]) -- [#2310]: Ensure custom reporter with an absolute path works in Windows. ([@silentcloud]) -- [#2311]: Fix problem wherein calling `this.slow()` without a value would blast any previously set value. ([@boneskull]) -- [#1813]: Ensure Mocha's own test suite will run in Windows. ([@tswaters], [@TimothyGu], [@boneskull]) -- [#2317]: Ensure all interfaces are displayed in `--help` on CLI. ([@ScottFreeCode]) -- [#1644]: Don't exhibit undefined behavior when calling `this.timeout()` with very large values ([@callumacrae], [@boneskull]) -- [#2361]: Don't truncate name of thrown anonymous exception. ([@boneskull]) -- [#2367]: Fix invalid CSS. ([@bensontrent]) -- [#2401]: Remove carriage return before each test line in spec reporter. ([@Munter]) - -## :nut_and_bolt: Other - -- Upgrade production dependencies to address security advisories (and because now we can): `glob`, `commander`, `escape-string-regexp`, and `supports-color`. ([@boneskull], [@RobLoach]) -- Add Windows to CI. ([@boneskull], [@TimothyGu]) -- Ensure appropriate `engines` field in `package.json`. ([@shinnn], [@boneskull]) -- [#2348]: Upgrade ESLint to v2 ([@anthony-redfox]) - -We :heart: our [backers and sponsors](https://opencollective.com/mochajs)! - -:shipit: - -[#2401]: https://github.com/mochajs/mocha/pull/2401 -[#2348]: https://github.com/mochajs/mocha/issues/2348 -[#808]: https://github.com/mochajs/mocha/issues/808 -[#2361]: https://github.com/mochajs/mocha/pull/2361 -[#2367]: https://github.com/mochajs/mocha/pull/2367 -[#2364]: https://github.com/mochajs/mocha/pull/2364 -[#1320]: https://github.com/mochajs/mocha/pull/1320 -[#2307]: https://github.com/mochajs/mocha/pull/2307 -[#2259]: https://github.com/mochajs/mocha/pull/2259 -[#2208]: https://github.com/mochajs/mocha/pull/2208 -[#2299]: https://github.com/mochajs/mocha/pull/2299 -[#2286]: https://github.com/mochajs/mocha/issues/2286 -[#1644]: https://github.com/mochajs/mocha/issues/1644 -[#2310]: https://github.com/mochajs/mocha/issues/2310 -[#2311]: https://github.com/mochajs/mocha/issues/2311 -[#2323]: https://github.com/mochajs/mocha/issues/2323 -[#2000]: https://github.com/mochajs/mocha/pull/2000 -[#1632]: https://github.com/mochajs/mocha/issues/1632 -[#1813]: https://github.com/mochajs/mocha/issues/1813 -[#2334]: https://github.com/mochajs/mocha/issues/2334 -[#2317]: https://github.com/mochajs/mocha/issues/2317 -[#1481]: https://github.com/mochajs/mocha/issues/1481 -[@elliottcable]: https://github.com/elliottcable -[@RobLoach]: https://github.com/robloach -[@AviVahl]: https://github.com/avivahl -[@silentcloud]: https://github.com/silentcloud -[@tswaters]: https://github.com/tswaters -[@jleyba]: https://github.com/jleyba -[@TimothyGu]: https://github.com/timothygu -[@callumacrae]: https://github.com/callumacrae -[@shinnn]: https://github.com/shinnn -[@bensontrent]: https://github.com/bensontrent -[@jugglinmike]: https://github.com/jugglinmike -[@rosswarren]: https://github.com/rosswarren -[@anthony-redfox]: https://github.com/anthony-redfox -[@Munter]: https://github.com/munter - -# 2.5.3 / 2016-05-25 - -- [#2112] - Fix HTML reporter regression causing duplicate error output ([@danielstjules] via 6d24063) -- [#2119] - Make HTML reporter failure/passed links preventDefault to avoid SPA's hash navigation ([@jimenglish81] via 9e93efc) - -[@danielstjules]: https://github.com/danielstjules -[@jimenglish81]: https://github.com/jimenglish81 -[#2112]: https://github.com/mochajs/mocha/pull/2112 -[#2119]: https://github.com/mochajs/mocha/pull/2119 - -# 2.5.2 / 2016-05-24 - -- [#2178] - Avoid double and triple xUnit XML escaping ([@graingert] via 49b5ff1) - -[@graingert]: https://github.com/graingert -[#2178]: https://github.com/mochajs/mocha/pull/2178 - -# 2.5.1 / 2016-05-23 - -- Fix [to-iso-string](https://npmjs.com/package/to-iso-string) dependency ([@boneskull] via bd9450b) - -Thanks @entertainyou, @SimenB, @just-paja for the heads-up. - -# 2.5.0 / 2016-05-23 - -This has been awhile coming! We needed to feel confident that the next release wouldn't break browser compatibility (e.g. the last few patch releases). - -## Browser Tests in CI - -We now run unit tests against PhantomJS v1.x and an assortment of browsers on [SauceLabs](https://saucelabs.com), including: - -- Internet Explorer v8.0 -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Microsoft Edge (latest) - -To accomplish this, we now run Mocha's unit tests (and a handful of integration tests) via [Karma](https://npmjs.com/package/karma) and a modified [karma-mocha](https://npmjs.com/package/karma-mocha). Along the way, we had to solve issue [#880] (apologies to @mderijcke and @sukima who had PRs addressing this), as well as replace most usages of [should](https://npmjs.com/package/should) with [expect.js](https://npmjs.com/package/expect.js) for IE8. - -Going forward, when sending PRs, your code will *only* run against PhantomJS v1.x (and not hit SauceLabs) [because security](https://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests). - -## Node.js 6.x - - Node.js 6.x "just worked" before, but now it's in the CI matrix, so it's "officially" supported. Mocha *still retains support* for Node.js 0.8.x. - -## "Minor" Release - -You'll see mostly bug fixes below, but also a couple features--as such, it's a "minor" release. - -## TYVM - -Thanks to everyone who contributed, and our fabulous [sponsors and backers](https://opencollective.com/mochajs)! - -- [#2079] - Add browser checks to CI; update [browserify](https://npmjs.com/package/browserify) to v13.0.0 ([@dasilvacontin], [@ScottFreeCode], [@boneskull] via c04c1d7, 0b1e9b3, 0dde0fa, f8a3d86, 9e8cbaa) -- [#880] - Make Mocha browserifyable ([@boneskull] via 524862b) -- [#2121] - Update [glob](https://npmjs.com/package/glob) to v3.2.11 ([@astorije] via 7920fc4) -- [#2126] - Fix dupe error messages in stack trace filter ([@Turbo87] via 4301caa) -- [#2109] - Fix certain diffs when objects cannot be coerced into primitives ([@joshlory] via 61fbb7f) -- [#1827] - Fix TWBS/`mocha.css` collisions ([@irnc] via 0543798) -- [#1760], [#1936] - Fix `this.skip()` in HTML reporter ([@mislav] via cb4248b) -- [#2115] - Fix exceptions thrown from hooks in HTML reporter ([@danielstjules] via e290bc0) -- [#2089] - Handle Symbol values in `util.stringify()` ([@ryym] via ea61d05) -- [#2097] - Fix diff for objects overriding `Object.prototype.hasOwnProperty` ([@mantoni] via b20fdfe) -- [#2101] - Properly handle non-string "messages" thrown from assertion libraries ([@jkimbo] via 9c41051) -- [#2124] - Update [growl](https://npmjs.com/package/growl) ([@benjamine] via 9ae6a85) -- [#2162], [#2205] - JSDoc fixes ([@OlegTsyba] via 8031f20, [@ScottFreeCode] via f83b1d9) -- [#2132] - Remove Growl-related cruft ([@julienw] via 00d6469) -- [#2172] - Add [OpenCollective](https://opencollective.com) badge, sponsors & backers ([@xdamman], [@boneskull] via caee94f) -- [#1841] - Add new logo, banner assets ([@dasilvacontin] via 00fd0e1) -- [#2214] - Update `README.md` header ([@dasilvacontin] via c0f9be2) -- [#2236] - Better checks for Node.js v0.8 compatibility in CI ([@dasilvacontin] via ba5637d) -- [#2239] - Add Node.js v6.x to CI matrix ([@boneskull] via 3904da4) - -[#880]: https://github.com/mochajs/mocha/issues/880 -[#1841]: https://github.com/mochajs/mocha/pull/1841 -[#2239]: https://github.com/mochajs/mocha/issues/2239 -[#2153]: https://github.com/mochajs/mocha/pull/2153 -[#2214]: https://github.com/mochajs/mocha/pull/2214 -[#2236]: https://github.com/mochajs/mocha/pull/2236 -[#2079]: https://github.com/mochajs/mocha/issues/2079 -[#2231]: https://github.com/mochajs/mocha/pull/2231 -[#2089]: https://github.com/mochajs/mocha/issues/2089 -[#2097]: https://github.com/mochajs/mocha/pull/2097 -[#1760]: https://github.com/mochajs/mocha/issues/1760 -[#1936]: https://github.com/mochajs/mocha/issues/1936 -[#2115]: https://github.com/mochajs/mocha/pull/2115 -[#1827]: https://github.com/mochajs/mocha/pull/1827 -[#2101]: https://github.com/mochajs/mocha/pull/2101 -[#2124]: https://github.com/mochajs/mocha/pull/2124 -[#2109]: https://github.com/mochajs/mocha/issues/2109 -[#2162]: https://github.com/mochajs/mocha/pull/2162 -[#2132]: https://github.com/mochajs/mocha/issues/2132 -[#2126]: https://github.com/mochajs/mocha/issues/2126 -[#2121]: https://github.com/mochajs/mocha/issues/2121 -[#2205]: https://github.com/mochajs/mocha/pull/2205 -[#2172]: https://github.com/mochajs/mocha/pull/2172 -[@xdamman]: https://github.com/xdamman -[@Turbo87]: https://github.com/Turbo87 -[@OlegTsyba]: https://github.com/OlegTsyba -[@ryym]: https://github.com/ryym -[@mantoni]: https://github.com/mantoni -[@mislav]: https://github.com/mislav -[@irnc]: https://github.com/irnc -[@jkimbo]: https://github.com/jkimbo -[@benjamine]: https://github.com/benjamine -[@joshlory]: https://github.com/joshlory -[@julienw]: https://github.com/julienw -[@ScottFreeCode]: https://github.com/ScottFreeCode -[@astorije]: https://github.com/astorije -[@dasilvacontin]: https://github.com/dasilvacontin - -# 2.4.5 / 2016-01-28 - -- [#2080], [#2078], [#2072], [#2073], [#1200] - Revert changes to console colors in changeset [1192914](https://github.com/mochajs/mocha/commit/119291449cd03a11cdeda9e37cf718a69a012896) and subsequent related changes thereafter. Restores compatibility with IE8 & PhantomJS. See also [mantoni/mochify.js#129](https://github.com/mantoni/mochify.js/issues/129) and [openlayers/ol3#4746](https://github.com/openlayers/ol3/pull/4746) ([@boneskull]) -- [#2082] - Fix several test assertions ([@mislav]) - -[#1200]: https://github.com/mochajs/mocha/issues/1200 -[#2082]: https://github.com/mochajs/mocha/pull/2082 - -# 2.4.4 / 2016-01-27 - -- [#2080] - Fix broken RequireJS compatibility ([@boneskull]) - -[#2080]: https://github.com/mochajs/mocha/issues/2080 - -# 2.4.3 / 2016-01-27 - -- [#2078] - Fix broken IE8 ([@boneskull]) - -[#2078]: https://github.com/mochajs/mocha/issues/2078 - -# 2.4.2 / 2016-01-26 - -- [#2053] - Fix web worker compatibility ([@mislav]) -- [#2072] - Fix Windows color output ([@thedark1337]) -- [#2073] - Fix colors in `progress` and `landing` reporters ([@gyandeeps]) - -[#2053]: https://github.com/mochajs/mocha/pull/2053 -[#2072]: https://github.com/mochajs/mocha/pull/2072 -[#2073]: https://github.com/mochajs/mocha/pull/2073 -[@gyandeeps]: https://github.com/gyandeeps -[@thedark1337]: https://github.com/thedark1337 - -# 2.4.1 / 2016-01-26 - -- [#2067] - Fix HTML/doc reporter regressions ([@danielstjules]) - -[#2067]: https://github.com/mochajs/mocha/pull/2067 - -# 2.4.0 / 2016-01-25 - -- [#1945] - Correctly skip tests when skipping in suite's before() ([@ryanshawty]) -- [#2056] - chore(license): update license year to 2016 ([@pra85]) -- [#2048] - Fix `this.skip` from spec with HTML reporter ([@mislav]) -- [#2033] - Update tests for newer versions of should.js ([@tomhughes]) -- [#2037] - Fix for memory leak caused by referenced to deferred test ([@bd82]) -- [#2038] - Also run Travis-CI on node.js 4 & 5 ([@bd82]) -- [#2028] - Remove reference to test before afterAll hook runs ([@stonelgh]) -- Bump mkdirp to 0.5.1 to support strict mode ([@danielstjules]) -- [#1977] - safely stringify PhantomJS undefined value ([@ahamid]) -- Add the ability to retry tests ([@@longlho]) -- [#1982] - Enable --log-timer-events option [@Alaneor] -- Fix #1980: Load mocha.opts from bin/mocha and bin/_mocha ([@danielstjules]) -- [#1976] - Simplify function call ([@iclanzan]) -- [#1963] - Add support --perf-basic-prof ([@robraux]) -- [#1981] - Fix HTML reporter handling of done and exceptions ([@Standard8]) -- [#1993] - propagate "file" property for "exports" interface ([@segrey]) -- [#1999] - Add support for strict mode ([@tmont]) -- [#2005] - XUnit Reporter Writes to stdout, falls back to console.log ([@jonnyreeves]) -- [#2021] - Fix non ES5 compliant regexp ([@zetaben]) -- [#1965] - Don't double install BDD UI ([@cowboyd]) -- [#1995] - Make sure the xunit output dir exists before writing to it ([@ianwremmel]) -- Use chalk for the base reporter colors; closes #1200 ([@boneskull]) -- Fix requiring custom interfaces ([@jgkim]) -- [#1967] Silence Bluebird js warnings ([@krisr]) - -[#1945]: https://github.com/mochajs/mocha/pull/1945 -[#2056]: https://github.com/mochajs/mocha/pull/2056 -[#2048]: https://github.com/mochajs/mocha/pull/2048 -[#2033]: https://github.com/mochajs/mocha/pull/2033 -[#2037]: https://github.com/mochajs/mocha/pull/2037 -[#2038]: https://github.com/mochajs/mocha/pull/2038 -[#2028]: https://github.com/mochajs/mocha/pull/2028 -[#1977]: https://github.com/mochajs/mocha/pull/1977 -[#1982]: https://github.com/mochajs/mocha/pull/1982 -[#1976]: https://github.com/mochajs/mocha/pull/1976 -[#1963]: https://github.com/mochajs/mocha/pull/1963 -[#1981]: https://github.com/mochajs/mocha/pull/1981 -[#1993]: https://github.com/mochajs/mocha/pull/1993 -[#1999]: https://github.com/mochajs/mocha/pull/1999 -[#2005]: https://github.com/mochajs/mocha/pull/2005 -[#2021]: https://github.com/mochajs/mocha/pull/2021 -[1965#]: https://github.com/mochajs/mocha/pull/1965 -[#1995]: https://github.com/mochajs/mocha/pull/1995 -[#1967]: https://github.com/mochajs/mocha/pull/1967 -[@ryanshawty]: https://github.com/ryanshawty -[@pra85]: https://github.com/pra85 -[@mislav]: https://github.com/mislav -[@tomhughes]: https://github.com/tomhughes -[@bd82]: https://github.com/bd82 -[@stonelgh]: https://github.com/stonelgh -[@danielstjules]: https://github.com/danielstjules -[@ahamid]: https://github.com/ahamid -[@longlho]: https://github.com/longlho -[@Alaneor]: https://github.com/Alaneor -[@iclanzan]: https://github.com/iclanzan -[@robraux]: https://github.com/robraux -[@Standard8]: https://github.com/Standard8 -[@segrey]: https://github.com/segrey -[@tmont]: https://github.com/tmont -[@jonnyreeves]: https://github.com/jonnyreeves -[@zetaben]: https://github.com/zetaben -[@cowboyd]: https://github.com/cowboyd -[@ianwremmel]: https://github.com/ianwremmel -[@boneskull]: https://github.com/boneskull -[@jgkim]: https://github.com/jgkim -[@krisr]: https://github.com/krisr - -# 2.3.4 / 2015-11-15 - -- Update debug dependency to 2.2.0 -- remove duplication of mocha.opts on process.argv -- Fix typo in test/reporters/nyan.js - -# 2.3.3 / 2015-09-19 - -- [#1875] - Fix Markdown reporter exceeds maximum call stack size ([@danielstjules]) -- [#1864] - Fix xunit missing output with --reporter-options output ([@danielstjules]) -- [#1846] - Support all harmony flags ([@danielstjules]) -- Fix fragile xunit reporter spec ([@danielstjules]) -- [#1669] - Fix catch uncaught errors outside test suite execution ([@danielstjules]) -- [#1868] - Revert jade to support npm < v1.3.7 ([@danielstjules]) -- [#1766] - Don't remove modules/components from stack trace in the browser ([@danielstjules]) -- [#1798] - Fix correctly attribute mutiple done err with hooks ([@danielstjules]) -- Fix use utils.reduce for IE8 compatibility ([@wsw0108]) -- Some linting errors fixed by [@danielstjules] -- Call the inspect() function if message is not set ([@kevinburke]) - -[#1875]: https://github.com/mochajs/mocha/issues/1875 -[#1864]: https://github.com/mochajs/mocha/issues/1864 -[#1846]: https://github.com/mochajs/mocha/issues/1846 -[#1669]: https://github.com/mochajs/mocha/issues/1669 -[#1868]: https://github.com/mochajs/mocha/issues/1868 -[#1766]: https://github.com/mochajs/mocha/issues/1766 -[#1798]: https://github.com/mochajs/mocha/issues/1798 -[@danielstjules]: https://github.com/danielstjules -[@wsw0108]: https://github.com/wsw0108 -[@kevinburke]: https://github.com/kevinburke - -# 2.3.2 / 2015-09-07 - -- [#1868] - Fix compatibility with older versions of NPM ([@boneskull]) - - [#1868]: https://github.com/mochajs/mocha/issues/1868 - -# 2.3.1 / 2015-09-06 - -- [#1812] - Fix: Bail flag causes before() hooks to be run even after a failure ([@aaroncrows]) - - [#1812]: https://github.com/mochajs/mocha/issues/1812 - [aaroncrows]: https://github.com/aaroncrows - -# 2.3.0 / 2015-08-30 - -- [#553] - added --allowUncaught option ([@amsul]) -- [#1490] - Allow --async-only to be satisfied by returning a promise ([@jlai]) -- [#1829] - support --max-old-space-size ([@gigadude]) -- [#1811] - upgrade Jade dependency ([@outsideris]) -- [#1769] - Fix async hook error handling ([@ajaykodali]) -- [#1230] - More descriptive beforeEach/afterEach messages ([@duncanbeevers]) -- [#1787] - Scope loading behaviour instead of using early return ([@aryeguy]) -- [#1789] - Fix: html-runner crashing ([@sunesimonsen]) -- [#1749] - Fix maximum call stack error on large amount of tests ([@tinganho]) -- [#1230] - Decorate failed hook titles with test title ([@duncanbeevers]) -- [#1260] - Build using Browserify ([@ndhoule]) -- [#1728] - Don't use `__proto__` ([@ndhoule]) -- [#1781] - Fix hook error tests ([@glenjamin]) -- [#1754] - Allow boolean --reporter-options ([@papandreou]) -- [#1766] - Fix overly aggressive stack suppression ([@moll]) -- [#1752] - Avoid potential infinite loop ([@gsilk]) -- [#1761] - Fix problems running under PhantomJS ([@chromakode]) -- [#1700] - Fix more problems running under PhantomJS ([@jbnicolai]) -- [#1774] - Support escaped spaces in CLI options ([@adamgruber]) -- [#1687] - Fix HTML reporter links with special chars ([@benvinegar]) -- [#1359] - Adopt code style and enforce it using ESLint ([@ndhoule] w/ assist from [@jbnicolai] & [@boneskull]) -- various refactors ([@jbnicolai]) -- [#1758] - Add cross-frame compatible Error checking ([@outdooricon]) -- [#1741] - Remove moot `version` property from bower.json ([@kkirsche]) -- [#1739] - Improve `HISTORY.md` ([@rstacruz]) -- [#1730] - Support more io.js flags ([@ryedog]) -- [#1349] - Allow HTML in HTML reporter errors ([@papandreou] / [@sunesimonsen]) -- [#1572] - Prevent default browser behavior for failure/pass links ([@jschilli]) -- [#1630] - Support underscored harmony flags ([@dominicbarnes]) -- [#1718] - Support more harmony flags ([@slyg]) -- [#1689] - Add stack to JSON-stream reporter ([@jonathandelgado]) -- [#1654] - Fix `ReferenceError` "location is not defined" ([@jakemmarsh]) - - [#553]: https://github.com/mochajs/mocha/issues/553 - [#1490]: https://github.com/mochajs/mocha/issues/1490 - [#1829]: https://github.com/mochajs/mocha/issues/1829 - [#1811]: https://github.com/mochajs/mocha/issues/1811 - [#1769]: https://github.com/mochajs/mocha/issues/1769 - [#1230]: https://github.com/mochajs/mocha/issues/1230 - [#1787]: https://github.com/mochajs/mocha/issues/1787 - [#1789]: https://github.com/mochajs/mocha/issues/1789 - [#1749]: https://github.com/mochajs/mocha/issues/1749 - [#1230]: https://github.com/mochajs/mocha/issues/1230 - [#1260]: https://github.com/mochajs/mocha/issues/1260 - [#1728]: https://github.com/mochajs/mocha/issues/1728 - [#1781]: https://github.com/mochajs/mocha/issues/1781 - [#1754]: https://github.com/mochajs/mocha/issues/1754 - [#1766]: https://github.com/mochajs/mocha/issues/1766 - [#1752]: https://github.com/mochajs/mocha/issues/1752 - [#1761]: https://github.com/mochajs/mocha/issues/1761 - [#1700]: https://github.com/mochajs/mocha/issues/1700 - [#1774]: https://github.com/mochajs/mocha/issues/1774 - [#1687]: https://github.com/mochajs/mocha/issues/1687 - [#1359]: https://github.com/mochajs/mocha/issues/1359 - [#1758]: https://github.com/mochajs/mocha/issues/1758 - [#1741]: https://github.com/mochajs/mocha/issues/1741 - [#1739]: https://github.com/mochajs/mocha/issues/1739 - [#1730]: https://github.com/mochajs/mocha/issues/1730 - [#1349]: https://github.com/mochajs/mocha/issues/1349 - [#1572]: https://github.com/mochajs/mocha/issues/1572 - [#1630]: https://github.com/mochajs/mocha/issues/1630 - [#1718]: https://github.com/mochajs/mocha/issues/1718 - [#1689]: https://github.com/mochajs/mocha/issues/1689 - [#1654]: https://github.com/mochajs/mocha/issues/1654 - [@adamgruber]: https://github.com/adamgruber - [@ajaykodali]: https://github.com/ajaykodali - [@amsul]: https://github.com/amsul - [@aryeguy]: https://github.com/aryeguy - [@benvinegar]: https://github.com/benvinegar - [@boneskull]: https://github.com/boneskull - [@chromakode]: https://github.com/chromakode - [@dominicbarnes]: https://github.com/dominicbarnes - [@duncanbeevers]: https://github.com/duncanbeevers - [@gigadude]: https://github.com/gigadude - [@glenjamin]: https://github.com/glenjamin - [@gsilk]: https://github.com/gsilk - [@jakemmarsh]: https://github.com/jakemmarsh - [@jbnicolai]: https://github.com/jbnicolai - [@jlai]: https://github.com/jlai - [@jonathandelgado]: https://github.com/jonathandelgado - [@jschilli]: https://github.com/jschilli - [@kkirsche]: https://github.com/kkirsche - [@moll]: https://github.com/moll - [@ndhoule]: https://github.com/ndhoule - [@outdooricon]: https://github.com/outdooricon - [@outsideris]: https://github.com/outsideris - [@papandreou]: https://github.com/papandreou - [@rstacruz]: https://github.com/rstacruz - [@ryedog]: https://github.com/ryedog - [@slyg]: https://github.com/slyg - [@sunesimonsen]: https://github.com/sunesimonsen - [@tinganho]: https://github.com/tinganho - -# 2.2.5 / 2015-05-14 - -- [#1699] - Upgrade jsdiff to v1.4.0 ([@nylen]) -- [#1648] - fix diff background colors in the console ([@nylen]) -- [#1327] - fix tests running twice, a regression issue. ([#1686], [@danielstjules]) -- [#1675] - add integration tests ([@danielstjules]) -- [#1682] - use a valid SPDX license identifier in package.json ([@kemitchell]) -- [#1660] - fix assertion of invalid dates ([#1661], [@a8m]) -- [#1241] - fix issue with multiline diffs appearing as single line ([#1655], [@a8m]) - -[#1699]: https://github.com/mochajs/mocha/issues/1699 -[#1648]: https://github.com/mochajs/mocha/issues/1648 -[#1327]: https://github.com/mochajs/mocha/issues/1327 -[#1686]: https://github.com/mochajs/mocha/issues/1686 -[#1675]: https://github.com/mochajs/mocha/issues/1675 -[#1682]: https://github.com/mochajs/mocha/issues/1682 -[#1660]: https://github.com/mochajs/mocha/issues/1660 -[#1661]: https://github.com/mochajs/mocha/issues/1661 -[#1241]: https://github.com/mochajs/mocha/issues/1241 -[#1655]: https://github.com/mochajs/mocha/issues/1655 -[@nylen]: https://github.com/nylen -[@danielstjules]: https://github.com/danielstjules -[@kemitchell]: https://github.com/kemitchell -[@a8m]: https://github.com/a8m - -# 2.2.4 / 2015-04-08 - -- Load mocha.opts in _mocha for now (close #1645) - -# 2.2.3 / 2015-04-07 - -- fix(reporter/base): string diff - issue #1241 -- fix(reporter/base): string diff - issue #1241 -- fix(reporter/base): don't show diffs for errors without expectation -- fix(reporter/base): don't assume error message is first line of stack -- improve: dry up reporter/base test -- fix(reporter/base): explicitly ignore showDiff #1614 -- Add iojs to travis build -- Pass `--allow-natives-syntax` flag to node. -- Support --harmony_classes flag for io.js -- Fix 1556: Update utils.clean to handle newlines in func declarations -- Fix 1606: fix err handling in IE <= 8 and non-ES5 browsers -- Fix 1585: make _mocha executable again -- chore(package.json): add a8m as a contributor -- Fixed broken link on html-cov reporter -- support --es_staging flag -- fix issue where menu overlaps content. -- update contributors in package.json -- Remove trailing whitespace from reporter output -- Remove contributors list from readme -- log third-party reporter errors -- [Fix] Exclude not own properties when looping on options -- fix: support node args in mocha.opts (close #1573) -- fix(reporter/base): string diff - issue #1241 - -# 2.2.1 / 2015-03-09 - -- Fix passing of args intended for node/iojs. - -# 2.2.0 / 2015-03-06 - -- Update mocha.js -- Add --fgrep. Use grep for RegExp, fgrep for str -- Ignore async global errors after spec resolution -- Fixing errors that prevent mocha.js from loading in the browser - fixes #1558 -- fix(utils): issue #1558 + make -- add ability to delay root suite; closes #362, closes #1124 -- fix insanity in http tests -- update travis: add node 0.12, add gitter, remove slack -- building -- resolve #1548: ensure the environment's "node" executable is used -- reporters/base: use supports-color to detect colorable term -- travis: use docker containers -- small fix: commander option for --expose-gc -- Ignore asynchronous errors after global failure -- Improve error output when a test fails with a non-error -- updated travis badge, uses svg instead of img -- Allow skip from test context for #332 -- [JSHINT] Unnecessary semicolon fixed in bin/_mocha -- Added a reminder about the done() callback to test timeout error messages -- fixes #1496, in Mocha.run(fn), check if fn exists before executing it, added tests too -- Add Harmony Proxy flag for iojs -- test(utils|ms|*): test existing units -- add support for some iojs flags -- fix(utils.stringify): issue #1229, diff viewer -- Remove slack link -- Prevent multiple 'grep=' querystring params in html reporter -- Use grep as regexp (close #1381) -- utils.stringify should handle objects without an Object prototype -- in runnable test, comparing to undefined error's message rather than a literal -- Fix test running output truncation on async STDIO -- amended for deprecated customFds option in child_process - -# 2.1.0 / 2014-12-23 - -- showDiff: don’t stringify strings -- Clean up unused module dependencies. -- Filter zero-length strings from mocha.opts -- only write to stdout in reporters -- Revert "only write to stdout in reporters" -- Print colored output only to a tty -- update summary in README.md -- rename Readme.md/History.md to README.md/HISTORY.md because neurotic -- add .mailmap to fix "git shortlog" or "git summary" output -- fixes #1461: nyan-reporter now respects Base.useColors, fixed bug where Base.color would not return a string when str wasn't a string. -- Use existing test URL builder in failed replay links -- modify .travis.yml: use travis_retry; closes #1449 -- fix -t 0 behavior; closes #1446 -- fix tests (whoops) -- improve diff behavior -- Preserve pathname when linking to individual tests -- Fix test -- Tiny typo in comments fixed -- after hooks now being called on failed tests when using bail, fixes #1093 -- fix throwing undefined/null now makes tests fail, fixes #1395 -- compiler extensions are added as watched extensions, removed non-standard extensions from watch regex, resolves #1221 -- prefix/namespace for suite titles in markdown reporter, fixes #554 -- fix more bad markdown in CONTRIBUTING.md -- fix bad markdown in CONTRIBUTING.md -- add setImmediate/clearImmediate to globals; closes #1435 -- Fix buffer diffs (closes #1132, closes #1433) -- add a CONTRIBUTING.md. closes #882 -- fix intermittent build failures (maybe). closes #1407 -- add Slack notification to .travis.yml -- Fix slack link -- Add slack room to readme -- Update maintainers -- update maintainers and contributors -- resolves #1393: kill children with more effort on SIGINT -- xunit reporter support for optionally writing to a file -- if a reporter has a .done method, call it before exiting -- add support for reporter options -- only write to stdout in reporters - -# 2.0.0 / 2014-10-21 - -- remove: support for node 0.6.x, 0.4.x -- fix: landing reporter with non ansi characters (#211) -- fix: html reporter - preserve query params when navigating to suites/tests (#1358) -- fix: json stream reporter add error message to failed test -- fix: fixes for visionmedia -> mochajs -- fix: use stdio, fixes node deprecation warnings (#1391) - -# 1.21.5 / 2014-10-11 - -- fix: build for NodeJS v0.6.x -- fix: do not attempt to highlight syntax when non-HTML reporter is used -- update: escape-string-regexp to 1.0.2. -- fix: botched indentation in canonicalize() -- fix: .gitignore: ignore .patch and .diff files -- fix: changed 'Catched' to 'Caught' in uncaught exception error handler messages -- add: `pending` field for json reporter -- fix: Runner.prototype.uncaught: don't double-end runnables that already have a state. -- fix: --recursive, broken by f0facd2e -- update: replaces escapeRegexp with the escape-string-regexp package. -- update: commander to 2.3.0. -- update: diff to 1.0.8. -- fix: ability to disable syntax highlighting (#1329) -- fix: added empty object to errorJSON() call to catch when no error is present -- fix: never time out after calling enableTimeouts(false) -- fix: timeout(0) will work at suite level (#1300) -- Fix for --watch+only() issue (#888 ) -- fix: respect err.showDiff, add Base reporter test (#810) - -# 1.22.1-3 / 2014-07-27 - -- fix: disabling timeouts with this.timeout(0) (#1301) - -# 1.22.1-3 / 2014-07-27 - -- fix: local uis and reporters (#1288) -- fix: building 1.21.0's changes in the browser (#1284) - -# 1.21.0 / 2014-07-23 - -- add: --no-timeouts option (#1262, #1268) -- add: --*- deprecation node flags (#1217) -- add: --watch-extensions argument (#1247) -- change: spec reporter is default (#1228) -- fix: diff output showing incorrect +/- (#1182) -- fix: diffs of circular structures (#1179) -- fix: re-render the progress bar when progress has changed only (#1151) -- fix support for environments with global and window (#1159) -- fix: reverting to previously defined onerror handler (#1178) -- fix: stringify non error objects passed to done() (#1270) -- fix: using local ui, reporters (#1267) -- fix: cleaning es6 arrows (#1176) -- fix: don't include attrs in failure tag for xunit (#1244) -- fix: fail tests that return a promise if promise is rejected w/o a reason (#1224) -- fix: showing failed tests in doc reporter (#1117) -- fix: dot reporter dots being off (#1204) -- fix: catch empty throws (#1219) -- fix: honoring timeout for sync operations (#1242) -- update: growl to 1.8.0 - -# 1.20.1 / 2014-06-03 - -- update: should dev dependency to ~4.0.0 (#1231) - -# 1.20.0 / 2014-05-28 - -- add: filenames to suite objects (#1222) - -# 1.19.0 / 2014-05-17 - -- add: browser script option to package.json -- add: export file in Mocha.Test objects (#1174) -- add: add docs for wrapped node flags -- fix: mocha.run() to return error status in browser (#1216) -- fix: clean() to show failure details (#1205) -- fix: regex that generates html for new keyword (#1201) -- fix: sibling suites have inherited but separate contexts (#1164) - -# 1.18.2 / 2014-03-18 - -- fix: html runner was prevented from using #mocha as the default root el (#1162) - -# 1.18.1 / 2014-03-18 - -- fix: named before/after hooks in bdd, tdd, qunit interfaces (#1161) - -# 1.18.0 / 2014-03-13 - -- add: promise support (#329) -- add: named before/after hooks (#966) - -# 1.17.1 / 2014-01-22 - -- fix: expected messages in should.js (should.js#168) -- fix: expect errno global in node versions < v0.9.11 (#1111) -- fix: unreliable checkGlobals optimization (#1110) - -# 1.17.0 / 2014-01-09 - -- add: able to require globals (describe, it, etc.) through mocha (#1077) -- fix: abort previous run on --watch change (#1100) -- fix: reset context for each --watch triggered run (#1099) -- fix: error when cli can't resolve path or pattern (#799) -- fix: canonicalize objects before stringifying and diffing them (#1079) -- fix: make CR call behave like carriage return for non tty (#1087) - -# 1.16.2 / 2013-12-23 - -- fix: couple issues with ie 8 (#1082, #1081) -- fix: issue running the xunit reporter in browsers (#1068) -- fix: issue with firefox < 3.5 (#725) - -# 1.16.1 / 2013-12-19 - -- fix: recompiled for missed changes from the last release - -# 1.16.0 / 2013-12-19 - -- add: Runnable.globals(arr) for per test global whitelist (#1046) -- add: mocha.throwError(err) for assertion libs to call (#985) -- remove: --watch's spinner (#806) -- fix: duplicate test output for multi-line specs in spec reporter (#1006) -- fix: gracefully exit on SIGINT (#1063) -- fix expose the specified ui only in the browser (#984) -- fix: ensure process exit code is preserved when using --no-exit (#1059) -- fix: return true from window.onerror handler (#868) -- fix: xunit reporter to use process.stdout.write (#1068) -- fix: utils.clean(str) indentation (#761) -- fix: xunit reporter returning test duration a NaN (#1039) - -# 1.15.1 / 2013-12-03 - -- fix: recompiled for missed changes from the last release - -# 1.15.0 / 2013-12-02 - -- add: `--no-exit` to prevent `process.exit()` (#1018) -- fix: using inline diffs (#1044) -- fix: show pending test details in xunit reporter (#1051) -- fix: faster global leak detection (#1024) -- fix: yui compression (#1035) -- fix: wrapping long lines in test results (#1030, #1031) -- fix: handle errors in hooks (#1043) - -# 1.14.0 / 2013-11-02 - -- add: unified diff (#862) -- add: set MOCHA_COLORS env var to use colors (#965) -- add: able to override tests links in html reporters (#776) -- remove: teamcity reporter (#954) -- update: commander dependency to 2.0.0 (#1010) -- fix: mocha --ui will try to require the ui if not built in, as --reporter does (#1022) -- fix: send cursor commands only if isatty (#184, #1003) -- fix: include assertion message in base reporter (#993, #991) -- fix: consistent return of it, it.only, and describe, describe.only (#840) - -# 1.13.0 / 2013-09-15 - -- add: sort test files with --sort (#813) -- update: diff dependency to 1.0.7 -- update: glob dependency to 3.2.3 (#927) -- fix: diffs show whitespace differences (#976) -- fix: improve global leaks (#783) -- fix: firefox window.getInterface leak -- fix: accessing iframe via window[iframeIndex] leak -- fix: faster global leak checking -- fix: reporter pending css selector (#970) - -# 1.12.1 / 2013-08-29 - -- remove test.js from .gitignore -- update included version of ms.js - -# 1.12.0 / 2013-07-01 - -- add: prevent diffs for differing types. Closes #900 -- add `Mocha.process` hack for phantomjs -- fix: use compilers with requires -- fix regexps in diffs. Closes #890 -- fix xunit NaN on failure. Closes #894 -- fix: strip tab indentation in `clean` utility method -- fix: textmate bundle installation - -# 1.11.0 / 2013-06-12 - -- add --prof support -- add --harmony support -- add --harmony-generators support -- add "Uncaught " prefix to uncaught exceptions -- add web workers support -- add `suite.skip()` -- change to output # of pending / passing even on failures. Closes #872 -- fix: prevent hooks from being called if we are bailing -- fix `this.timeout(0)` - -# 1.10.0 / 2013-05-21 - -- add add better globbing support for windows via `glob` module -- add support to pass through flags such as --debug-brk=1234. Closes #852 -- add test.only, test.skip to qunit interface -- change to always use word-based diffs for now. Closes #733 -- change `mocha init` tests.html to index.html -- fix `process` global leak in the browser -- fix: use resolve() instead of join() for --require -- fix: filterLeaks() condition to not consider indices in global object as leaks -- fix: restrict mocha.css styling to #mocha id -- fix: save timer references to avoid Sinon interfering in the browser build. - -# 1.9.0 / 2013-04-03 - -- add improved setImmediate implementation -- replace --ignore-leaks with --check-leaks -- change default of ignoreLeaks to true. Closes #791 -- remove scrolling for HTML reporter -- fix retina support -- fix tmbundle, restrict to js scope - -# 1.8.2 / 2013-03-11 - -- add `setImmediate` support for 0.10.x -- fix mocha -w spinner on windows - -# 1.8.1 / 2013-01-09 - -- fix .bail() arity check causing it to default to true - -# 1.8.0 / 2013-01-08 - -- add Mocha() options bail support -- add `Mocha#bail()` method -- add instanceof check back for inheriting from Error -- add component.json -- add diff.js to browser build -- update growl -- fix TAP reporter failures comment :D - -# 1.7.4 / 2012-12-06 - -- add total number of passes and failures to TAP -- remove .bind() calls. re #680 -- fix indexOf. Closes #680 - -# 1.7.3 / 2012-11-30 - -- fix uncaught error support for the browser -- revert uncaught "fix" which breaks node - -# 1.7.2 / 2012-11-28 - -- fix uncaught errors to expose the original error message - -# 1.7.0 / 2012-11-07 - -- add `--async-only` support to prevent false positives for missing `done()` -- add sorting by filename in code coverage -- add HTML 5 doctype to browser template. -- add play button to html reporter to rerun a single test -- add `this.timeout(ms)` as Suite#timeout(ms). Closes #599 -- update growl dependency to 1.6.x -- fix encoding of test-case ?grep. Closes #637 -- fix unicode chars on windows -- fix dom globals in Opera/IE. Closes #243 -- fix markdown reporter a tags -- fix `this.timeout("5s")` support - -# 1.6.0 / 2012-10-02 - -- add object diffs when `err.showDiff` is present -- add hiding of empty suites when pass/failures are toggled -- add faster `.length` checks to `checkGlobals()` before performing the filter - -# 1.5.0 / 2012-09-21 - -- add `ms()` to `.slow()` and `.timeout()` -- add `Mocha#checkLeaks()` to re-enable global leak checks -- add `this.slow()` option [aheckmann] -- add tab, CR, LF to error diffs for now -- add faster `.checkGlobals()` solution [guille] -- remove `fn.call()` from reduce util -- remove `fn.call()` from filter util -- fix forEach. Closes #582 -- fix relaying of signals [TooTallNate] -- fix TAP reporter grep number - -# 1.4.2 / 2012-09-01 - -- add support to multiple `Mocha#globals()` calls, and strings -- add `mocha.reporter()` constructor support [jfirebaugh] -- add `mocha.timeout()` -- move query-string parser to utils.js -- move highlight code to utils.js -- fix third-party reporter support [exogen] -- fix client-side API to match node-side [jfirebaugh] -- fix mocha in iframe [joliss] - -# 1.4.1 / 2012-08-28 - -- add missing `Markdown` export -- fix `Mocha#grep()`, escape regexp strings -- fix reference error when `devicePixelRatio` is not defined. Closes #549 - -# 1.4.0 / 2012-08-22 - -- add mkdir -p to `mocha init`. Closes #539 -- add `.only()`. Closes #524 -- add `.skip()`. Closes #524 -- change str.trim() to use utils.trim(). Closes #533 -- fix HTML progress indicator retina display -- fix url-encoding of click-to-grep HTML functionality - -# 1.3.2 / 2012-08-01 - -- fix exports double-execution regression. Closes #531 - -# 1.3.1 / 2012-08-01 - -- add passes/failures toggling to HTML reporter -- add pending state to `xit()` and `xdescribe()` [Brian Moore] -- add the @charset "UTF-8"; to fix #522 with FireFox. [Jonathan Creamer] -- add border-bottom to #stats links -- add check for runnable in `Runner#uncaught()`. Closes #494 -- add 0.4 and 0.6 back to travis.yml -- add `-E, --growl-errors` to growl on failures only -- add prefixes to debug() names. Closes #497 -- add `Mocha#invert()` to js api -- change dot reporter to use sexy unicode dots -- fix error when clicking pending test in HTML reporter -- fix `make tm` - -# 1.3.0 / 2012-07-05 - -- add window scrolling to `HTML` reporter -- add v8 `--trace-*` option support -- add support for custom reports via `--reporter MODULE` -- add `--invert` switch to invert `--grep` matches -- fix export of `Nyan` reporter. Closes #495 -- fix escaping of `HTML` suite titles. Closes #486 -- fix `done()` called multiple times with an error test -- change `--grep` - regexp escape the input - -# 1.2.2 / 2012-06-28 - -- Added 0.8.0 support - -# 1.2.1 / 2012-06-25 - -- Added `this.test.error(err)` support to after each hooks. Closes #287 -- Added: export top-level suite on global mocha object (mocha.suite). Closes #448 -- Fixed `js` code block format error in markdown reporter -- Fixed deprecation warning when using `path.existsSync` -- Fixed --globals with wildcard -- Fixed chars in nyan when his head moves back -- Remove `--growl` from test/mocha.opts. Closes #289 - -# 1.2.0 / 2012-06-17 - -- Added `nyan` reporter [Atsuya Takagi] -- Added `mocha init ` to copy client files -- Added "specify" synonym for "it" [domenic] -- Added global leak wildcard support [nathanbowser] -- Fixed runner emitter leak. closes #432 -- Fixed omission of .js extension. Closes #454 - -# 1.1.0 / 2012-05-30 - -- Added: check each `mocha(1)` arg for directories to walk -- Added `--recursive` [tricknotes] -- Added `context` for BDD [hokaccha] -- Added styling for new clickable titles -- Added clickable suite titles to HTML reporter -- Added warning when strings are thrown as errors -- Changed: green arrows again in HTML reporter styling -- Changed ul/li elements instead of divs for better copy-and-pasting [joliss] -- Fixed issue #325 - add better grep support to js api -- Fixed: save timer references to avoid Sinon interfering. - -# 1.0.3 / 2012-04-30 - -- Fixed string diff newlines -- Fixed: removed mocha.css target. Closes #401 - -# 1.0.2 / 2012-04-25 - -- Added HTML reporter duration. Closes #47 -- Fixed: one postMessage event listener [exogen] -- Fixed: allow --globals to be used multiple times. Closes #100 [brendannee] -- Fixed #158: removes jquery include from browser tests -- Fixed grep. Closes #372 [brendannee] -- Fixed #166 - When grepping don't display the empty suites -- Removed test/browser/style.css. Closes #385 - -# 1.0.1 / 2012-04-04 - -- Fixed `.timeout()` in hooks -- Fixed: allow callback for `mocha.run()` in client version -- Fixed browser hook error display. Closes #361 - -# 1.0.0 / 2012-03-24 - -- Added js API. Closes #265 -- Added: initial run of tests with `--watch`. Closes #345 -- Added: mark `location` as a global on the CS. Closes #311 -- Added `markdown` reporter (github flavour) -- Added: scrolling menu to coverage.html. Closes #335 -- Added source line to html report for Safari [Tyson Tate] -- Added "min" reporter, useful for `--watch` [Jakub Nešetřil] -- Added support for arbitrary compilers via . Closes #338 [Ian Young] -- Added Teamcity export to lib/reporters/index [Michael Riley] -- Fixed chopping of first char in error reporting. Closes #334 [reported by topfunky] -- Fixed terrible FF / Opera stack traces - -# 0.14.1 / 2012-03-06 - -- Added lib-cov to _.npmignore_ -- Added reporter to `mocha.run([reporter])` as argument -- Added some margin-top to the HTML reporter -- Removed jQuery dependency -- Fixed `--watch`: purge require cache. Closes #266 - -# 0.14.0 / 2012-03-01 - -- Added string diff support for terminal reporters - -# 0.13.0 / 2012-02-23 - -- Added preliminary test coverage support. Closes #5 -- Added `HTMLCov` reporter -- Added `JSONCov` reporter [kunklejr] -- Added `xdescribe()` and `xit()` to the BDD interface. Closes #263 (docs * Changed: make json reporter output pretty json -- Fixed node-inspector support, swapped `--debug` for `debug` to match node. Closes #247 - -# 0.12.1 / 2012-02-14 - -- Added `npm docs mocha` support [TooTallNate] -- Added a `Context` object used for hook and test-case this. Closes #253 -- Fixed `Suite#clone()` `.ctx` reference. Closes #262 - -# 0.12.0 / 2012-02-02 - -- Added .coffee `--watch` support. Closes #242 -- Added support to `--require` files relative to the CWD. Closes #241 -- Added quick n dirty syntax highlighting. Closes #248 -- Changed: made HTML progress indicator smaller -- Fixed xunit errors attribute [dhendo] - -# 0.10.2 / 2012-01-21 - -- Fixed suite count in reporter stats. Closes #222 -- Fixed `done()` after timeout error reporting [Phil Sung] -- Changed the 0-based errors to 1 - -# 0.10.1 / 2012-01-17 - -- Added support for node 0.7.x -- Fixed absolute path support. Closes #215 [kompiro] -- Fixed `--no-colors` option [Jussi Virtanen] -- Fixed Arial CSS typo in the correct file - -# 0.10.0 / 2012-01-13 - -- Added `-b, --bail` to exit on first exception [guillermo] -- Added support for `-gc` / `--expose-gc` [TooTallNate] -- Added `qunit`-inspired interface -- Added MIT LICENSE. Closes #194 -- Added: `--watch` all .js in the CWD. Closes #139 -- Fixed `self.test` reference in runner. Closes #189 -- Fixed double reporting of uncaught exceptions after timeout. Closes #195 - -# 0.8.2 / 2012-01-05 - -- Added test-case context support. Closes #113 -- Fixed exit status. Closes #187 -- Update commander. Closes #190 - -# 0.8.1 / 2011-12-30 - -- Fixed reporting of uncaught exceptions. Closes #183 -- Fixed error message defaulting [indutny] -- Changed mocha(1) from bash to node for windows [Nathan Rajlich] - -# 0.8.0 / 2011-12-28 - -- Added `XUnit` reporter [FeeFighters/visionmedia] -- Added `say(1)` notification support [Maciej Małecki] -- Changed: fail when done() is invoked with a non-Error. Closes #171 -- Fixed `err.stack`, defaulting to message. Closes #180 -- Fixed: `make tm` mkdir -p the dest. Closes #137 -- Fixed mocha(1) --help bin name -- Fixed `-d` for `--debug` support - -# 0.7.1 / 2011-12-22 - -- Removed `mocha-debug(1)`, use `mocha --debug` -- Fixed CWD relative requires -- Fixed growl issue on windows [Raynos] -- Fixed: platform specific line endings [TooTallNate] -- Fixed: escape strings in HTML reporter. Closes #164 - -# 0.7.0 / 2011-12-18 - -- Added support for IE{7,8} [guille] -- Changed: better browser nextTick implementation [guille] - -# 0.6.0 / 2011-12-18 - -- Added setZeroTimeout timeout for browser (nicer stack traces). Closes #153 -- Added "view source" on hover for HTML reporter to make it obvious -- Changed: replace custom growl with growl lib -- Fixed duplicate reporting for HTML reporter. Closes #154 -- Fixed silent hook errors in the HTML reporter. Closes #150 - -# 0.5.0 / 2011-12-14 - -- Added: push node_modules directory onto module.paths for relative require Closes #93 -- Added teamcity reporter [blindsey] -- Fixed: recover from uncaught exceptions for tests. Closes #94 -- Fixed: only emit "test end" for uncaught within test, not hook - -# 0.4.0 / 2011-12-14 - -- Added support for test-specific timeouts via `this.timeout(0)`. Closes #134 -- Added guillermo's client-side EventEmitter. Closes #132 -- Added progress indicator to the HTML reporter -- Fixed slow browser tests. Closes #135 -- Fixed "suite" color for light terminals -- Fixed `require()` leak spotted by [guillermo] - -# 0.3.6 / 2011-12-09 - -- Removed suite merging (for now) - -# 0.3.5 / 2011-12-08 - -- Added support for `window.onerror` [guillermo] -- Fixed: clear timeout on uncaught exceptions. Closes #131 [guillermo] -- Added `mocha.css` to PHONY list. -- Added `mocha.js` to PHONY list. - -# 0.3.4 / 2011-12-08 - -- Added: allow `done()` to be called with non-Error -- Added: return Runner from `mocha.run()`. Closes #126 -- Fixed: run afterEach even on failures. Closes #125 -- Fixed clobbering of current runnable. Closes #121 - -# 0.3.3 / 2011-12-08 - -- Fixed hook timeouts. Closes #120 -- Fixed uncaught exceptions in hooks - -# 0.3.2 / 2011-12-05 - -- Fixed weird reporting when `err.message` is not present - -# 0.3.1 / 2011-12-04 - -- Fixed hook event emitter leak. Closes #117 -- Fixed: export `Spec` constructor. Closes #116 - -# 0.3.0 / 2011-12-04 - -- Added `-w, --watch`. Closes #72 -- Added `--ignore-leaks` to ignore global leak checking -- Added browser `?grep=pattern` support -- Added `--globals ` to specify accepted globals. Closes #99 -- Fixed `mocha-debug(1)` on some systems. Closes #232 -- Fixed growl total, use `runner.total` - -# 0.2.0 / 2011-11-30 - -- Added `--globals ` to specify accepted globals. Closes #99 -- Fixed funky highlighting of messages. Closes #97 -- Fixed `mocha-debug(1)`. Closes #232 -- Fixed growl total, use runner.total - -# 0.1.0 / 2011-11-29 - -- Added `suiteSetup` and `suiteTeardown` to TDD interface [David Henderson] -- Added growl icons. Closes #84 -- Fixed coffee-script support - -# 0.0.8 / 2011-11-25 - -- Fixed: use `Runner#total` for accurate reporting - -# 0.0.7 / 2011-11-25 - -- Added `Hook` -- Added `Runnable` -- Changed: `Test` is `Runnable` -- Fixed global leak reporting in hooks -- Fixed: > 2 calls to done() only report the error once -- Fixed: clear timer on failure. Closes #80 - -# 0.0.6 / 2011-11-25 - -- Fixed return on immediate async error. Closes #80 - -# 0.0.5 / 2011-11-24 - -- Fixed: make mocha.opts whitespace less picky [kkaefer] - -# 0.0.4 / 2011-11-24 - -- Added `--interfaces` -- Added `--reporters` -- Added `-c, --colors`. Closes #69 -- Fixed hook timeouts - -# 0.0.3 / 2011-11-23 - -- Added `-C, --no-colors` to explicitly disable -- Added coffee-script support - -# 0.0.2 / 2011-11-22 - -- Fixed global leak detection due to Safari bind() change -- Fixed: escape html entities in Doc reporter -- Fixed: escape html entities in HTML reporter -- Fixed pending test support for HTML reporter. Closes #66 - -# 0.0.1 / 2011-11-22 - -- Added `--timeout` second shorthand support, ex `--timeout 3s`. -- Fixed "test end" event for uncaughtExceptions. Closes #61 - -# 0.0.1-alpha6 / 2011-11-19 - -- Added travis CI support (needs enabling when public) -- Added preliminary browser support -- Added `make mocha.css` target. Closes #45 -- Added stack trace to TAP errors. Closes #52 -- Renamed tearDown to teardown. Closes #49 -- Fixed: cascading hooksc. Closes #30 -- Fixed some colors for non-tty -- Fixed errors thrown in sync test-cases due to nextTick -- Fixed Base.window.width... again give precedence to 0.6.x - -# 0.0.1-alpha5 / 2011-11-17 - -- Added `doc` reporter. Closes #33 -- Added suite merging. Closes #28 -- Added TextMate bundle and `make tm`. Closes #20 - -# 0.0.1-alpha4 / 2011-11-15 - -- Fixed getWindowSize() for 0.4.x - -# 0.0.1-alpha3 / 2011-11-15 - -- Added `-s, --slow ` to specify "slow" test threshold -- Added `mocha-debug(1)` -- Added `mocha.opts` support. Closes #31 -- Added: default [files] to _test/*.js_ -- Added protection against multiple calls to `done()`. Closes #35 -- Changed: bright yellow for slow Dot reporter tests - -# 0.0.1-alpha2 / 2011-11-08 - -- Missed this one :) - -# 0.0.1-alpha1 / 2011-11-08 - -- Initial release diff --git a/multiplatform-crypto-delegated/node_modules/mocha/LICENSE b/multiplatform-crypto-delegated/node_modules/mocha/LICENSE deleted file mode 100644 index 9ab23f6..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2011-2018 JS Foundation and contributors, https://js.foundation - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/mocha/README.md b/multiplatform-crypto-delegated/node_modules/mocha/README.md deleted file mode 100644 index 9655920..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/README.md +++ /dev/null @@ -1,104 +0,0 @@ -

- Mocha test framework -

- -

:coffee: Simple, flexible, fun JavaScript test framework for Node.js & The Browser :coffee:

- -
- -


Mocha Browser Support h/t SauceLabs

- -## Links - -- **[Documentation](https://mochajs.org)** -- **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)** -- [Code of Conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) -- [Gitter Chatroom](https://gitter.im/mochajs/mocha) (ask questions here!) -- [Google Group](https://groups.google.com/group/mochajs) -- [Issue Tracker](https://github.com/mochajs/mocha/issues) - -## Backers - -[Become a backer](https://opencollective.com/mochajs#backer) and show your support to our open source project. - -[![MochaJS Backer](https://opencollective.com/mochajs/backer/0/avatar)](https://opencollective.com/mochajs/backer/0/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/1/avatar)](https://opencollective.com/mochajs/backer/1/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/2/avatar)](https://opencollective.com/mochajs/backer/2/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/3/avatar)](https://opencollective.com/mochajs/backer/3/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/4/avatar)](https://opencollective.com/mochajs/backer/4/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/5/avatar)](https://opencollective.com/mochajs/backer/5/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/6/avatar)](https://opencollective.com/mochajs/backer/6/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/7/avatar)](https://opencollective.com/mochajs/backer/7/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/8/avatar)](https://opencollective.com/mochajs/backer/8/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/9/avatar)](https://opencollective.com/mochajs/backer/9/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/10/avatar)](https://opencollective.com/mochajs/backer/10/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/11/avatar)](https://opencollective.com/mochajs/backer/11/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/12/avatar)](https://opencollective.com/mochajs/backer/12/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/13/avatar)](https://opencollective.com/mochajs/backer/13/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/14/avatar)](https://opencollective.com/mochajs/backer/14/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/15/avatar)](https://opencollective.com/mochajs/backer/15/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/16/avatar)](https://opencollective.com/mochajs/backer/16/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/17/avatar)](https://opencollective.com/mochajs/backer/17/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/18/avatar)](https://opencollective.com/mochajs/backer/18/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/19/avatar)](https://opencollective.com/mochajs/backer/19/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/20/avatar)](https://opencollective.com/mochajs/backer/20/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/21/avatar)](https://opencollective.com/mochajs/backer/21/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/22/avatar)](https://opencollective.com/mochajs/backer/22/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/23/avatar)](https://opencollective.com/mochajs/backer/23/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/24/avatar)](https://opencollective.com/mochajs/backer/24/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/25/avatar)](https://opencollective.com/mochajs/backer/25/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/26/avatar)](https://opencollective.com/mochajs/backer/26/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/27/avatar)](https://opencollective.com/mochajs/backer/27/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/28/avatar)](https://opencollective.com/mochajs/backer/28/website) -[![MochaJS Backer](https://opencollective.com/mochajs/backer/29/avatar)](https://opencollective.com/mochajs/backer/29/website) - -## Sponsors - -Does your company use Mocha? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time for maintenance and new features for everyone. Also, your company's logo will show [on GitHub](https://github.com/mochajs/mocha#readme) and on [our site](https://mochajs.org) - who doesn't want a little extra exposure? [Here's the info](https://opencollective.com/mochajs#sponsor). - -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/0/avatar)](https://opencollective.com/mochajs/sponsor/0/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/1/avatar)](https://opencollective.com/mochajs/sponsor/1/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/2/avatar)](https://opencollective.com/mochajs/sponsor/2/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/3/avatar)](https://opencollective.com/mochajs/sponsor/3/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/4/avatar)](https://opencollective.com/mochajs/sponsor/4/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/5/avatar)](https://opencollective.com/mochajs/sponsor/5/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/6/avatar)](https://opencollective.com/mochajs/sponsor/6/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/7/avatar)](https://opencollective.com/mochajs/sponsor/7/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/8/avatar)](https://opencollective.com/mochajs/sponsor/8/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/9/avatar)](https://opencollective.com/mochajs/sponsor/9/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/10/avatar)](https://opencollective.com/mochajs/sponsor/10/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/11/avatar)](https://opencollective.com/mochajs/sponsor/11/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/12/avatar)](https://opencollective.com/mochajs/sponsor/12/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/13/avatar)](https://opencollective.com/mochajs/sponsor/13/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/14/avatar)](https://opencollective.com/mochajs/sponsor/14/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/15/avatar)](https://opencollective.com/mochajs/sponsor/15/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/16/avatar)](https://opencollective.com/mochajs/sponsor/16/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/17/avatar)](https://opencollective.com/mochajs/sponsor/17/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/18/avatar)](https://opencollective.com/mochajs/sponsor/18/website) -[![MochaJS Backer](https://opencollective.com/mochajs/sponsor/19/avatar)](https://opencollective.com/mochajs/sponsor/19/website) - -## Development - -You might want to know that: - -- Mocha is the *most-depended-upon* module on npm (source: [libraries.io](https://libraries.io/search?order=desc&platforms=NPM&sort=dependents_count)), and -- Mocha is an *independent* open-source project, maintained exclusively by volunteers. - -You might want to help: - -- New to contributing to Mocha? Check out this list of [good first issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3Agood-first-issue) -- Mocha could use a hand with [these issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) -- The [maintainer's handbook](https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md) explains how things get done - -Finally, come [chat with the maintainers](https://gitter.im/mochajs/contributors) on Gitter if you want to help with: - -- Triaging issues, answering questions -- Review, merging, and closing pull requests -- Other project-maintenance-y things - -## License - -[MIT](LICENSE) - -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmochajs%2Fmocha?ref=badge_large) diff --git a/multiplatform-crypto-delegated/node_modules/mocha/bin/_mocha b/multiplatform-crypto-delegated/node_modules/mocha/bin/_mocha deleted file mode 100755 index 7e2a47a..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/bin/_mocha +++ /dev/null @@ -1,647 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -/* eslint no-unused-vars: off */ - -/** - * Module dependencies. - */ - -const program = require('commander'); -const path = require('path'); -const fs = require('fs'); -const minimatch = require('minimatch'); -const resolve = path.resolve; -const exists = fs.existsSync; -const Mocha = require('../'); -const utils = Mocha.utils; -const interfaceNames = Object.keys(Mocha.interfaces); -const join = path.join; -const cwd = process.cwd(); -const getOptions = require('./options'); -const mocha = new Mocha(); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -const Date = global.Date; -const setTimeout = global.setTimeout; -const setInterval = global.setInterval; -const clearTimeout = global.clearTimeout; -const clearInterval = global.clearInterval; - -/** - * Exits Mocha when tests + code under test has finished execution (default) - * @param {number} code - Exit code; typically # of failures - */ -const exitLater = code => { - process.on('exit', () => { - process.exit(Math.min(code, 255)); - }); -}; - -/** - * Exits Mocha when Mocha itself has finished execution, regardless of - * what the tests or code under test is doing. - * @param {number} code - Exit code; typically # of failures - */ -const exit = code => { - const clampedCode = Math.min(code, 255); - let draining = 0; - - // Eagerly set the process's exit code in case stream.write doesn't - // execute its callback before the process terminates. - process.exitCode = clampedCode; - - // flush output for Node.js Windows pipe bug - // https://github.com/joyent/node/issues/6247 is just one bug example - // https://github.com/visionmedia/mocha/issues/333 has a good discussion - const done = () => { - if (!draining--) { - process.exit(clampedCode); - } - }; - - const streams = [process.stdout, process.stderr]; - - streams.forEach(stream => { - // submit empty write request and wait for completion - draining += 1; - stream.write('', done); - }); - - done(); -}; - -/** - * Parse list. - */ -const list = str => str.split(/ *, */); - -/** - * Parse multiple flag. - */ -const collect = (val, memo) => memo.concat(val); - -/** - * Hide the cursor. - */ -const hideCursor = () => { - process.stdout.write('\u001b[?25l'); -}; - -/** - * Show the cursor. - */ -const showCursor = () => { - process.stdout.write('\u001b[?25h'); -}; - -/** - * Stop play()ing. - */ -const stop = () => { - process.stdout.write('\u001b[2K'); - clearInterval(play.timer); -}; - -/** - * Play the given array of strings. - */ -const play = (arr, interval) => { - const len = arr.length; - interval = interval || 100; - let i = 0; - - play.timer = setInterval(() => { - const str = arr[i++ % len]; - process.stdout.write(`\u001b[0G${str}`); - }, interval); -}; - -/** - * Files. - */ - -let files = []; - -/** - * Globals. - */ - -let globals = []; - -/** - * Requires. - */ - -const requires = []; - -/** - * Images. - */ - -const images = { - fail: path.join(__dirname, '..', 'assets', 'growl', 'error.png'), - pass: path.join(__dirname, '..', 'assets', 'growl', 'ok.png') -}; - -// options - -program - .version( - JSON.parse( - fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8') - ).version - ) - .usage('[debug] [options] [files]') - .option( - '-A, --async-only', - 'force all tests to take a callback (async) or return a promise' - ) - .option('-c, --colors', 'force enabling of colors') - .option('-C, --no-colors', 'force disabling of colors') - .option('-G, --growl', 'enable growl notification support') - .option('-O, --reporter-options ', 'reporter-specific options') - .option('-R, --reporter ', 'specify the reporter to use', 'spec') - .option('-S, --sort', 'sort test files') - .option('-b, --bail', 'bail after first test failure') - .option('-d, --debug', "enable node's debugger, synonym for node --debug") - .option('-g, --grep ', 'only run tests matching ') - .option('-f, --fgrep ', 'only run tests containing ') - .option('-gc, --expose-gc', 'expose gc extension') - .option('-i, --invert', 'inverts --grep and --fgrep matches') - .option('-r, --require ', 'require the given module') - .option('-s, --slow ', '"slow" test threshold in milliseconds [75]') - .option('-t, --timeout ', 'set test-case timeout in milliseconds [2000]') - .option( - '-u, --ui ', - `specify user-interface (${interfaceNames.join('|')})`, - 'bdd' - ) - .option('-w, --watch', 'watch files for changes') - .option('--check-leaks', 'check for global variable leaks') - .option('--full-trace', 'display the full stack trace') - .option( - '--compilers :,...', - 'use the given module(s) to compile files', - list, - [] - ) - .option('--debug-brk', "enable node's debugger breaking on the first line") - .option( - '--globals ', - 'allow the given comma-delimited global [names]', - list, - [] - ) - .option('--es_staging', 'enable all staged features') - .option( - '--harmony<_classes,_generators,...>', - 'all node --harmony* flags are available' - ) - .option( - '--preserve-symlinks', - 'Instructs the module loader to preserve symbolic links when resolving and caching modules' - ) - .option('--icu-data-dir', 'include ICU data') - .option( - '--inline-diffs', - 'display actual/expected differences inline within each string' - ) - .option('--no-diff', 'do not show a diff on failure') - .option('--inspect', 'activate devtools in chrome') - .option( - '--inspect-brk', - 'activate devtools in chrome and break on the first line' - ) - .option('--interfaces', 'display available interfaces') - .option('--no-deprecation', 'silence deprecation warnings') - .option( - '--exit', - 'force shutdown of the event loop after test run: mocha will call process.exit' - ) - .option('--no-timeouts', 'disables timeouts, given implicitly with --debug') - .option('--no-warnings', 'silence all node process warnings') - .option('--opts ', 'specify opts path', 'test/mocha.opts') - .option('--perf-basic-prof', 'enable perf linux profiler (basic support)') - .option('--napi-modules', 'enable experimental NAPI modules') - .option('--prof', 'log statistical profiling information') - .option('--log-timer-events', 'Time events including external callbacks') - .option('--recursive', 'include sub directories') - .option('--reporters', 'display available reporters') - .option( - '--retries ', - 'set numbers of time to retry a failed test case' - ) - .option( - '--throw-deprecation', - 'throw an exception anytime a deprecated function is used' - ) - .option('--trace', 'trace function calls') - .option('--trace-deprecation', 'show stack traces on deprecations') - .option('--trace-warnings', 'show stack traces on node process warnings') - .option('--use_strict', 'enforce strict mode') - .option( - '--watch-extensions ,...', - 'additional extensions to monitor with --watch', - list, - ['js'] - ) - .option('--delay', 'wait for async suite definition') - .option('--allow-uncaught', 'enable uncaught errors to propagate') - .option('--forbid-only', 'causes test marked with only to fail the suite') - .option( - '--forbid-pending', - 'causes pending tests and test marked with skip to fail the suite' - ) - .option( - '--file ', - 'include a file to be ran during the suite', - collect, - [] - ) - .option('--exclude ', 'a file or glob pattern to ignore', collect, []); - -program._name = 'mocha'; - -// init command - -program - .command('init ') - .description('initialize a client-side mocha setup at ') - .action(path => { - const mkdir = require('mkdirp'); - mkdir.sync(path); - const css = fs.readFileSync(join(__dirname, '..', 'mocha.css')); - const js = fs.readFileSync(join(__dirname, '..', 'mocha.js')); - const tmpl = fs.readFileSync(join(__dirname, '..', 'lib/template.html')); - fs.writeFileSync(join(path, 'mocha.css'), css); - fs.writeFileSync(join(path, 'mocha.js'), js); - fs.writeFileSync(join(path, 'tests.js'), ''); - fs.writeFileSync(join(path, 'index.html'), tmpl); - process.exit(0); - }); - -// --globals - -program.on('option:globals', val => { - globals = globals.concat(list(val)); -}); - -// --reporters - -program.on('option:reporters', () => { - console.log(); - console.log(' dot - dot matrix'); - console.log(' doc - html documentation'); - console.log(' spec - hierarchical spec list'); - console.log(' json - single json object'); - console.log(' progress - progress bar'); - console.log(' list - spec-style listing'); - console.log(' tap - test-anything-protocol'); - console.log(' landing - unicode landing strip'); - console.log(' xunit - xunit reporter'); - console.log(' min - minimal reporter (great with --watch)'); - console.log(' json-stream - newline delimited json events'); - console.log(' markdown - markdown documentation (github flavour)'); - console.log(' nyan - nyan cat!'); - console.log(); - process.exit(); -}); - -// --interfaces - -program.on('option:interfaces', () => { - console.log(''); - interfaceNames.forEach(interfaceName => { - console.log(` ${interfaceName}`); - }); - console.log(''); - process.exit(); -}); - -// -r, --require - -module.paths.push(cwd, join(cwd, 'node_modules')); - -program.on('option:require', mod => { - const abs = exists(mod) || exists(`${mod}.js`); - if (abs) { - mod = resolve(mod); - } - requires.push(mod); -}); - -// If not already done, load mocha.opts -if (!process.env.LOADED_MOCHA_OPTS) { - getOptions(); -} - -// parse args - -program.parse(process.argv); - -// infinite stack traces - -Error.stackTraceLimit = Infinity; // TODO: config - -// reporter options - -const reporterOptions = {}; -if (program.reporterOptions !== undefined) { - program.reporterOptions.split(',').forEach(opt => { - const L = opt.split('='); - if (L.length > 2 || L.length === 0) { - throw new Error(`invalid reporter option '${opt}'`); - } else if (L.length === 2) { - reporterOptions[L[0]] = L[1]; - } else { - reporterOptions[L[0]] = true; - } - }); -} - -// reporter - -mocha.reporter(program.reporter, reporterOptions); - -// --no-colors - -if (!program.colors) { - mocha.useColors(false); -} - -// --colors - -if (~process.argv.indexOf('--colors') || ~process.argv.indexOf('-c')) { - mocha.useColors(true); -} - -// --inline-diffs - -if (program.inlineDiffs) { - mocha.useInlineDiffs(true); -} - -// --no-diff - -if (process.argv.indexOf('--no-diff') !== -1) { - mocha.hideDiff(true); -} - -// --slow - -if (program.slow) { - mocha.suite.slow(program.slow); -} - -// --no-timeouts - -if (!program.timeouts) { - mocha.enableTimeouts(false); -} - -// --timeout - -if (program.timeout) { - mocha.suite.timeout(program.timeout); -} - -// --bail - -mocha.suite.bail(program.bail); - -// --grep - -if (program.grep) { - mocha.grep(program.grep); -} - -// --fgrep - -if (program.fgrep) { - mocha.fgrep(program.fgrep); -} - -// --invert - -if (program.invert) { - mocha.invert(); -} - -// --check-leaks - -if (program.checkLeaks) { - mocha.checkLeaks(); -} - -// --stack-trace - -if (program.fullTrace) { - mocha.fullTrace(); -} - -// --growl - -if (program.growl) { - mocha.growl(); -} - -// --async-only - -if (program.asyncOnly) { - mocha.asyncOnly(); -} - -// --delay - -if (program.delay) { - mocha.delay(); -} - -// --allow-uncaught - -if (program.allowUncaught) { - mocha.allowUncaught(); -} - -// --globals - -mocha.globals(globals); - -// --retries - -if (program.retries) { - mocha.suite.retries(program.retries); -} - -// --forbid-only - -if (program.forbidOnly) mocha.forbidOnly(); - -// --forbid-pending - -if (program.forbidPending) mocha.forbidPending(); - -// custom compiler support - -if (program.compilers.length > 0) { - require('util').deprecate(() => {}, - '"--compilers" will be removed in a future version of Mocha; see https://git.io/vdcSr for more info')(); -} -const extensions = ['js']; -program.compilers.forEach(c => { - const idx = c.indexOf(':'); - const ext = c.slice(0, idx); - let mod = c.slice(idx + 1); - - if (mod[0] === '.') { - mod = join(process.cwd(), mod); - } - require(mod); - extensions.push(ext); - program.watchExtensions.push(ext); -}); - -// requires - -requires.forEach(mod => { - require(mod); -}); - -// interface - -mocha.ui(program.ui); - -// args - -const args = program.args; - -// default files to test/*.{js,coffee} - -if (!args.length) { - args.push('test'); -} - -args.forEach(arg => { - let newFiles; - try { - newFiles = utils.lookupFiles(arg, extensions, program.recursive); - } catch (err) { - if (err.message.indexOf('cannot resolve path') === 0) { - console.error( - `Warning: Could not find any test files matching pattern: ${arg}` - ); - return; - } - - throw err; - } - - if (typeof newFiles !== 'undefined') { - if (typeof newFiles === 'string') { - newFiles = [newFiles]; - } - newFiles = newFiles.filter(fileName => - program.exclude.every(pattern => !minimatch(fileName, pattern)) - ); - } - - files = files.concat(newFiles); -}); - -if (!files.length) { - console.error('No test files found'); - process.exit(1); -} - -// resolve -let fileArgs = program.file.map(path => resolve(path)); -files = files.map(path => resolve(path)); - -if (program.sort) { - files.sort(); -} - -// add files given through --file to be ran first -files = fileArgs.concat(files); - -// --watch - -let runner; -let loadAndRun; -let purge; -let rerun; - -if (program.watch) { - console.log(); - hideCursor(); - process.on('SIGINT', () => { - showCursor(); - console.log('\n'); - process.exit(130); - }); - - const watchFiles = utils.files(cwd, ['js'].concat(program.watchExtensions)); - let runAgain = false; - - loadAndRun = () => { - try { - mocha.files = files; - runAgain = false; - runner = mocha.run(() => { - runner = null; - if (runAgain) { - rerun(); - } - }); - } catch (e) { - console.log(e.stack); - } - }; - - purge = () => { - watchFiles.forEach(file => { - delete require.cache[file]; - }); - }; - - loadAndRun(); - - rerun = () => { - purge(); - stop(); - if (!program.grep) { - mocha.grep(null); - } - mocha.suite = mocha.suite.clone(); - mocha.suite.ctx = new Mocha.Context(); - mocha.ui(program.ui); - loadAndRun(); - }; - - utils.watch(watchFiles, () => { - runAgain = true; - if (runner) { - runner.abort(); - } else { - rerun(); - } - }); -} else { - // load - - mocha.files = files; - runner = mocha.run(program.exit ? exit : exitLater); -} - -process.on('SIGINT', () => { - runner.abort(); - - // This is a hack: - // Instead of `process.exit(130)`, set runner.failures to 130 (exit code for SIGINT) - // The amount of failures will be emitted as error code later - runner.failures = 130; -}); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/bin/mocha b/multiplatform-crypto-delegated/node_modules/mocha/bin/mocha deleted file mode 100755 index 38d09fb..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/bin/mocha +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env node - -'use strict'; - -/** - * This tiny wrapper file checks for known node flags and appends them - * when found, before invoking the "real" _mocha(1) executable. - */ - -const spawn = require('child_process').spawn; -const path = require('path'); -const getOptions = require('./options'); -const args = [path.join(__dirname, '_mocha')]; - -// Load mocha.opts into process.argv -// Must be loaded here to handle node-specific options -getOptions(); - -process.argv.slice(2).forEach(arg => { - const flag = arg.split('=')[0]; - - switch (flag) { - case '-d': - args.unshift('--debug'); - args.push('--no-timeouts'); - break; - case 'debug': - case '--debug': - case '--debug-brk': - case '--inspect': - case '--inspect-brk': - args.unshift(arg); - args.push('--no-timeouts'); - break; - case '-gc': - case '--expose-gc': - args.unshift('--expose-gc'); - break; - case '--gc-global': - case '--es_staging': - case '--no-deprecation': - case '--no-warnings': - case '--prof': - case '--log-timer-events': - case '--throw-deprecation': - case '--trace-deprecation': - case '--trace-warnings': - case '--use_strict': - case '--allow-natives-syntax': - case '--perf-basic-prof': - case '--napi-modules': - args.unshift(arg); - break; - default: - if (arg.indexOf('--harmony') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--trace') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--icu-data-dir') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--max-old-space-size') === 0) { - args.unshift(arg); - } else if (arg.indexOf('--preserve-symlinks') === 0) { - args.unshift(arg); - } else { - args.push(arg); - } - break; - } -}); - -const proc = spawn(process.execPath, args, { - stdio: 'inherit' -}); -proc.on('exit', (code, signal) => { - process.on('exit', () => { - if (signal) { - process.kill(process.pid, signal); - } else { - process.exit(code); - } - }); -}); - -// terminate children. -process.on('SIGINT', () => { - proc.kill('SIGINT'); // calls runner.abort() - proc.kill('SIGTERM'); // if that didn't work, we're probably in an infinite loop, so make it die. -}); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/bin/options.js b/multiplatform-crypto-delegated/node_modules/mocha/bin/options.js deleted file mode 100644 index a25a18e..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/bin/options.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -/** - * Dependencies. - */ - -const fs = require('fs'); - -/** - * Export `getOptions`. - */ - -module.exports = getOptions; - -/** - * Get options. - */ - -function getOptions() { - if ( - process.argv.length === 3 && - (process.argv[2] === '-h' || process.argv[2] === '--help') - ) { - return; - } - - const optsPath = - process.argv.indexOf('--opts') === -1 - ? 'test/mocha.opts' - : process.argv[process.argv.indexOf('--opts') + 1]; - - try { - const opts = fs - .readFileSync(optsPath, 'utf8') - .replace(/^#.*$/gm, '') - .replace(/\\\s/g, '%20') - .split(/\s/) - .filter(Boolean) - .map(value => value.replace(/%20/g, ' ')); - - process.argv = process.argv - .slice(0, 2) - .concat(opts.concat(process.argv.slice(2))); - } catch (ignore) { - // NOTE: should console.error() and throw the error - } - - process.env.LOADED_MOCHA_OPTS = true; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/browser-entry.js b/multiplatform-crypto-delegated/node_modules/mocha/browser-entry.js deleted file mode 100644 index ad422e6..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/browser-entry.js +++ /dev/null @@ -1,191 +0,0 @@ -'use strict'; - -/* eslint no-unused-vars: off */ -/* eslint-env commonjs */ - -/** - * Shim process.stdout. - */ - -process.stdout = require('browser-stdout')({level: false}); - -var Mocha = require('./lib/mocha'); - -/** - * Create a Mocha instance. - * - * @return {undefined} - */ - -var mocha = new Mocha({reporter: 'html'}); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; - -var uncaughtExceptionHandlers = []; - -var originalOnerrorHandler = global.onerror; - -/** - * Remove uncaughtException listener. - * Revert to original onerror handler if previously defined. - */ - -process.removeListener = function(e, fn) { - if (e === 'uncaughtException') { - if (originalOnerrorHandler) { - global.onerror = originalOnerrorHandler; - } else { - global.onerror = function() {}; - } - var i = uncaughtExceptionHandlers.indexOf(fn); - if (i !== -1) { - uncaughtExceptionHandlers.splice(i, 1); - } - } -}; - -/** - * Implements uncaughtException listener. - */ - -process.on = function(e, fn) { - if (e === 'uncaughtException') { - global.onerror = function(err, url, line) { - fn(new Error(err + ' (' + url + ':' + line + ')')); - return !mocha.allowUncaught; - }; - uncaughtExceptionHandlers.push(fn); - } -}; - -// The BDD UI is registered by default, but no UI will be functional in the -// browser without an explicit call to the overridden `mocha.ui` (see below). -// Ensure that this default UI does not expose its methods to the global scope. -mocha.suite.removeAllListeners('pre-require'); - -var immediateQueue = []; -var immediateTimeout; - -function timeslice() { - var immediateStart = new Date().getTime(); - while (immediateQueue.length && new Date().getTime() - immediateStart < 100) { - immediateQueue.shift()(); - } - if (immediateQueue.length) { - immediateTimeout = setTimeout(timeslice, 0); - } else { - immediateTimeout = null; - } -} - -/** - * High-performance override of Runner.immediately. - */ - -Mocha.Runner.immediately = function(callback) { - immediateQueue.push(callback); - if (!immediateTimeout) { - immediateTimeout = setTimeout(timeslice, 0); - } -}; - -/** - * Function to allow assertion libraries to throw errors directly into mocha. - * This is useful when running tests in a browser because window.onerror will - * only receive the 'message' attribute of the Error. - */ -mocha.throwError = function(err) { - uncaughtExceptionHandlers.forEach(function(fn) { - fn(err); - }); - throw err; -}; - -/** - * Override ui to ensure that the ui functions are initialized. - * Normally this would happen in Mocha.prototype.loadFiles. - */ - -mocha.ui = function(ui) { - Mocha.prototype.ui.call(this, ui); - this.suite.emit('pre-require', global, null, this); - return this; -}; - -/** - * Setup mocha with the given setting options. - */ - -mocha.setup = function(opts) { - if (typeof opts === 'string') { - opts = {ui: opts}; - } - for (var opt in opts) { - if (opts.hasOwnProperty(opt)) { - this[opt](opts[opt]); - } - } - return this; -}; - -/** - * Run mocha, returning the Runner. - */ - -mocha.run = function(fn) { - var options = mocha.options; - mocha.globals('location'); - - var query = Mocha.utils.parseQuery(global.location.search || ''); - if (query.grep) { - mocha.grep(query.grep); - } - if (query.fgrep) { - mocha.fgrep(query.fgrep); - } - if (query.invert) { - mocha.invert(); - } - - return Mocha.prototype.run.call(mocha, function(err) { - // The DOM Document is not available in Web Workers. - var document = global.document; - if ( - document && - document.getElementById('mocha') && - options.noHighlighting !== true - ) { - Mocha.utils.highlightTags('code'); - } - if (fn) { - fn(err); - } - }); -}; - -/** - * Expose the process shim. - * https://github.com/mochajs/mocha/pull/916 - */ - -Mocha.process = process; - -/** - * Expose mocha. - */ - -global.Mocha = Mocha; -global.mocha = mocha; - -// this allows test/acceptance/required-tokens.js to pass; thus, -// you can now do `const describe = require('mocha').describe` in a -// browser context (assuming browserification). should fix #880 -module.exports = global; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/index.js b/multiplatform-crypto-delegated/node_modules/mocha/index.js deleted file mode 100644 index d2b7d19..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./lib/mocha'); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/growl.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/growl.js deleted file mode 100644 index 28c62ef..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/growl.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// just stub out growl - -module.exports = require('../utils').noop; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/progress.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/progress.js deleted file mode 100644 index 7bf400b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/progress.js +++ /dev/null @@ -1,119 +0,0 @@ -'use strict'; - -/** - * Expose `Progress`. - */ - -module.exports = Progress; - -/** - * Initialize a new `Progress` indicator. - */ -function Progress() { - this.percent = 0; - this.size(0); - this.fontSize(11); - this.font('helvetica, arial, sans-serif'); -} - -/** - * Set progress size to `size`. - * - * @api public - * @param {number} size - * @return {Progress} Progress instance. - */ -Progress.prototype.size = function(size) { - this._size = size; - return this; -}; - -/** - * Set text to `text`. - * - * @api public - * @param {string} text - * @return {Progress} Progress instance. - */ -Progress.prototype.text = function(text) { - this._text = text; - return this; -}; - -/** - * Set font size to `size`. - * - * @api public - * @param {number} size - * @return {Progress} Progress instance. - */ -Progress.prototype.fontSize = function(size) { - this._fontSize = size; - return this; -}; - -/** - * Set font to `family`. - * - * @param {string} family - * @return {Progress} Progress instance. - */ -Progress.prototype.font = function(family) { - this._font = family; - return this; -}; - -/** - * Update percentage to `n`. - * - * @param {number} n - * @return {Progress} Progress instance. - */ -Progress.prototype.update = function(n) { - this.percent = n; - return this; -}; - -/** - * Draw on `ctx`. - * - * @param {CanvasRenderingContext2d} ctx - * @return {Progress} Progress instance. - */ -Progress.prototype.draw = function(ctx) { - try { - var percent = Math.min(this.percent, 100); - var size = this._size; - var half = size / 2; - var x = half; - var y = half; - var rad = half - 1; - var fontSize = this._fontSize; - - ctx.font = fontSize + 'px ' + this._font; - - var angle = Math.PI * 2 * (percent / 100); - ctx.clearRect(0, 0, size, size); - - // outer circle - ctx.strokeStyle = '#9f9f9f'; - ctx.beginPath(); - ctx.arc(x, y, rad, 0, angle, false); - ctx.stroke(); - - // inner circle - ctx.strokeStyle = '#eee'; - ctx.beginPath(); - ctx.arc(x, y, rad - 1, 0, angle, true); - ctx.stroke(); - - // text - var text = this._text || (percent | 0) + '%'; - var w = ctx.measureText(text).width; - - ctx.fillText(text, x - w / 2 + 1, y + fontSize / 2 - 1); - } catch (ignore) { - // don't fail if we can't render progress - } - return this; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/tty.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/tty.js deleted file mode 100644 index e903365..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/browser/tty.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -exports.isatty = function isatty() { - return true; -}; - -exports.getWindowSize = function getWindowSize() { - if ('innerHeight' in global) { - return [global.innerHeight, global.innerWidth]; - } - // In a Web Worker, the DOM Window is not available. - return [640, 480]; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/context.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/context.js deleted file mode 100644 index 812162b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/context.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; -/** - * @module Context - */ -/** - * Expose `Context`. - */ - -module.exports = Context; - -/** - * Initialize a new `Context`. - * - * @api private - */ -function Context() {} - -/** - * Set or get the context `Runnable` to `runnable`. - * - * @api private - * @param {Runnable} runnable - * @return {Context} context - */ -Context.prototype.runnable = function(runnable) { - if (!arguments.length) { - return this._runnable; - } - this.test = this._runnable = runnable; - return this; -}; - -/** - * Set or get test timeout `ms`. - * - * @api private - * @param {number} ms - * @return {Context} self - */ -Context.prototype.timeout = function(ms) { - if (!arguments.length) { - return this.runnable().timeout(); - } - this.runnable().timeout(ms); - return this; -}; - -/** - * Set test timeout `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Context} self - */ -Context.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this.runnable().enableTimeouts(); - } - this.runnable().enableTimeouts(enabled); - return this; -}; - -/** - * Set or get test slowness threshold `ms`. - * - * @api private - * @param {number} ms - * @return {Context} self - */ -Context.prototype.slow = function(ms) { - if (!arguments.length) { - return this.runnable().slow(); - } - this.runnable().slow(ms); - return this; -}; - -/** - * Mark a test as skipped. - * - * @api private - * @throws Pending - */ -Context.prototype.skip = function() { - this.runnable().skip(); -}; - -/** - * Set or get a number of allowed retries on failed tests - * - * @api private - * @param {number} n - * @return {Context} self - */ -Context.prototype.retries = function(n) { - if (!arguments.length) { - return this.runnable().retries(); - } - this.runnable().retries(n); - return this; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/hook.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/hook.js deleted file mode 100644 index 71440d2..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/hook.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var Runnable = require('./runnable'); -var inherits = require('./utils').inherits; - -/** - * Expose `Hook`. - */ - -module.exports = Hook; - -/** - * Initialize a new `Hook` with the given `title` and callback `fn` - * - * @class - * @extends Runnable - * @param {String} title - * @param {Function} fn - */ -function Hook(title, fn) { - Runnable.call(this, title, fn); - this.type = 'hook'; -} - -/** - * Inherit from `Runnable.prototype`. - */ -inherits(Hook, Runnable); - -/** - * Get or set the test `err`. - * - * @memberof Hook - * @public - * @param {Error} err - * @return {Error} - */ -Hook.prototype.error = function(err) { - if (!arguments.length) { - err = this._error; - this._error = null; - return err; - } - - this._error = err; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/bdd.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/bdd.js deleted file mode 100644 index 730e67e..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/bdd.js +++ /dev/null @@ -1,114 +0,0 @@ -'use strict'; - -var Test = require('../test'); - -/** - * BDD-style interface: - * - * describe('Array', function() { - * describe('#indexOf()', function() { - * it('should return -1 when not present', function() { - * // ... - * }); - * - * it('should return the index when present', function() { - * // ... - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ -module.exports = function bddInterface(suite) { - var suites = [suite]; - - suite.on('pre-require', function(context, file, mocha) { - var common = require('./common')(suites, context, mocha); - - context.before = common.before; - context.after = common.after; - context.beforeEach = common.beforeEach; - context.afterEach = common.afterEach; - context.run = mocha.options.delay && common.runWithSuite(suite); - /** - * Describe a "suite" with the given `title` - * and callback `fn` containing nested suites - * and/or tests. - */ - - context.describe = context.context = function(title, fn) { - return common.suite.create({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Pending describe. - */ - - context.xdescribe = context.xcontext = context.describe.skip = function( - title, - fn - ) { - return common.suite.skip({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Exclusive suite. - */ - - context.describe.only = function(title, fn) { - return common.suite.only({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.it = context.specify = function(title, fn) { - var suite = suites[0]; - if (suite.isPending()) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.it.only = function(title, fn) { - return common.test.only(mocha, context.it(title, fn)); - }; - - /** - * Pending test case. - */ - - context.xit = context.xspecify = context.it.skip = function(title) { - return context.it(title); - }; - - /** - * Number of attempts to retry. - */ - context.it.retries = function(n) { - context.retries(n); - }; - }); -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/common.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/common.js deleted file mode 100644 index 4ca340a..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/common.js +++ /dev/null @@ -1,160 +0,0 @@ -'use strict'; - -var Suite = require('../suite'); - -/** - * Functions common to more than one interface. - * - * @param {Suite[]} suites - * @param {Context} context - * @param {Mocha} mocha - * @return {Object} An object containing common functions. - */ -module.exports = function(suites, context, mocha) { - return { - /** - * This is only present if flag --delay is passed into Mocha. It triggers - * root suite execution. - * - * @param {Suite} suite The root suite. - * @return {Function} A function which runs the root suite - */ - runWithSuite: function runWithSuite(suite) { - return function run() { - suite.run(); - }; - }, - - /** - * Execute before running tests. - * - * @param {string} name - * @param {Function} fn - */ - before: function(name, fn) { - suites[0].beforeAll(name, fn); - }, - - /** - * Execute after running tests. - * - * @param {string} name - * @param {Function} fn - */ - after: function(name, fn) { - suites[0].afterAll(name, fn); - }, - - /** - * Execute before each test case. - * - * @param {string} name - * @param {Function} fn - */ - beforeEach: function(name, fn) { - suites[0].beforeEach(name, fn); - }, - - /** - * Execute after each test case. - * - * @param {string} name - * @param {Function} fn - */ - afterEach: function(name, fn) { - suites[0].afterEach(name, fn); - }, - - suite: { - /** - * Create an exclusive Suite; convenience function - * See docstring for create() below. - * - * @param {Object} opts - * @returns {Suite} - */ - only: function only(opts) { - opts.isOnly = true; - return this.create(opts); - }, - - /** - * Create a Suite, but skip it; convenience function - * See docstring for create() below. - * - * @param {Object} opts - * @returns {Suite} - */ - skip: function skip(opts) { - opts.pending = true; - return this.create(opts); - }, - - /** - * Creates a suite. - * @param {Object} opts Options - * @param {string} opts.title Title of Suite - * @param {Function} [opts.fn] Suite Function (not always applicable) - * @param {boolean} [opts.pending] Is Suite pending? - * @param {string} [opts.file] Filepath where this Suite resides - * @param {boolean} [opts.isOnly] Is Suite exclusive? - * @returns {Suite} - */ - create: function create(opts) { - var suite = Suite.create(suites[0], opts.title); - suite.pending = Boolean(opts.pending); - suite.file = opts.file; - suites.unshift(suite); - if (opts.isOnly) { - suite.parent._onlySuites = suite.parent._onlySuites.concat(suite); - } - if (typeof opts.fn === 'function') { - opts.fn.call(suite); - suites.shift(); - } else if (typeof opts.fn === 'undefined' && !suite.pending) { - throw new Error( - 'Suite "' + - suite.fullTitle() + - '" was defined but no callback was supplied. Supply a callback or explicitly skip the suite.' - ); - } else if (!opts.fn && suite.pending) { - suites.shift(); - } - - return suite; - } - }, - - test: { - /** - * Exclusive test-case. - * - * @param {Object} mocha - * @param {Function} test - * @returns {*} - */ - only: function(mocha, test) { - test.parent._onlyTests = test.parent._onlyTests.concat(test); - return test; - }, - - /** - * Pending test case. - * - * @param {string} title - */ - skip: function(title) { - context.test(title); - }, - - /** - * Number of retry attempts - * - * @param {number} n - */ - retries: function(n) { - context.retries(n); - } - } - }; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/exports.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/exports.js deleted file mode 100644 index 1a5c5bb..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/exports.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; -var Suite = require('../suite'); -var Test = require('../test'); - -/** - * Exports-style (as Node.js module) interface: - * - * exports.Array = { - * '#indexOf()': { - * 'should return -1 when the value is not present': function() { - * - * }, - * - * 'should return the correct index when the value is present': function() { - * - * } - * } - * }; - * - * @param {Suite} suite Root suite. - */ -module.exports = function(suite) { - var suites = [suite]; - - suite.on('require', visit); - - function visit(obj, file) { - var suite; - for (var key in obj) { - if (typeof obj[key] === 'function') { - var fn = obj[key]; - switch (key) { - case 'before': - suites[0].beforeAll(fn); - break; - case 'after': - suites[0].afterAll(fn); - break; - case 'beforeEach': - suites[0].beforeEach(fn); - break; - case 'afterEach': - suites[0].afterEach(fn); - break; - default: - var test = new Test(key, fn); - test.file = file; - suites[0].addTest(test); - } - } else { - suite = Suite.create(suites[0], key); - suites.unshift(suite); - visit(obj[key], file); - suites.shift(); - } - } - } -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/index.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/index.js deleted file mode 100644 index 0bd810a..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -exports.bdd = require('./bdd'); -exports.tdd = require('./tdd'); -exports.qunit = require('./qunit'); -exports.exports = require('./exports'); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/qunit.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/qunit.js deleted file mode 100644 index ad3c900..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/qunit.js +++ /dev/null @@ -1,95 +0,0 @@ -'use strict'; - -var Test = require('../test'); - -/** - * QUnit-style interface: - * - * suite('Array'); - * - * test('#length', function() { - * var arr = [1,2,3]; - * ok(arr.length == 3); - * }); - * - * test('#indexOf()', function() { - * var arr = [1,2,3]; - * ok(arr.indexOf(1) == 0); - * ok(arr.indexOf(2) == 1); - * ok(arr.indexOf(3) == 2); - * }); - * - * suite('String'); - * - * test('#length', function() { - * ok('foo'.length == 3); - * }); - * - * @param {Suite} suite Root suite. - */ -module.exports = function qUnitInterface(suite) { - var suites = [suite]; - - suite.on('pre-require', function(context, file, mocha) { - var common = require('./common')(suites, context, mocha); - - context.before = common.before; - context.after = common.after; - context.beforeEach = common.beforeEach; - context.afterEach = common.afterEach; - context.run = mocha.options.delay && common.runWithSuite(suite); - /** - * Describe a "suite" with the given `title`. - */ - - context.suite = function(title) { - if (suites.length > 1) { - suites.shift(); - } - return common.suite.create({ - title: title, - file: file, - fn: false - }); - }; - - /** - * Exclusive Suite. - */ - - context.suite.only = function(title) { - if (suites.length > 1) { - suites.shift(); - } - return common.suite.only({ - title: title, - file: file, - fn: false - }); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.test = function(title, fn) { - var test = new Test(title, fn); - test.file = file; - suites[0].addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function(title, fn) { - return common.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common.test.skip; - context.test.retries = common.test.retries; - }); -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/tdd.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/tdd.js deleted file mode 100644 index 1e72cf7..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/interfaces/tdd.js +++ /dev/null @@ -1,102 +0,0 @@ -'use strict'; - -var Test = require('../test'); - -/** - * TDD-style interface: - * - * suite('Array', function() { - * suite('#indexOf()', function() { - * suiteSetup(function() { - * - * }); - * - * test('should return -1 when not present', function() { - * - * }); - * - * test('should return the index when present', function() { - * - * }); - * - * suiteTeardown(function() { - * - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ -module.exports = function(suite) { - var suites = [suite]; - - suite.on('pre-require', function(context, file, mocha) { - var common = require('./common')(suites, context, mocha); - - context.setup = common.beforeEach; - context.teardown = common.afterEach; - context.suiteSetup = common.before; - context.suiteTeardown = common.after; - context.run = mocha.options.delay && common.runWithSuite(suite); - - /** - * Describe a "suite" with the given `title` and callback `fn` containing - * nested suites and/or tests. - */ - context.suite = function(title, fn) { - return common.suite.create({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Pending suite. - */ - context.suite.skip = function(title, fn) { - return common.suite.skip({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Exclusive test-case. - */ - context.suite.only = function(title, fn) { - return common.suite.only({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Describe a specification or test-case with the given `title` and - * callback `fn` acting as a thunk. - */ - context.test = function(title, fn) { - var suite = suites[0]; - if (suite.isPending()) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function(title, fn) { - return common.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common.test.skip; - context.test.retries = common.test.retries; - }); -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/mocha.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/mocha.js deleted file mode 100644 index 673dbec..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/mocha.js +++ /dev/null @@ -1,613 +0,0 @@ -'use strict'; - -/*! - * mocha - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -var escapeRe = require('escape-string-regexp'); -var path = require('path'); -var reporters = require('./reporters'); -var utils = require('./utils'); - -exports = module.exports = Mocha; - -/** - * To require local UIs and reporters when running in node. - */ - -if (!process.browser) { - var cwd = process.cwd(); - module.paths.push(cwd, path.join(cwd, 'node_modules')); -} - -/** - * Expose internals. - */ - -/** - * @public - * @class utils - * @memberof Mocha - */ -exports.utils = utils; -exports.interfaces = require('./interfaces'); -/** - * - * @memberof Mocha - * @public - */ -exports.reporters = reporters; -exports.Runnable = require('./runnable'); -exports.Context = require('./context'); -/** - * - * @memberof Mocha - */ -exports.Runner = require('./runner'); -exports.Suite = require('./suite'); -exports.Hook = require('./hook'); -exports.Test = require('./test'); - -/** - * Return image `name` path. - * - * @private - * @param {string} name - * @return {string} - */ -function image(name) { - return path.join(__dirname, '..', 'assets', 'growl', name + '.png'); -} - -/** - * Set up mocha with `options`. - * - * Options: - * - * - `ui` name "bdd", "tdd", "exports" etc - * - `reporter` reporter instance, defaults to `mocha.reporters.spec` - * - `globals` array of accepted globals - * - `timeout` timeout in milliseconds - * - `retries` number of times to retry failed tests - * - `bail` bail on the first test failure - * - `slow` milliseconds to wait before considering a test slow - * - `ignoreLeaks` ignore global leaks - * - `fullTrace` display the full stack-trace on failing - * - `grep` string or regexp to filter tests with - * - * @class Mocha - * @param {Object} options - */ -function Mocha(options) { - options = options || {}; - this.files = []; - this.options = options; - if (options.grep) { - this.grep(new RegExp(options.grep)); - } - if (options.fgrep) { - this.fgrep(options.fgrep); - } - this.suite = new exports.Suite('', new exports.Context()); - this.ui(options.ui); - this.bail(options.bail); - this.reporter(options.reporter, options.reporterOptions); - if (typeof options.timeout !== 'undefined' && options.timeout !== null) { - this.timeout(options.timeout); - } - if (typeof options.retries !== 'undefined' && options.retries !== null) { - this.retries(options.retries); - } - this.useColors(options.useColors); - if (options.enableTimeouts !== null) { - this.enableTimeouts(options.enableTimeouts); - } - if (options.slow) { - this.slow(options.slow); - } -} - -/** - * Enable or disable bailing on the first failure. - * - * @public - * @api public - * @param {boolean} [bail] - */ -Mocha.prototype.bail = function(bail) { - if (!arguments.length) { - bail = true; - } - this.suite.bail(bail); - return this; -}; - -/** - * Add test `file`. - * - * @public - * @api public - * @param {string} file - */ -Mocha.prototype.addFile = function(file) { - this.files.push(file); - return this; -}; - -/** - * Set reporter to `reporter`, defaults to "spec". - * - * @public - * @param {String|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - * @api public - * @param {string|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - */ -Mocha.prototype.reporter = function(reporter, reporterOptions) { - if (typeof reporter === 'function') { - this._reporter = reporter; - } else { - reporter = reporter || 'spec'; - var _reporter; - // Try to load a built-in reporter. - if (reporters[reporter]) { - _reporter = reporters[reporter]; - } - // Try to load reporters from process.cwd() and node_modules - if (!_reporter) { - try { - _reporter = require(reporter); - } catch (err) { - if (err.message.indexOf('Cannot find module') !== -1) { - // Try to load reporters from a path (absolute or relative) - try { - _reporter = require(path.resolve(process.cwd(), reporter)); - } catch (_err) { - err.message.indexOf('Cannot find module') !== -1 - ? console.warn('"' + reporter + '" reporter not found') - : console.warn( - '"' + - reporter + - '" reporter blew up with error:\n' + - err.stack - ); - } - } else { - console.warn( - '"' + reporter + '" reporter blew up with error:\n' + err.stack - ); - } - } - } - if (!_reporter && reporter === 'teamcity') { - console.warn( - 'The Teamcity reporter was moved to a package named ' + - 'mocha-teamcity-reporter ' + - '(https://npmjs.org/package/mocha-teamcity-reporter).' - ); - } - if (!_reporter) { - throw new Error('invalid reporter "' + reporter + '"'); - } - this._reporter = _reporter; - } - this.options.reporterOptions = reporterOptions; - return this; -}; - -/** - * Set test UI `name`, defaults to "bdd". - * @public - * @api public - * @param {string} bdd - */ -Mocha.prototype.ui = function(name) { - name = name || 'bdd'; - this._ui = exports.interfaces[name]; - if (!this._ui) { - try { - this._ui = require(name); - } catch (err) { - throw new Error('invalid interface "' + name + '"'); - } - } - this._ui = this._ui(this.suite); - - this.suite.on('pre-require', function(context) { - exports.afterEach = context.afterEach || context.teardown; - exports.after = context.after || context.suiteTeardown; - exports.beforeEach = context.beforeEach || context.setup; - exports.before = context.before || context.suiteSetup; - exports.describe = context.describe || context.suite; - exports.it = context.it || context.test; - exports.xit = context.xit || context.test.skip; - exports.setup = context.setup || context.beforeEach; - exports.suiteSetup = context.suiteSetup || context.before; - exports.suiteTeardown = context.suiteTeardown || context.after; - exports.suite = context.suite || context.describe; - exports.teardown = context.teardown || context.afterEach; - exports.test = context.test || context.it; - exports.run = context.run; - }); - - return this; -}; - -/** - * Load registered files. - * - * @api private - */ -Mocha.prototype.loadFiles = function(fn) { - var self = this; - var suite = this.suite; - this.files.forEach(function(file) { - file = path.resolve(file); - suite.emit('pre-require', global, file, self); - suite.emit('require', require(file), file, self); - suite.emit('post-require', global, file, self); - }); - fn && fn(); -}; - -/** - * Enable growl support. - * - * @api private - */ -Mocha.prototype._growl = function(runner, reporter) { - var notify = require('growl'); - - runner.on('end', function() { - var stats = reporter.stats; - if (stats.failures) { - var msg = stats.failures + ' of ' + runner.total + ' tests failed'; - notify(msg, {name: 'mocha', title: 'Failed', image: image('error')}); - } else { - notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', { - name: 'mocha', - title: 'Passed', - image: image('ok') - }); - } - }); -}; - -/** - * Escape string and add it to grep as a regexp. - * - * @public - * @api public - * @param str - * @returns {Mocha} - */ -Mocha.prototype.fgrep = function(str) { - return this.grep(new RegExp(escapeRe(str))); -}; - -/** - * Add regexp to grep, if `re` is a string it is escaped. - * - * @public - * @param {RegExp|String} re - * @return {Mocha} - * @api public - * @param {RegExp|string} re - * @return {Mocha} - */ -Mocha.prototype.grep = function(re) { - if (utils.isString(re)) { - // extract args if it's regex-like, i.e: [string, pattern, flag] - var arg = re.match(/^\/(.*)\/(g|i|)$|.*/); - this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); - } else { - this.options.grep = re; - } - return this; -}; -/** - * Invert `.grep()` matches. - * - * @public - * @return {Mocha} - * @api public - */ -Mocha.prototype.invert = function() { - this.options.invert = true; - return this; -}; - -/** - * Ignore global leaks. - * - * @public - * @param {Boolean} ignore - * @return {Mocha} - * @api public - * @param {boolean} ignore - * @return {Mocha} - */ -Mocha.prototype.ignoreLeaks = function(ignore) { - this.options.ignoreLeaks = Boolean(ignore); - return this; -}; - -/** - * Enable global leak checking. - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.checkLeaks = function() { - this.options.ignoreLeaks = false; - return this; -}; - -/** - * Display long stack-trace on failing - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.fullTrace = function() { - this.options.fullStackTrace = true; - return this; -}; - -/** - * Enable growl support. - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.growl = function() { - this.options.growl = true; - return this; -}; - -/** - * Ignore `globals` array or string. - * - * @param {Array|String} globals - * @return {Mocha} - * @api public - * @public - * @param {Array|string} globals - * @return {Mocha} - */ -Mocha.prototype.globals = function(globals) { - this.options.globals = (this.options.globals || []).concat(globals); - return this; -}; - -/** - * Emit color output. - * - * @param {Boolean} colors - * @return {Mocha} - * @api public - * @public - * @param {boolean} colors - * @return {Mocha} - */ -Mocha.prototype.useColors = function(colors) { - if (colors !== undefined) { - this.options.useColors = colors; - } - return this; -}; - -/** - * Use inline diffs rather than +/-. - * - * @param {Boolean} inlineDiffs - * @return {Mocha} - * @api public - * @public - * @param {boolean} inlineDiffs - * @return {Mocha} - */ -Mocha.prototype.useInlineDiffs = function(inlineDiffs) { - this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs; - return this; -}; - -/** - * Do not show diffs at all. - * - * @param {Boolean} hideDiff - * @return {Mocha} - * @api public - * @public - * @param {boolean} hideDiff - * @return {Mocha} - */ -Mocha.prototype.hideDiff = function(hideDiff) { - this.options.hideDiff = hideDiff !== undefined && hideDiff; - return this; -}; - -/** - * Set the timeout in milliseconds. - * - * @param {Number} timeout - * @return {Mocha} - * @api public - * @public - * @param {number} timeout - * @return {Mocha} - */ -Mocha.prototype.timeout = function(timeout) { - this.suite.timeout(timeout); - return this; -}; - -/** - * Set the number of times to retry failed tests. - * - * @param {Number} retry times - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.retries = function(n) { - this.suite.retries(n); - return this; -}; - -/** - * Set slowness threshold in milliseconds. - * - * @param {Number} slow - * @return {Mocha} - * @api public - * @public - * @param {number} slow - * @return {Mocha} - */ -Mocha.prototype.slow = function(slow) { - this.suite.slow(slow); - return this; -}; - -/** - * Enable timeouts. - * - * @param {Boolean} enabled - * @return {Mocha} - * @api public - * @public - * @param {boolean} enabled - * @return {Mocha} - */ -Mocha.prototype.enableTimeouts = function(enabled) { - this.suite.enableTimeouts( - arguments.length && enabled !== undefined ? enabled : true - ); - return this; -}; - -/** - * Makes all tests async (accepting a callback) - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.asyncOnly = function() { - this.options.asyncOnly = true; - return this; -}; - -/** - * Disable syntax highlighting (in browser). - * - * @api public - * @public - */ -Mocha.prototype.noHighlighting = function() { - this.options.noHighlighting = true; - return this; -}; - -/** - * Enable uncaught errors to propagate (in browser). - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.allowUncaught = function() { - this.options.allowUncaught = true; - return this; -}; - -/** - * Delay root suite execution. - * @returns {Mocha} - */ -Mocha.prototype.delay = function delay() { - this.options.delay = true; - return this; -}; - -/** - * Tests marked only fail the suite - * @returns {Mocha} - */ -Mocha.prototype.forbidOnly = function() { - this.options.forbidOnly = true; - return this; -}; - -/** - * Pending tests and tests marked skip fail the suite - * @returns {Mocha} - */ -Mocha.prototype.forbidPending = function() { - this.options.forbidPending = true; - return this; -}; - -/** - * Run tests and invoke `fn()` when complete. - * - * Note that `loadFiles` relies on Node's `require` to execute - * the test interface functions and will be subject to the - * cache - if the files are already in the `require` cache, - * they will effectively be skipped. Therefore, to run tests - * multiple times or to run tests in files that are already - * in the `require` cache, make sure to clear them from the - * cache first in whichever manner best suits your needs. - * - * @api public - * @public - * @param {Function} fn - * @return {Runner} - */ -Mocha.prototype.run = function(fn) { - if (this.files.length) { - this.loadFiles(); - } - var suite = this.suite; - var options = this.options; - options.files = this.files; - var runner = new exports.Runner(suite, options.delay); - var reporter = new this._reporter(runner, options); - runner.ignoreLeaks = options.ignoreLeaks !== false; - runner.fullStackTrace = options.fullStackTrace; - runner.asyncOnly = options.asyncOnly; - runner.allowUncaught = options.allowUncaught; - runner.forbidOnly = options.forbidOnly; - runner.forbidPending = options.forbidPending; - if (options.grep) { - runner.grep(options.grep, options.invert); - } - if (options.globals) { - runner.globals(options.globals); - } - if (options.growl) { - this._growl(runner, reporter); - } - if (options.useColors !== undefined) { - exports.reporters.Base.useColors = options.useColors; - } - exports.reporters.Base.inlineDiffs = options.useInlineDiffs; - exports.reporters.Base.hideDiff = options.hideDiff; - - function done(failures) { - if (reporter.done) { - reporter.done(failures, fn); - } else { - fn && fn(failures); - } - } - - return runner.run(done); -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/ms.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/ms.js deleted file mode 100644 index 91c55af..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/ms.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict'; -/** - * @module milliseconds - */ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * @memberof Mocha - * @public - * @api public - * @param {string|number} val - * @return {string|number} - */ -module.exports = function(val) { - if (typeof val === 'string') { - return parse(val); - } - return format(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @api private - * @param {string} str - * @return {number} - */ -function parse(str) { - var match = /^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 's': - return n * s; - case 'ms': - return n; - default: - // No default case - } -} - -/** - * Format for `ms`. - * - * @api private - * @param {number} ms - * @return {string} - */ -function format(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/pending.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/pending.js deleted file mode 100644 index bb9a505..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/pending.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -module.exports = Pending; - -/** - * Initialize a new `Pending` error with the given message. - * - * @param {string} message - */ -function Pending(message) { - this.message = message; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js deleted file mode 100644 index fd72c17..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js +++ /dev/null @@ -1,540 +0,0 @@ -'use strict'; -/** - * @module Base - */ -/** - * Module dependencies. - */ - -var tty = require('tty'); -var diff = require('diff'); -var ms = require('../ms'); -var utils = require('../utils'); -var supportsColor = process.browser ? null : require('supports-color'); - -/** - * Expose `Base`. - */ - -exports = module.exports = Base; - -/** - * Save timer references to avoid Sinon interfering. - * See: https://github.com/mochajs/mocha/issues/237 - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Check if both stdio streams are associated with a tty. - */ - -var isatty = tty.isatty(1) && tty.isatty(2); - -/** - * Enable coloring by default, except in the browser interface. - */ - -exports.useColors = - !process.browser && - (supportsColor.stdout || process.env.MOCHA_COLORS !== undefined); - -/** - * Inline diffs instead of +/- - */ - -exports.inlineDiffs = false; - -/** - * Default color map. - */ - -exports.colors = { - pass: 90, - fail: 31, - 'bright pass': 92, - 'bright fail': 91, - 'bright yellow': 93, - pending: 36, - suite: 0, - 'error title': 0, - 'error message': 31, - 'error stack': 90, - checkmark: 32, - fast: 90, - medium: 33, - slow: 31, - green: 32, - light: 90, - 'diff gutter': 90, - 'diff added': 32, - 'diff removed': 31 -}; - -/** - * Default symbol map. - */ - -exports.symbols = { - ok: '✓', - err: '✖', - dot: '․', - comma: ',', - bang: '!' -}; - -// With node.js on Windows: use symbols available in terminal default fonts -if (process.platform === 'win32') { - exports.symbols.ok = '\u221A'; - exports.symbols.err = '\u00D7'; - exports.symbols.dot = '.'; -} - -/** - * Color `str` with the given `type`, - * allowing colors to be disabled, - * as well as user-defined color - * schemes. - * - * @param {string} type - * @param {string} str - * @return {string} - * @api private - */ -var color = (exports.color = function(type, str) { - if (!exports.useColors) { - return String(str); - } - return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; -}); - -/** - * Expose term window size, with some defaults for when stderr is not a tty. - */ - -exports.window = { - width: 75 -}; - -if (isatty) { - exports.window.width = process.stdout.getWindowSize - ? process.stdout.getWindowSize(1)[0] - : tty.getWindowSize()[1]; -} - -/** - * Expose some basic cursor interactions that are common among reporters. - */ - -exports.cursor = { - hide: function() { - isatty && process.stdout.write('\u001b[?25l'); - }, - - show: function() { - isatty && process.stdout.write('\u001b[?25h'); - }, - - deleteLine: function() { - isatty && process.stdout.write('\u001b[2K'); - }, - - beginningOfLine: function() { - isatty && process.stdout.write('\u001b[0G'); - }, - - CR: function() { - if (isatty) { - exports.cursor.deleteLine(); - exports.cursor.beginningOfLine(); - } else { - process.stdout.write('\r'); - } - } -}; - -function showDiff(err) { - return ( - err && - err.showDiff !== false && - sameType(err.actual, err.expected) && - err.expected !== undefined - ); -} - -function stringifyDiffObjs(err) { - if (!utils.isString(err.actual) || !utils.isString(err.expected)) { - err.actual = utils.stringify(err.actual); - err.expected = utils.stringify(err.expected); - } -} - -/** - * Returns a diff between 2 strings with coloured ANSI output. - * - * The diff will be either inline or unified dependant on the value - * of `Base.inlineDiff`. - * - * @param {string} actual - * @param {string} expected - * @return {string} Diff - */ -var generateDiff = (exports.generateDiff = function(actual, expected) { - return exports.inlineDiffs - ? inlineDiff(actual, expected) - : unifiedDiff(actual, expected); -}); - -/** - * Output the given `failures` as a list. - * - * @public - * @memberof Mocha.reporters.Base - * @variation 1 - * @param {Array} failures - * @api public - */ - -exports.list = function(failures) { - console.log(); - failures.forEach(function(test, i) { - // format - var fmt = - color('error title', ' %s) %s:\n') + - color('error message', ' %s') + - color('error stack', '\n%s\n'); - - // msg - var msg; - var err = test.err; - var message; - if (err.message && typeof err.message.toString === 'function') { - message = err.message + ''; - } else if (typeof err.inspect === 'function') { - message = err.inspect() + ''; - } else { - message = ''; - } - var stack = err.stack || message; - var index = message ? stack.indexOf(message) : -1; - - if (index === -1) { - msg = message; - } else { - index += message.length; - msg = stack.slice(0, index); - // remove msg from stack - stack = stack.slice(index + 1); - } - - // uncaught - if (err.uncaught) { - msg = 'Uncaught ' + msg; - } - // explicitly show diff - if (!exports.hideDiff && showDiff(err)) { - stringifyDiffObjs(err); - fmt = - color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); - var match = message.match(/^([^:]+): expected/); - msg = '\n ' + color('error message', match ? match[1] : msg); - - msg += generateDiff(err.actual, err.expected); - } - - // indent stack trace - stack = stack.replace(/^/gm, ' '); - - // indented test title - var testTitle = ''; - test.titlePath().forEach(function(str, index) { - if (index !== 0) { - testTitle += '\n '; - } - for (var i = 0; i < index; i++) { - testTitle += ' '; - } - testTitle += str; - }); - - console.log(fmt, i + 1, testTitle, msg, stack); - }); -}; - -/** - * Initialize a new `Base` reporter. - * - * All other reporters generally - * inherit from this reporter, providing - * stats such as test duration, number - * of tests passed / failed etc. - * - * @memberof Mocha.reporters - * @public - * @class - * @param {Runner} runner - * @api public - */ - -function Base(runner) { - var stats = (this.stats = { - suites: 0, - tests: 0, - passes: 0, - pending: 0, - failures: 0 - }); - var failures = (this.failures = []); - - if (!runner) { - return; - } - this.runner = runner; - - runner.stats = stats; - - runner.on('start', function() { - stats.start = new Date(); - }); - - runner.on('suite', function(suite) { - stats.suites = stats.suites || 0; - suite.root || stats.suites++; - }); - - runner.on('test end', function() { - stats.tests = stats.tests || 0; - stats.tests++; - }); - - runner.on('pass', function(test) { - stats.passes = stats.passes || 0; - - if (test.duration > test.slow()) { - test.speed = 'slow'; - } else if (test.duration > test.slow() / 2) { - test.speed = 'medium'; - } else { - test.speed = 'fast'; - } - - stats.passes++; - }); - - runner.on('fail', function(test, err) { - stats.failures = stats.failures || 0; - stats.failures++; - if (showDiff(err)) { - stringifyDiffObjs(err); - } - test.err = err; - failures.push(test); - }); - - runner.once('end', function() { - stats.end = new Date(); - stats.duration = stats.end - stats.start; - }); - - runner.on('pending', function() { - stats.pending++; - }); -} - -/** - * Output common epilogue used by many of - * the bundled reporters. - * - * @memberof Mocha.reporters.Base - * @public - * @api public - */ -Base.prototype.epilogue = function() { - var stats = this.stats; - var fmt; - - console.log(); - - // passes - fmt = - color('bright pass', ' ') + - color('green', ' %d passing') + - color('light', ' (%s)'); - - console.log(fmt, stats.passes || 0, ms(stats.duration)); - - // pending - if (stats.pending) { - fmt = color('pending', ' ') + color('pending', ' %d pending'); - - console.log(fmt, stats.pending); - } - - // failures - if (stats.failures) { - fmt = color('fail', ' %d failing'); - - console.log(fmt, stats.failures); - - Base.list(this.failures); - console.log(); - } - - console.log(); -}; - -/** - * Pad the given `str` to `len`. - * - * @api private - * @param {string} str - * @param {string} len - * @return {string} - */ -function pad(str, len) { - str = String(str); - return Array(len - str.length + 1).join(' ') + str; -} - -/** - * Returns an inline diff between 2 strings with coloured ANSI output. - * - * @api private - * @param {String} actual - * @param {String} expected - * @return {string} Diff - */ -function inlineDiff(actual, expected) { - var msg = errorDiff(actual, expected); - - // linenos - var lines = msg.split('\n'); - if (lines.length > 4) { - var width = String(lines.length).length; - msg = lines - .map(function(str, i) { - return pad(++i, width) + ' |' + ' ' + str; - }) - .join('\n'); - } - - // legend - msg = - '\n' + - color('diff removed', 'actual') + - ' ' + - color('diff added', 'expected') + - '\n\n' + - msg + - '\n'; - - // indent - msg = msg.replace(/^/gm, ' '); - return msg; -} - -/** - * Returns a unified diff between two strings with coloured ANSI output. - * - * @api private - * @param {String} actual - * @param {String} expected - * @return {string} The diff. - */ -function unifiedDiff(actual, expected) { - var indent = ' '; - function cleanUp(line) { - if (line[0] === '+') { - return indent + colorLines('diff added', line); - } - if (line[0] === '-') { - return indent + colorLines('diff removed', line); - } - if (line.match(/@@/)) { - return '--'; - } - if (line.match(/\\ No newline/)) { - return null; - } - return indent + line; - } - function notBlank(line) { - return typeof line !== 'undefined' && line !== null; - } - var msg = diff.createPatch('string', actual, expected); - var lines = msg.split('\n').splice(5); - return ( - '\n ' + - colorLines('diff added', '+ expected') + - ' ' + - colorLines('diff removed', '- actual') + - '\n\n' + - lines - .map(cleanUp) - .filter(notBlank) - .join('\n') - ); -} - -/** - * Return a character diff for `err`. - * - * @api private - * @param {String} actual - * @param {String} expected - * @return {string} the diff - */ -function errorDiff(actual, expected) { - return diff - .diffWordsWithSpace(actual, expected) - .map(function(str) { - if (str.added) { - return colorLines('diff added', str.value); - } - if (str.removed) { - return colorLines('diff removed', str.value); - } - return str.value; - }) - .join(''); -} - -/** - * Color lines for `str`, using the color `name`. - * - * @api private - * @param {string} name - * @param {string} str - * @return {string} - */ -function colorLines(name, str) { - return str - .split('\n') - .map(function(str) { - return color(name, str); - }) - .join('\n'); -} - -/** - * Object#toString reference. - */ -var objToString = Object.prototype.toString; - -/** - * Check that a / b have the same type. - * - * @api private - * @param {Object} a - * @param {Object} b - * @return {boolean} - */ -function sameType(a, b) { - return objToString.call(a) === objToString.call(b); -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js.orig b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js.orig deleted file mode 100644 index 4b7411f..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/base.js.orig +++ /dev/null @@ -1,498 +0,0 @@ -'use strict'; - -/** - * Module dependencies. - */ - -var tty = require('tty'); -var diff = require('diff'); -var ms = require('../ms'); -var utils = require('../utils'); -var supportsColor = process.browser ? null : require('supports-color'); - -/** - * Expose `Base`. - */ - -exports = module.exports = Base; - -/** - * Save timer references to avoid Sinon interfering. - * See: https://github.com/mochajs/mocha/issues/237 - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Check if both stdio streams are associated with a tty. - */ - -var isatty = tty.isatty(1) && tty.isatty(2); - -/** - * Enable coloring by default, except in the browser interface. - */ - -exports.useColors = !process.browser && (supportsColor || (process.env.MOCHA_COLORS !== undefined)); - -/** - * Inline diffs instead of +/- - */ - -exports.inlineDiffs = false; - -/** - * Default color map. - */ - -exports.colors = { - pass: 90, - fail: 31, - 'bright pass': 92, - 'bright fail': 91, - 'bright yellow': 93, - pending: 36, - suite: 0, - 'error title': 0, - 'error message': 31, - 'error stack': 90, - checkmark: 32, - fast: 90, - medium: 33, - slow: 31, - green: 32, - light: 90, - 'diff gutter': 90, - 'diff added': 32, - 'diff removed': 31 -}; - -/** - * Default symbol map. - */ - -exports.symbols = { - ok: '✓', - err: '✖', - dot: '․', - comma: ',', - bang: '!' -}; - -// With node.js on Windows: use symbols available in terminal default fonts -if (process.platform === 'win32') { - exports.symbols.ok = '\u221A'; - exports.symbols.err = '\u00D7'; - exports.symbols.dot = '.'; -} - -/** - * Color `str` with the given `type`, - * allowing colors to be disabled, - * as well as user-defined color - * schemes. - * - * @param {string} type - * @param {string} str - * @return {string} - * @api private - */ -var color = exports.color = function (type, str) { - if (!exports.useColors) { - return String(str); - } - return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; -}; - -/** - * Expose term window size, with some defaults for when stderr is not a tty. - */ - -exports.window = { - width: 75 -}; - -if (isatty) { - exports.window.width = process.stdout.getWindowSize - ? process.stdout.getWindowSize(1)[0] - : tty.getWindowSize()[1]; -} - -/** - * Expose some basic cursor interactions that are common among reporters. - */ - -exports.cursor = { - hide: function () { - isatty && process.stdout.write('\u001b[?25l'); - }, - - show: function () { - isatty && process.stdout.write('\u001b[?25h'); - }, - - deleteLine: function () { - isatty && process.stdout.write('\u001b[2K'); - }, - - beginningOfLine: function () { - isatty && process.stdout.write('\u001b[0G'); - }, - - CR: function () { - if (isatty) { - exports.cursor.deleteLine(); - exports.cursor.beginningOfLine(); - } else { - process.stdout.write('\r'); - } - } -}; - -function showDiff (err) { - return err && err.showDiff !== false && sameType(err.actual, err.expected) && err.expected !== undefined; -} - -function stringifyDiffObjs (err) { - if (!utils.isString(err.actual) || !utils.isString(err.expected)) { - err.actual = utils.stringify(err.actual); - err.expected = utils.stringify(err.expected); - } -} - -/** - * Output the given `failures` as a list. - * - * @param {Array} failures - * @api public - */ - -exports.list = function (failures) { - console.log(); - failures.forEach(function (test, i) { - // format - var fmt = color('error title', ' %s) %s:\n') + - color('error message', ' %s') + - color('error stack', '\n%s\n'); - - // msg - var msg; - var err = test.err; - var message; - if (err.message && typeof err.message.toString === 'function') { - message = err.message + ''; - } else if (typeof err.inspect === 'function') { - message = err.inspect() + ''; - } else { - message = ''; - } - var stack = err.stack || message; - var index = message ? stack.indexOf(message) : -1; - - if (index === -1) { - msg = message; - } else { - index += message.length; - msg = stack.slice(0, index); - // remove msg from stack - stack = stack.slice(index + 1); - } - - // uncaught - if (err.uncaught) { - msg = 'Uncaught ' + msg; - } - - // explicitly show diff -<<<<<<< HEAD - if (showDiff(err)) { - stringifyDiffObjs(err); -======= - if (exports.hideDiff !== true && err.showDiff !== false && sameType(actual, expected) && expected !== undefined) { - escape = false; - if (!(utils.isString(actual) && utils.isString(expected))) { - err.actual = actual = utils.stringify(actual); - err.expected = expected = utils.stringify(expected); - } - ->>>>>>> Add --no-diff option (fixes mochajs/mocha#2514) - fmt = color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); - var match = message.match(/^([^:]+): expected/); - msg = '\n ' + color('error message', match ? match[1] : msg); - - if (exports.inlineDiffs) { - msg += inlineDiff(err); - } else { - msg += unifiedDiff(err); - } - } - - // indent stack trace - stack = stack.replace(/^/gm, ' '); - - // indented test title - var testTitle = ''; - test.titlePath().forEach(function (str, index) { - if (index !== 0) { - testTitle += '\n '; - } - for (var i = 0; i < index; i++) { - testTitle += ' '; - } - testTitle += str; - }); - - console.log(fmt, (i + 1), testTitle, msg, stack); - }); -}; - -/** - * Initialize a new `Base` reporter. - * - * All other reporters generally - * inherit from this reporter, providing - * stats such as test duration, number - * of tests passed / failed etc. - * - * @param {Runner} runner - * @api public - */ - -function Base (runner) { - var stats = this.stats = { suites: 0, tests: 0, passes: 0, pending: 0, failures: 0 }; - var failures = this.failures = []; - - if (!runner) { - return; - } - this.runner = runner; - - runner.stats = stats; - - runner.on('start', function () { - stats.start = new Date(); - }); - - runner.on('suite', function (suite) { - stats.suites = stats.suites || 0; - suite.root || stats.suites++; - }); - - runner.on('test end', function () { - stats.tests = stats.tests || 0; - stats.tests++; - }); - - runner.on('pass', function (test) { - stats.passes = stats.passes || 0; - - if (test.duration > test.slow()) { - test.speed = 'slow'; - } else if (test.duration > test.slow() / 2) { - test.speed = 'medium'; - } else { - test.speed = 'fast'; - } - - stats.passes++; - }); - - runner.on('fail', function (test, err) { - stats.failures = stats.failures || 0; - stats.failures++; - if (showDiff(err)) { - stringifyDiffObjs(err); - } - test.err = err; - failures.push(test); - }); - - runner.on('end', function () { - stats.end = new Date(); - stats.duration = new Date() - stats.start; - }); - - runner.on('pending', function () { - stats.pending++; - }); -} - -/** - * Output common epilogue used by many of - * the bundled reporters. - * - * @api public - */ -Base.prototype.epilogue = function () { - var stats = this.stats; - var fmt; - - console.log(); - - // passes - fmt = color('bright pass', ' ') + - color('green', ' %d passing') + - color('light', ' (%s)'); - - console.log(fmt, - stats.passes || 0, - ms(stats.duration)); - - // pending - if (stats.pending) { - fmt = color('pending', ' ') + - color('pending', ' %d pending'); - - console.log(fmt, stats.pending); - } - - // failures - if (stats.failures) { - fmt = color('fail', ' %d failing'); - - console.log(fmt, stats.failures); - - Base.list(this.failures); - console.log(); - } - - console.log(); -}; - -/** - * Pad the given `str` to `len`. - * - * @api private - * @param {string} str - * @param {string} len - * @return {string} - */ -function pad (str, len) { - str = String(str); - return Array(len - str.length + 1).join(' ') + str; -} - -/** - * Returns an inline diff between 2 strings with coloured ANSI output - * - * @api private - * @param {Error} err with actual/expected - * @return {string} Diff - */ -function inlineDiff (err) { - var msg = errorDiff(err); - - // linenos - var lines = msg.split('\n'); - if (lines.length > 4) { - var width = String(lines.length).length; - msg = lines.map(function (str, i) { - return pad(++i, width) + ' |' + ' ' + str; - }).join('\n'); - } - - // legend - msg = '\n' + - color('diff removed', 'actual') + - ' ' + - color('diff added', 'expected') + - '\n\n' + - msg + - '\n'; - - // indent - msg = msg.replace(/^/gm, ' '); - return msg; -} - -/** - * Returns a unified diff between two strings. - * - * @api private - * @param {Error} err with actual/expected - * @return {string} The diff. - */ -function unifiedDiff (err) { - var indent = ' '; - function cleanUp (line) { - if (line[0] === '+') { - return indent + colorLines('diff added', line); - } - if (line[0] === '-') { - return indent + colorLines('diff removed', line); - } - if (line.match(/@@/)) { - return '--'; - } - if (line.match(/\\ No newline/)) { - return null; - } - return indent + line; - } - function notBlank (line) { - return typeof line !== 'undefined' && line !== null; - } - var msg = diff.createPatch('string', err.actual, err.expected); - var lines = msg.split('\n').splice(5); - return '\n ' + - colorLines('diff added', '+ expected') + ' ' + - colorLines('diff removed', '- actual') + - '\n\n' + - lines.map(cleanUp).filter(notBlank).join('\n'); -} - -/** - * Return a character diff for `err`. - * - * @api private - * @param {Error} err - * @return {string} - */ -function errorDiff (err) { - return diff.diffWordsWithSpace(err.actual, err.expected).map(function (str) { - if (str.added) { - return colorLines('diff added', str.value); - } - if (str.removed) { - return colorLines('diff removed', str.value); - } - return str.value; - }).join(''); -} - -/** - * Color lines for `str`, using the color `name`. - * - * @api private - * @param {string} name - * @param {string} str - * @return {string} - */ -function colorLines (name, str) { - return str.split('\n').map(function (str) { - return color(name, str); - }).join('\n'); -} - -/** - * Object#toString reference. - */ -var objToString = Object.prototype.toString; - -/** - * Check that a / b have the same type. - * - * @api private - * @param {Object} a - * @param {Object} b - * @return {boolean} - */ -function sameType (a, b) { - return objToString.call(a) === objToString.call(b); -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/doc.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/doc.js deleted file mode 100644 index 5cb0bda..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/doc.js +++ /dev/null @@ -1,78 +0,0 @@ -'use strict'; -/** - * @module Doc - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Expose `Doc`. - */ - -exports = module.exports = Doc; - -/** - * Initialize a new `Doc` reporter. - * - * @class - * @memberof Mocha.reporters - * @extends {Base} - * @public - * @param {Runner} runner - * @api public - */ -function Doc(runner) { - Base.call(this, runner); - - var indents = 2; - - function indent() { - return Array(indents).join(' '); - } - - runner.on('suite', function(suite) { - if (suite.root) { - return; - } - ++indents; - console.log('%s
', indent()); - ++indents; - console.log('%s

%s

', indent(), utils.escape(suite.title)); - console.log('%s
', indent()); - }); - - runner.on('suite end', function(suite) { - if (suite.root) { - return; - } - console.log('%s
', indent()); - --indents; - console.log('%s
', indent()); - --indents; - }); - - runner.on('pass', function(test) { - console.log('%s
%s
', indent(), utils.escape(test.title)); - var code = utils.escape(utils.clean(test.body)); - console.log('%s
%s
', indent(), code); - }); - - runner.on('fail', function(test, err) { - console.log( - '%s
%s
', - indent(), - utils.escape(test.title) - ); - var code = utils.escape(utils.clean(test.body)); - console.log( - '%s
%s
', - indent(), - code - ); - console.log('%s
%s
', indent(), utils.escape(err)); - }); -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/dot.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/dot.js deleted file mode 100644 index 22320e3..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/dot.js +++ /dev/null @@ -1,74 +0,0 @@ -'use strict'; -/** - * @module Dot - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Dot`. - */ - -exports = module.exports = Dot; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @public - * @api public - * @param {Runner} runner - */ -function Dot(runner) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var n = -1; - - runner.on('start', function() { - process.stdout.write('\n'); - }); - - runner.on('pending', function() { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('pending', Base.symbols.comma)); - }); - - runner.on('pass', function(test) { - if (++n % width === 0) { - process.stdout.write('\n '); - } - if (test.speed === 'slow') { - process.stdout.write(color('bright yellow', Base.symbols.dot)); - } else { - process.stdout.write(color(test.speed, Base.symbols.dot)); - } - }); - - runner.on('fail', function() { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('fail', Base.symbols.bang)); - }); - - runner.once('end', function() { - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Dot, Base); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/html.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/html.js deleted file mode 100644 index 85a5b1b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/html.js +++ /dev/null @@ -1,388 +0,0 @@ -'use strict'; - -/* eslint-env browser */ -/** - * @module HTML - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var Progress = require('../browser/progress'); -var escapeRe = require('escape-string-regexp'); -var escape = utils.escape; - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `HTML`. - */ - -exports = module.exports = HTML; - -/** - * Stats template. - */ - -var statsTemplate = - ''; - -var playIcon = '‣'; - -/** - * Initialize a new `HTML` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function HTML(runner) { - Base.call(this, runner); - - var self = this; - var stats = this.stats; - var stat = fragment(statsTemplate); - var items = stat.getElementsByTagName('li'); - var passes = items[1].getElementsByTagName('em')[0]; - var passesLink = items[1].getElementsByTagName('a')[0]; - var failures = items[2].getElementsByTagName('em')[0]; - var failuresLink = items[2].getElementsByTagName('a')[0]; - var duration = items[3].getElementsByTagName('em')[0]; - var canvas = stat.getElementsByTagName('canvas')[0]; - var report = fragment('
    '); - var stack = [report]; - var progress; - var ctx; - var root = document.getElementById('mocha'); - - if (canvas.getContext) { - var ratio = window.devicePixelRatio || 1; - canvas.style.width = canvas.width; - canvas.style.height = canvas.height; - canvas.width *= ratio; - canvas.height *= ratio; - ctx = canvas.getContext('2d'); - ctx.scale(ratio, ratio); - progress = new Progress(); - } - - if (!root) { - return error('#mocha div missing, add it to your document'); - } - - // pass toggle - on(passesLink, 'click', function(evt) { - evt.preventDefault(); - unhide(); - var name = /pass/.test(report.className) ? '' : ' pass'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test pass'); - } - }); - - // failure toggle - on(failuresLink, 'click', function(evt) { - evt.preventDefault(); - unhide(); - var name = /fail/.test(report.className) ? '' : ' fail'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test fail'); - } - }); - - root.appendChild(stat); - root.appendChild(report); - - if (progress) { - progress.size(40); - } - - runner.on('suite', function(suite) { - if (suite.root) { - return; - } - - // suite - var url = self.suiteURL(suite); - var el = fragment( - '
  • %s

  • ', - url, - escape(suite.title) - ); - - // container - stack[0].appendChild(el); - stack.unshift(document.createElement('ul')); - el.appendChild(stack[0]); - }); - - runner.on('suite end', function(suite) { - if (suite.root) { - updateStats(); - return; - } - stack.shift(); - }); - - runner.on('pass', function(test) { - var url = self.testURL(test); - var markup = - '
  • %e%ems ' + - '' + - playIcon + - '

  • '; - var el = fragment(markup, test.speed, test.title, test.duration, url); - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on('fail', function(test) { - var el = fragment( - '
  • %e ' + - playIcon + - '

  • ', - test.title, - self.testURL(test) - ); - var stackString; // Note: Includes leading newline - var message = test.err.toString(); - - // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we - // check for the result of the stringifying. - if (message === '[object Error]') { - message = test.err.message; - } - - if (test.err.stack) { - var indexOfMessage = test.err.stack.indexOf(test.err.message); - if (indexOfMessage === -1) { - stackString = test.err.stack; - } else { - stackString = test.err.stack.substr( - test.err.message.length + indexOfMessage - ); - } - } else if (test.err.sourceURL && test.err.line !== undefined) { - // Safari doesn't give you a stack. Let's at least provide a source line. - stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')'; - } - - stackString = stackString || ''; - - if (test.err.htmlMessage && stackString) { - el.appendChild( - fragment( - '
    %s\n
    %e
    ', - test.err.htmlMessage, - stackString - ) - ); - } else if (test.err.htmlMessage) { - el.appendChild( - fragment('
    %s
    ', test.err.htmlMessage) - ); - } else { - el.appendChild( - fragment('
    %e%e
    ', message, stackString) - ); - } - - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on('pending', function(test) { - var el = fragment( - '
  • %e

  • ', - test.title - ); - appendToStack(el); - updateStats(); - }); - - function appendToStack(el) { - // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack. - if (stack[0]) { - stack[0].appendChild(el); - } - } - - function updateStats() { - // TODO: add to stats - var percent = (stats.tests / runner.total * 100) | 0; - if (progress) { - progress.update(percent).draw(ctx); - } - - // update stats - var ms = new Date() - stats.start; - text(passes, stats.passes); - text(failures, stats.failures); - text(duration, (ms / 1000).toFixed(2)); - } -} - -/** - * Makes a URL, preserving querystring ("search") parameters. - * - * @param {string} s - * @return {string} A new URL. - */ -function makeUrl(s) { - var search = window.location.search; - - // Remove previous grep query parameter if present - if (search) { - search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?'); - } - - return ( - window.location.pathname + - (search ? search + '&' : '?') + - 'grep=' + - encodeURIComponent(escapeRe(s)) - ); -} - -/** - * Provide suite URL. - * - * @param {Object} [suite] - */ -HTML.prototype.suiteURL = function(suite) { - return makeUrl(suite.fullTitle()); -}; - -/** - * Provide test URL. - * - * @param {Object} [test] - */ -HTML.prototype.testURL = function(test) { - return makeUrl(test.fullTitle()); -}; - -/** - * Adds code toggle functionality for the provided test's list element. - * - * @param {HTMLLIElement} el - * @param {string} contents - */ -HTML.prototype.addCodeToggle = function(el, contents) { - var h2 = el.getElementsByTagName('h2')[0]; - - on(h2, 'click', function() { - pre.style.display = pre.style.display === 'none' ? 'block' : 'none'; - }); - - var pre = fragment('
    %e
    ', utils.clean(contents)); - el.appendChild(pre); - pre.style.display = 'none'; -}; - -/** - * Display error `msg`. - * - * @param {string} msg - */ -function error(msg) { - document.body.appendChild(fragment('
    %s
    ', msg)); -} - -/** - * Return a DOM fragment from `html`. - * - * @param {string} html - */ -function fragment(html) { - var args = arguments; - var div = document.createElement('div'); - var i = 1; - - div.innerHTML = html.replace(/%([se])/g, function(_, type) { - switch (type) { - case 's': - return String(args[i++]); - case 'e': - return escape(args[i++]); - // no default - } - }); - - return div.firstChild; -} - -/** - * Check for suites that do not have elements - * with `classname`, and hide them. - * - * @param {text} classname - */ -function hideSuitesWithout(classname) { - var suites = document.getElementsByClassName('suite'); - for (var i = 0; i < suites.length; i++) { - var els = suites[i].getElementsByClassName(classname); - if (!els.length) { - suites[i].className += ' hidden'; - } - } -} - -/** - * Unhide .hidden suites. - */ -function unhide() { - var els = document.getElementsByClassName('suite hidden'); - for (var i = 0; i < els.length; ++i) { - els[i].className = els[i].className.replace('suite hidden', 'suite'); - } -} - -/** - * Set an element's text contents. - * - * @param {HTMLElement} el - * @param {string} contents - */ -function text(el, contents) { - if (el.textContent) { - el.textContent = contents; - } else { - el.innerText = contents; - } -} - -/** - * Listen on `event` with callback `fn`. - */ -function on(el, event, fn) { - if (el.addEventListener) { - el.addEventListener(event, fn, false); - } else { - el.attachEvent('on' + event, fn); - } -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/index.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/index.js deleted file mode 100644 index d3b5481..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -// Alias exports to a their normalized format Mocha#reporter to prevent a need -// for dynamic (try/catch) requires, which Browserify doesn't handle. -exports.Base = exports.base = require('./base'); -exports.Dot = exports.dot = require('./dot'); -exports.Doc = exports.doc = require('./doc'); -exports.TAP = exports.tap = require('./tap'); -exports.JSON = exports.json = require('./json'); -exports.HTML = exports.html = require('./html'); -exports.List = exports.list = require('./list'); -exports.Min = exports.min = require('./min'); -exports.Spec = exports.spec = require('./spec'); -exports.Nyan = exports.nyan = require('./nyan'); -exports.XUnit = exports.xunit = require('./xunit'); -exports.Markdown = exports.markdown = require('./markdown'); -exports.Progress = exports.progress = require('./progress'); -exports.Landing = exports.landing = require('./landing'); -exports.JSONStream = exports['json-stream'] = require('./json-stream'); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json-stream.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json-stream.js deleted file mode 100644 index 0edd0cb..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json-stream.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; -/** - * @module JSONStream - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `JSONStream` test reporter. - * - * @public - * @name JSONStream - * @class JSONStream - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function List(runner) { - Base.call(this, runner); - - var self = this; - var total = runner.total; - - runner.on('start', function() { - console.log(JSON.stringify(['start', {total: total}])); - }); - - runner.on('pass', function(test) { - console.log(JSON.stringify(['pass', clean(test)])); - }); - - runner.on('fail', function(test, err) { - test = clean(test); - test.err = err.message; - test.stack = err.stack || null; - console.log(JSON.stringify(['fail', test])); - }); - - runner.once('end', function() { - process.stdout.write(JSON.stringify(['end', self.stats])); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry() - }; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js deleted file mode 100644 index 046e4ba..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js +++ /dev/null @@ -1,127 +0,0 @@ -'use strict'; -/** - * @module JSON - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `JSON`. - */ - -exports = module.exports = JSONReporter; - -/** - * Initialize a new `JSON` reporter. - * - * @public - * @class JSON - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function JSONReporter(runner) { - Base.call(this, runner); - - var self = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - - runner.on('test end', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - passes.push(test); - }); - - runner.on('fail', function(test) { - failures.push(test); - }); - - runner.on('pending', function(test) { - pending.push(test); - }); - - runner.once('end', function() { - var obj = { - stats: self.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - - runner.testResults = obj; - - process.stdout.write(JSON.stringify(obj, null, 2)); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - var err = test.err || {}; - if (err instanceof Error) { - err = errorJSON(err); - } - - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry(), - err: cleanCycles(err) - }; -} - -/** - * Replaces any circular references inside `obj` with '[object Object]' - * - * @api private - * @param {Object} obj - * @return {Object} - */ -function cleanCycles(obj) { - var cache = []; - return JSON.parse( - JSON.stringify(obj, function(key, value) { - if (typeof value === 'object' && value !== null) { - if (cache.indexOf(value) !== -1) { - // Instead of going in a circle, we'll print [object Object] - return '' + value; - } - cache.push(value); - } - - return value; - }) - ); -} - -/** - * Transform an Error object into a JSON object. - * - * @api private - * @param {Error} err - * @return {Object} - */ -function errorJSON(err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function(key) { - res[key] = err[key]; - }, err); - return res; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js.orig b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js.orig deleted file mode 100644 index 0745b8c..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/json.js.orig +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `JSON`. - */ - -exports = module.exports = JSONReporter; - -/** - * Initialize a new `JSON` reporter. - * - * @api public - * @param {Runner} runner - * @param {options} mocha invocation options. Invoking - * `mocha -R --reporter-options output-file=asdf` yields options like: - * { ... reporterOptions: { "output-file": "asdf" } ... } - */ -function JSONReporter (runner, options) { -<<<<<<< HEAD -======= - options = options || {}; - var reptOptions = options.reporterOptions || {}; ->>>>>>> + json ouput controls: output-file, output-object - Base.call(this, runner); - - var self = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - - runner.on('test end', function (test) { - tests.push(test); - }); - - runner.on('pass', function (test) { - passes.push(test); - }); - - runner.on('fail', function (test) { - failures.push(test); - }); - - runner.on('pending', function (test) { - pending.push(test); - }); - - runner.once('end', function () { - var obj = { - stats: self.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - - runner.testResults = obj; -<<<<<<< HEAD - if ('output-object' in options.reporterOptions) { - // Pass to reporter with: reporter("json", {"output-object": myObject}) - Object.assign(options.reporterOptions['output-object'], obj); - } else { - var text = JSON.stringify(obj, null, 2); - if ('output-file' in options.reporterOptions) { - // Direct output with `mocha -R --reporter-options output-file=rpt.json` - try { - require('fs').writeFileSync(options.reporterOptions['output-file'], text); - } catch (e) { - console.warn('error writing to ' + options.reporterOptions.output + ':', e); -======= - if ('output-object' in reptOptions) { - // Pass to reporter with: reporter("json", {"output-object": myObject}) - Object.assign(reptOptions['output-object'], obj); - } else { - var text = JSON.stringify(obj, null, 2); - if ('output-file' in reptOptions) { - // Direct output with `mocha -R --reporter-options output-file=rpt.json` - try { - require('fs').writeFileSync(reptOptions['output-file'], text); - } catch (e) { - console.warn('error writing to ' + reptOptions.output + ':', e); ->>>>>>> + json ouput controls: output-file, output-object - } - } else { - process.stdout.write(text); - } - } - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean (test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry(), - err: errorJSON(test.err || {}) - }; -} - -/** - * Transform `error` into a JSON object. - * - * @api private - * @param {Error} err - * @return {Object} - */ -function errorJSON (err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function (key) { - res[key] = err[key]; - }, err); - return res; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/landing.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/landing.js deleted file mode 100644 index b0a9fb2..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/landing.js +++ /dev/null @@ -1,100 +0,0 @@ -'use strict'; -/** - * @module Landing - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var cursor = Base.cursor; -var color = Base.color; - -/** - * Expose `Landing`. - */ - -exports = module.exports = Landing; - -/** - * Airplane color. - */ - -Base.colors.plane = 0; - -/** - * Airplane crash color. - */ - -Base.colors['plane crash'] = 31; - -/** - * Runway color. - */ - -Base.colors.runway = 90; - -/** - * Initialize a new `Landing` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Landing(runner) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var total = runner.total; - var stream = process.stdout; - var plane = color('plane', '✈'); - var crashed = -1; - var n = 0; - - function runway() { - var buf = Array(width).join('-'); - return ' ' + color('runway', buf); - } - - runner.on('start', function() { - stream.write('\n\n\n '); - cursor.hide(); - }); - - runner.on('test end', function(test) { - // check if the plane crashed - var col = crashed === -1 ? (width * ++n / total) | 0 : crashed; - - // show the crash - if (test.state === 'failed') { - plane = color('plane crash', '✈'); - crashed = col; - } - - // render landing strip - stream.write('\u001b[' + (width + 1) + 'D\u001b[2A'); - stream.write(runway()); - stream.write('\n '); - stream.write(color('runway', Array(col).join('⋅'))); - stream.write(plane); - stream.write(color('runway', Array(width - col).join('⋅') + '\n')); - stream.write(runway()); - stream.write('\u001b[0m'); - }); - - runner.once('end', function() { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Landing, Base); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/list.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/list.js deleted file mode 100644 index 29ce74a..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/list.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; -/** - * @module List - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `List` test reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function List(runner) { - Base.call(this, runner); - - var self = this; - var n = 0; - - runner.on('start', function() { - console.log(); - }); - - runner.on('test', function(test) { - process.stdout.write(color('pass', ' ' + test.fullTitle() + ': ')); - }); - - runner.on('pending', function(test) { - var fmt = color('checkmark', ' -') + color('pending', ' %s'); - console.log(fmt, test.fullTitle()); - }); - - runner.on('pass', function(test) { - var fmt = - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s: ') + - color(test.speed, '%dms'); - cursor.CR(); - console.log(fmt, test.fullTitle(), test.duration); - }); - - runner.on('fail', function(test) { - cursor.CR(); - console.log(color('fail', ' %d) %s'), ++n, test.fullTitle()); - }); - - runner.once('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(List, Base); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/markdown.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/markdown.js deleted file mode 100644 index ff75ee4..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/markdown.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict'; -/** - * @module Markdown - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Constants - */ - -var SUITE_PREFIX = '$'; - -/** - * Expose `Markdown`. - */ - -exports = module.exports = Markdown; - -/** - * Initialize a new `Markdown` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Markdown(runner) { - Base.call(this, runner); - - var level = 0; - var buf = ''; - - function title(str) { - return Array(level).join('#') + ' ' + str; - } - - function mapTOC(suite, obj) { - var ret = obj; - var key = SUITE_PREFIX + suite.title; - - obj = obj[key] = obj[key] || {suite: suite}; - suite.suites.forEach(function(suite) { - mapTOC(suite, obj); - }); - - return ret; - } - - function stringifyTOC(obj, level) { - ++level; - var buf = ''; - var link; - for (var key in obj) { - if (key === 'suite') { - continue; - } - if (key !== SUITE_PREFIX) { - link = ' - [' + key.substring(1) + ']'; - link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n'; - buf += Array(level).join(' ') + link; - } - buf += stringifyTOC(obj[key], level); - } - return buf; - } - - function generateTOC(suite) { - var obj = mapTOC(suite, {}); - return stringifyTOC(obj, 0); - } - - generateTOC(runner.suite); - - runner.on('suite', function(suite) { - ++level; - var slug = utils.slug(suite.fullTitle()); - buf += '' + '\n'; - buf += title(suite.title) + '\n'; - }); - - runner.on('suite end', function() { - --level; - }); - - runner.on('pass', function(test) { - var code = utils.clean(test.body); - buf += test.title + '.\n'; - buf += '\n```js\n'; - buf += code + '\n'; - buf += '```\n\n'; - }); - - runner.once('end', function() { - process.stdout.write('# TOC\n'); - process.stdout.write(generateTOC(runner.suite)); - process.stdout.write(buf); - }); -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/min.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/min.js deleted file mode 100644 index 2a91a3c..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/min.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; -/** - * @module Min - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Min`. - */ - -exports = module.exports = Min; - -/** - * Initialize a new `Min` minimal test reporter (best used with --watch). - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Min(runner) { - Base.call(this, runner); - - runner.on('start', function() { - // clear screen - process.stdout.write('\u001b[2J'); - // set cursor position - process.stdout.write('\u001b[1;3H'); - }); - - runner.once('end', this.epilogue.bind(this)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Min, Base); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/nyan.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/nyan.js deleted file mode 100644 index 164a3fa..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/nyan.js +++ /dev/null @@ -1,269 +0,0 @@ -'use strict'; -/** - * @module Nyan - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Dot`. - */ - -exports = module.exports = NyanCat; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @param {Runner} runner - * @api public - * @public - * @class Nyan - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - */ - -function NyanCat(runner) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var nyanCatWidth = (this.nyanCatWidth = 11); - - this.colorIndex = 0; - this.numberOfLines = 4; - this.rainbowColors = self.generateColors(); - this.scoreboardWidth = 5; - this.tick = 0; - this.trajectories = [[], [], [], []]; - this.trajectoryWidthMax = width - nyanCatWidth; - - runner.on('start', function() { - Base.cursor.hide(); - self.draw(); - }); - - runner.on('pending', function() { - self.draw(); - }); - - runner.on('pass', function() { - self.draw(); - }); - - runner.on('fail', function() { - self.draw(); - }); - - runner.once('end', function() { - Base.cursor.show(); - for (var i = 0; i < self.numberOfLines; i++) { - write('\n'); - } - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(NyanCat, Base); - -/** - * Draw the nyan cat - * - * @api private - */ - -NyanCat.prototype.draw = function() { - this.appendRainbow(); - this.drawScoreboard(); - this.drawRainbow(); - this.drawNyanCat(); - this.tick = !this.tick; -}; - -/** - * Draw the "scoreboard" showing the number - * of passes, failures and pending tests. - * - * @api private - */ - -NyanCat.prototype.drawScoreboard = function() { - var stats = this.stats; - - function draw(type, n) { - write(' '); - write(Base.color(type, n)); - write('\n'); - } - - draw('green', stats.passes); - draw('fail', stats.failures); - draw('pending', stats.pending); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Append the rainbow. - * - * @api private - */ - -NyanCat.prototype.appendRainbow = function() { - var segment = this.tick ? '_' : '-'; - var rainbowified = this.rainbowify(segment); - - for (var index = 0; index < this.numberOfLines; index++) { - var trajectory = this.trajectories[index]; - if (trajectory.length >= this.trajectoryWidthMax) { - trajectory.shift(); - } - trajectory.push(rainbowified); - } -}; - -/** - * Draw the rainbow. - * - * @api private - */ - -NyanCat.prototype.drawRainbow = function() { - var self = this; - - this.trajectories.forEach(function(line) { - write('\u001b[' + self.scoreboardWidth + 'C'); - write(line.join('')); - write('\n'); - }); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw the nyan cat - * - * @api private - */ -NyanCat.prototype.drawNyanCat = function() { - var self = this; - var startWidth = this.scoreboardWidth + this.trajectories[0].length; - var dist = '\u001b[' + startWidth + 'C'; - var padding = ''; - - write(dist); - write('_,------,'); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write('_|' + padding + '/\\_/\\ '); - write('\n'); - - write(dist); - padding = self.tick ? '_' : '__'; - var tail = self.tick ? '~' : '^'; - write(tail + '|' + padding + this.face() + ' '); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write(padding + '"" "" '); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw nyan cat face. - * - * @api private - * @return {string} - */ - -NyanCat.prototype.face = function() { - var stats = this.stats; - if (stats.failures) { - return '( x .x)'; - } else if (stats.pending) { - return '( o .o)'; - } else if (stats.passes) { - return '( ^ .^)'; - } - return '( - .-)'; -}; - -/** - * Move cursor up `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorUp = function(n) { - write('\u001b[' + n + 'A'); -}; - -/** - * Move cursor down `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorDown = function(n) { - write('\u001b[' + n + 'B'); -}; - -/** - * Generate rainbow colors. - * - * @api private - * @return {Array} - */ -NyanCat.prototype.generateColors = function() { - var colors = []; - - for (var i = 0; i < 6 * 7; i++) { - var pi3 = Math.floor(Math.PI / 3); - var n = i * (1.0 / 6); - var r = Math.floor(3 * Math.sin(n) + 3); - var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); - var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); - colors.push(36 * r + 6 * g + b + 16); - } - - return colors; -}; - -/** - * Apply rainbow to the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -NyanCat.prototype.rainbowify = function(str) { - if (!Base.useColors) { - return str; - } - var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; - this.colorIndex += 1; - return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m'; -}; - -/** - * Stdout helper. - * - * @param {string} string A message to write to stdout. - */ -function write(string) { - process.stdout.write(string); -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/progress.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/progress.js deleted file mode 100644 index 042fc1b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/progress.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict'; -/** - * @module Progress - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `Progress`. - */ - -exports = module.exports = Progress; - -/** - * General progress bar color. - */ - -Base.colors.progress = 90; - -/** - * Initialize a new `Progress` bar test reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - * @param {Object} options - */ -function Progress(runner, options) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.5) | 0; - var total = runner.total; - var complete = 0; - var lastN = -1; - - // default chars - options = options || {}; - var reporterOptions = options.reporterOptions || {}; - - options.open = reporterOptions.open || '['; - options.complete = reporterOptions.complete || '▬'; - options.incomplete = reporterOptions.incomplete || Base.symbols.dot; - options.close = reporterOptions.close || ']'; - options.verbose = reporterOptions.verbose || false; - - // tests started - runner.on('start', function() { - console.log(); - cursor.hide(); - }); - - // tests complete - runner.on('test end', function() { - complete++; - - var percent = complete / total; - var n = (width * percent) | 0; - var i = width - n; - - if (n === lastN && !options.verbose) { - // Don't re-render the line if it hasn't changed - return; - } - lastN = n; - - cursor.CR(); - process.stdout.write('\u001b[J'); - process.stdout.write(color('progress', ' ' + options.open)); - process.stdout.write(Array(n).join(options.complete)); - process.stdout.write(Array(i).join(options.incomplete)); - process.stdout.write(color('progress', options.close)); - if (options.verbose) { - process.stdout.write(color('progress', ' ' + complete + ' of ' + total)); - } - }); - - // tests are complete, output some stats - // and the failures if any - runner.once('end', function() { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Progress, Base); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/spec.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/spec.js deleted file mode 100644 index 75e6dda..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/spec.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict'; -/** - * @module Spec - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Spec`. - */ - -exports = module.exports = Spec; - -/** - * Initialize a new `Spec` test reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Spec(runner) { - Base.call(this, runner); - - var self = this; - var indents = 0; - var n = 0; - - function indent() { - return Array(indents).join(' '); - } - - runner.on('start', function() { - console.log(); - }); - - runner.on('suite', function(suite) { - ++indents; - console.log(color('suite', '%s%s'), indent(), suite.title); - }); - - runner.on('suite end', function() { - --indents; - if (indents === 1) { - console.log(); - } - }); - - runner.on('pending', function(test) { - var fmt = indent() + color('pending', ' - %s'); - console.log(fmt, test.title); - }); - - runner.on('pass', function(test) { - var fmt; - if (test.speed === 'fast') { - fmt = - indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s'); - console.log(fmt, test.title); - } else { - fmt = - indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s') + - color(test.speed, ' (%dms)'); - console.log(fmt, test.title, test.duration); - } - }); - - runner.on('fail', function(test) { - console.log(indent() + color('fail', ' %d) %s'), ++n, test.title); - }); - - runner.once('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Spec, Base); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/tap.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/tap.js deleted file mode 100644 index 299dc66..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/tap.js +++ /dev/null @@ -1,76 +0,0 @@ -'use strict'; -/** - * @module TAP - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `TAP`. - */ - -exports = module.exports = TAP; - -/** - * Initialize a new `TAP` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function TAP(runner) { - Base.call(this, runner); - - var n = 1; - var passes = 0; - var failures = 0; - - runner.on('start', function() { - var total = runner.grepTotal(runner.suite); - console.log('%d..%d', 1, total); - }); - - runner.on('test end', function() { - ++n; - }); - - runner.on('pending', function(test) { - console.log('ok %d %s # SKIP -', n, title(test)); - }); - - runner.on('pass', function(test) { - passes++; - console.log('ok %d %s', n, title(test)); - }); - - runner.on('fail', function(test, err) { - failures++; - console.log('not ok %d %s', n, title(test)); - if (err.stack) { - console.log(err.stack.replace(/^/gm, ' ')); - } - }); - - runner.once('end', function() { - console.log('# tests ' + (passes + failures)); - console.log('# pass ' + passes); - console.log('# fail ' + failures); - }); -} - -/** - * Return a TAP-safe title of `test` - * - * @api private - * @param {Object} test - * @return {String} - */ -function title(test) { - return test.fullTitle().replace(/#/g, ''); -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/xunit.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/xunit.js deleted file mode 100644 index c1a930d..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/reporters/xunit.js +++ /dev/null @@ -1,207 +0,0 @@ -'use strict'; -/** - * @module XUnit - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var inherits = utils.inherits; -var fs = require('fs'); -var escape = utils.escape; -var mkdirp = require('mkdirp'); -var path = require('path'); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `XUnit`. - */ - -exports = module.exports = XUnit; - -/** - * Initialize a new `XUnit` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function XUnit(runner, options) { - Base.call(this, runner); - - var stats = this.stats; - var tests = []; - var self = this; - - // the name of the test suite, as it will appear in the resulting XML file - var suiteName; - - // the default name of the test suite if none is provided - var DEFAULT_SUITE_NAME = 'Mocha Tests'; - - if (options && options.reporterOptions) { - if (options.reporterOptions.output) { - if (!fs.createWriteStream) { - throw new Error('file output not supported in browser'); - } - - mkdirp.sync(path.dirname(options.reporterOptions.output)); - self.fileStream = fs.createWriteStream(options.reporterOptions.output); - } - - // get the suite name from the reporter options (if provided) - suiteName = options.reporterOptions.suiteName; - } - - // fall back to the default suite name - suiteName = suiteName || DEFAULT_SUITE_NAME; - - runner.on('pending', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - tests.push(test); - }); - - runner.on('fail', function(test) { - tests.push(test); - }); - - runner.once('end', function() { - self.write( - tag( - 'testsuite', - { - name: suiteName, - tests: stats.tests, - failures: stats.failures, - errors: stats.failures, - skipped: stats.tests - stats.failures - stats.passes, - timestamp: new Date().toUTCString(), - time: stats.duration / 1000 || 0 - }, - false - ) - ); - - tests.forEach(function(t) { - self.test(t); - }); - - self.write(''); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(XUnit, Base); - -/** - * Override done to close the stream (if it's a file). - * - * @param failures - * @param {Function} fn - */ -XUnit.prototype.done = function(failures, fn) { - if (this.fileStream) { - this.fileStream.end(function() { - fn(failures); - }); - } else { - fn(failures); - } -}; - -/** - * Write out the given line. - * - * @param {string} line - */ -XUnit.prototype.write = function(line) { - if (this.fileStream) { - this.fileStream.write(line + '\n'); - } else if (typeof process === 'object' && process.stdout) { - process.stdout.write(line + '\n'); - } else { - console.log(line); - } -}; - -/** - * Output tag for the given `test.` - * - * @param {Test} test - */ -XUnit.prototype.test = function(test) { - var attrs = { - classname: test.parent.fullTitle(), - name: test.title, - time: test.duration / 1000 || 0 - }; - - if (test.state === 'failed') { - var err = test.err; - this.write( - tag( - 'testcase', - attrs, - false, - tag( - 'failure', - {}, - false, - escape(err.message) + '\n' + escape(err.stack) - ) - ) - ); - } else if (test.isPending()) { - this.write(tag('testcase', attrs, false, tag('skipped', {}, true))); - } else { - this.write(tag('testcase', attrs, true)); - } -}; - -/** - * HTML tag helper. - * - * @param name - * @param attrs - * @param close - * @param content - * @return {string} - */ -function tag(name, attrs, close, content) { - var end = close ? '/>' : '>'; - var pairs = []; - var tag; - - for (var key in attrs) { - if (Object.prototype.hasOwnProperty.call(attrs, key)) { - pairs.push(key + '="' + escape(attrs[key]) + '"'); - } - } - - tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end; - if (content) { - tag += content + ' Math.pow(2, 31)) { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = ms; - if (this.timer) { - this.resetTimeout(); - } - return this; -}; - -/** - * Set or get slow `ms`. - * - * @api private - * @param {number|string} ms - * @return {Runnable|number} ms or Runnable instance. - */ -Runnable.prototype.slow = function(ms) { - if (!arguments.length || typeof ms === 'undefined') { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; -}; - -/** - * Set and get whether timeout is `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Runnable|boolean} enabled or Runnable instance. - */ -Runnable.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Halt and mark as pending. - * - * @memberof Mocha.Runnable - * @public - * @api public - */ -Runnable.prototype.skip = function() { - throw new Pending('sync skip'); -}; - -/** - * Check if this runnable or its parent suite is marked as pending. - * - * @api private - */ -Runnable.prototype.isPending = function() { - return this.pending || (this.parent && this.parent.isPending()); -}; - -/** - * Return `true` if this Runnable has failed. - * @return {boolean} - * @private - */ -Runnable.prototype.isFailed = function() { - return !this.isPending() && this.state === 'failed'; -}; - -/** - * Return `true` if this Runnable has passed. - * @return {boolean} - * @private - */ -Runnable.prototype.isPassed = function() { - return !this.isPending() && this.state === 'passed'; -}; - -/** - * Set or get number of retries. - * - * @api private - */ -Runnable.prototype.retries = function(n) { - if (!arguments.length) { - return this._retries; - } - this._retries = n; -}; - -/** - * Set or get current retry - * - * @api private - */ -Runnable.prototype.currentRetry = function(n) { - if (!arguments.length) { - return this._currentRetry; - } - this._currentRetry = n; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @memberof Mocha.Runnable - * @public - * @api public - * @return {string} - */ -Runnable.prototype.fullTitle = function() { - return this.titlePath().join(' '); -}; - -/** - * Return the title path generated by concatenating the parent's title path with the title. - * - * @memberof Mocha.Runnable - * @public - * @api public - * @return {string} - */ -Runnable.prototype.titlePath = function() { - return this.parent.titlePath().concat([this.title]); -}; - -/** - * Clear the timeout. - * - * @api private - */ -Runnable.prototype.clearTimeout = function() { - clearTimeout(this.timer); -}; - -/** - * Inspect the runnable void of private properties. - * - * @api private - * @return {string} - */ -Runnable.prototype.inspect = function() { - return JSON.stringify( - this, - function(key, val) { - if (key[0] === '_') { - return; - } - if (key === 'parent') { - return '#'; - } - if (key === 'ctx') { - return '#'; - } - return val; - }, - 2 - ); -}; - -/** - * Reset the timeout. - * - * @api private - */ -Runnable.prototype.resetTimeout = function() { - var self = this; - var ms = this.timeout() || 1e9; - - if (!this._enableTimeouts) { - return; - } - this.clearTimeout(); - this.timer = setTimeout(function() { - if (!self._enableTimeouts) { - return; - } - self.callback(self._timeoutError(ms)); - self.timedOut = true; - }, ms); -}; - -/** - * Set or get a list of whitelisted globals for this test run. - * - * @api private - * @param {string[]} globals - */ -Runnable.prototype.globals = function(globals) { - if (!arguments.length) { - return this._allowedGlobals; - } - this._allowedGlobals = globals; -}; - -/** - * Run the test and invoke `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runnable.prototype.run = function(fn) { - var self = this; - var start = new Date(); - var ctx = this.ctx; - var finished; - var emitted; - - // Sometimes the ctx exists, but it is not runnable - if (ctx && ctx.runnable) { - ctx.runnable(this); - } - - // called multiple times - function multiple(err) { - if (emitted) { - return; - } - emitted = true; - var msg = 'done() called multiple times'; - if (err && err.message) { - err.message += " (and Mocha's " + msg + ')'; - self.emit('error', err); - } else { - self.emit('error', new Error(msg)); - } - } - - // finished - function done(err) { - var ms = self.timeout(); - if (self.timedOut) { - return; - } - - if (finished) { - return multiple(err); - } - - self.clearTimeout(); - self.duration = new Date() - start; - finished = true; - if (!err && self.duration > ms && self._enableTimeouts) { - err = self._timeoutError(ms); - } - fn(err); - } - - // for .resetTimeout() - this.callback = done; - - // explicit async with `done` argument - if (this.async) { - this.resetTimeout(); - - // allows skip() to be used in an explicit async context - this.skip = function asyncSkip() { - done(new Pending('async skip call')); - // halt execution. the Runnable will be marked pending - // by the previous call, and the uncaught handler will ignore - // the failure. - throw new Pending('async skip; aborting execution'); - }; - - if (this.allowUncaught) { - return callFnAsync(this.fn); - } - try { - callFnAsync(this.fn); - } catch (err) { - emitted = true; - done(utils.getError(err)); - } - return; - } - - if (this.allowUncaught) { - if (this.isPending()) { - done(); - } else { - callFn(this.fn); - } - return; - } - - // sync or promise-returning - try { - if (this.isPending()) { - done(); - } else { - callFn(this.fn); - } - } catch (err) { - emitted = true; - done(utils.getError(err)); - } - - function callFn(fn) { - var result = fn.call(ctx); - if (result && typeof result.then === 'function') { - self.resetTimeout(); - result.then( - function() { - done(); - // Return null so libraries like bluebird do not warn about - // subsequently constructed Promises. - return null; - }, - function(reason) { - done(reason || new Error('Promise rejected with no or falsy reason')); - } - ); - } else { - if (self.asyncOnly) { - return done( - new Error( - '--async-only option in use without declaring `done()` or returning a promise' - ) - ); - } - - done(); - } - } - - function callFnAsync(fn) { - var result = fn.call(ctx, function(err) { - if (err instanceof Error || toString.call(err) === '[object Error]') { - return done(err); - } - if (err) { - if (Object.prototype.toString.call(err) === '[object Object]') { - return done( - new Error('done() invoked with non-Error: ' + JSON.stringify(err)) - ); - } - return done(new Error('done() invoked with non-Error: ' + err)); - } - if (result && utils.isPromise(result)) { - return done( - new Error( - 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.' - ) - ); - } - - done(); - }); - } -}; - -/** - * Instantiates a "timeout" error - * - * @param {number} ms - Timeout (in milliseconds) - * @returns {Error} a "timeout" error - * @private - */ -Runnable.prototype._timeoutError = function(ms) { - var msg = - 'Timeout of ' + - ms + - 'ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.'; - if (this.file) { - msg += ' (' + this.file + ')'; - } - return new Error(msg); -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/runner.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/runner.js deleted file mode 100644 index 6aefb34..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/runner.js +++ /dev/null @@ -1,1009 +0,0 @@ -'use strict'; - -/** - * @module Runner - */ -/** - * Module dependencies. - */ -var EventEmitter = require('events').EventEmitter; -var Pending = require('./pending'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:runner'); -var Runnable = require('./runnable'); -var stackFilter = utils.stackTraceFilter(); -var stringify = utils.stringify; -var type = utils.type; -var undefinedError = utils.undefinedError; - -/** - * Non-enumerable globals. - */ - -var globals = [ - 'setTimeout', - 'clearTimeout', - 'setInterval', - 'clearInterval', - 'XMLHttpRequest', - 'Date', - 'setImmediate', - 'clearImmediate' -]; - -/** - * Expose `Runner`. - */ - -module.exports = Runner; - -/** - * Initialize a `Runner` for the given `suite`. Derived from [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) - * - * Events: - * - * - `start` execution started - * - `end` execution complete - * - `suite` (suite) test suite execution started - * - `suite end` (suite) all tests (and sub-suites) have finished - * - `test` (test) test execution started - * - `test end` (test) test completed - * - `hook` (hook) hook execution started - * - `hook end` (hook) hook complete - * - `pass` (test) test passed - * - `fail` (test, err) test failed - * - `pending` (test) test pending - * - * @memberof Mocha - * @public - * @class - * @api public - * @param {Suite} [suite] Root suite - * @param {boolean} [delay] Whether or not to delay execution of root suite - * until ready. - */ -function Runner(suite, delay) { - var self = this; - this._globals = []; - this._abort = false; - this._delay = delay; - this.suite = suite; - this.started = false; - this.total = suite.total(); - this.failures = 0; - this.on('test end', function(test) { - self.checkGlobals(test); - }); - this.on('hook end', function(hook) { - self.checkGlobals(hook); - }); - this._defaultGrep = /.*/; - this.grep(this._defaultGrep); - this.globals(this.globalProps().concat(extraGlobals())); -} - -/** - * Wrapper for setImmediate, process.nextTick, or browser polyfill. - * - * @param {Function} fn - * @api private - */ -Runner.immediately = global.setImmediate || process.nextTick; - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Runner, EventEmitter); - -/** - * Run tests with full titles matching `re`. Updates runner.total - * with number of tests matched. - * - * @api public - * @public - * @memberof Mocha.Runner - * @param {RegExp} re - * @param {boolean} invert - * @return {Runner} Runner instance. - */ -Runner.prototype.grep = function(re, invert) { - debug('grep %s', re); - this._grep = re; - this._invert = invert; - this.total = this.grepTotal(this.suite); - return this; -}; - -/** - * Returns the number of tests matching the grep search for the - * given suite. - * - * @memberof Mocha.Runner - * @api public - * @public - * @param {Suite} suite - * @return {number} - */ -Runner.prototype.grepTotal = function(suite) { - var self = this; - var total = 0; - - suite.eachTest(function(test) { - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (match) { - total++; - } - }); - - return total; -}; - -/** - * Return a list of global properties. - * - * @return {Array} - * @api private - */ -Runner.prototype.globalProps = function() { - var props = Object.keys(global); - - // non-enumerables - for (var i = 0; i < globals.length; ++i) { - if (~props.indexOf(globals[i])) { - continue; - } - props.push(globals[i]); - } - - return props; -}; - -/** - * Allow the given `arr` of globals. - * - * @api public - * @public - * @memberof Mocha.Runner - * @param {Array} arr - * @return {Runner} Runner instance. - */ -Runner.prototype.globals = function(arr) { - if (!arguments.length) { - return this._globals; - } - debug('globals %j', arr); - this._globals = this._globals.concat(arr); - return this; -}; - -/** - * Check for global variable leaks. - * - * @api private - */ -Runner.prototype.checkGlobals = function(test) { - if (this.ignoreLeaks) { - return; - } - var ok = this._globals; - - var globals = this.globalProps(); - var leaks; - - if (test) { - ok = ok.concat(test._allowedGlobals || []); - } - - if (this.prevGlobalsLength === globals.length) { - return; - } - this.prevGlobalsLength = globals.length; - - leaks = filterLeaks(ok, globals); - this._globals = this._globals.concat(leaks); - - if (leaks.length > 1) { - this.fail( - test, - new Error('global leaks detected: ' + leaks.join(', ') + '') - ); - } else if (leaks.length) { - this.fail(test, new Error('global leak detected: ' + leaks[0])); - } -}; - -/** - * Fail the given `test`. - * - * @api private - * @param {Test} test - * @param {Error} err - */ -Runner.prototype.fail = function(test, err) { - if (test.isPending()) { - return; - } - - ++this.failures; - test.state = 'failed'; - - if (!(err instanceof Error || (err && typeof err.message === 'string'))) { - err = new Error( - 'the ' + - type(err) + - ' ' + - stringify(err) + - ' was thrown, throw an Error :)' - ); - } - - try { - err.stack = - this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack); - } catch (ignore) { - // some environments do not take kindly to monkeying with the stack - } - - this.emit('fail', test, err); - if (this.suite.bail()) { - this.emit('end'); - } -}; - -/** - * Fail the given `hook` with `err`. - * - * Hook failures work in the following pattern: - * - If bail, then exit - * - Failed `before` hook skips all tests in a suite and subsuites, - * but jumps to corresponding `after` hook - * - Failed `before each` hook skips remaining tests in a - * suite and jumps to corresponding `after each` hook, - * which is run only once - * - Failed `after` hook does not alter - * execution order - * - Failed `after each` hook skips remaining tests in a - * suite and subsuites, but executes other `after each` - * hooks - * - * @api private - * @param {Hook} hook - * @param {Error} err - */ -Runner.prototype.failHook = function(hook, err) { - if (hook.ctx && hook.ctx.currentTest) { - hook.originalTitle = hook.originalTitle || hook.title; - hook.title = - hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"'; - } - - this.fail(hook, err); -}; - -/** - * Run hook `name` callbacks and then invoke `fn()`. - * - * @api private - * @param {string} name - * @param {Function} fn - */ - -Runner.prototype.hook = function(name, fn) { - var suite = this.suite; - var hooks = suite['_' + name]; - var self = this; - - function next(i) { - var hook = hooks[i]; - if (!hook) { - return fn(); - } - self.currentRunnable = hook; - - hook.ctx.currentTest = self.test; - - self.emit('hook', hook); - - if (!hook.listeners('error').length) { - hook.on('error', function(err) { - self.failHook(hook, err); - }); - } - - hook.run(function(err) { - var testError = hook.error(); - if (testError) { - self.fail(self.test, testError); - } - if (err) { - if (err instanceof Pending) { - if (name === 'beforeEach' || name === 'afterEach') { - self.test.pending = true; - } else { - suite.tests.forEach(function(test) { - test.pending = true; - }); - // a pending hook won't be executed twice. - hook.pending = true; - } - } else { - self.failHook(hook, err); - - // stop executing hooks, notify callee of hook err - return fn(err); - } - } - self.emit('hook end', hook); - delete hook.ctx.currentTest; - next(++i); - }); - } - - Runner.immediately(function() { - next(0); - }); -}; - -/** - * Run hook `name` for the given array of `suites` - * in order, and callback `fn(err, errSuite)`. - * - * @api private - * @param {string} name - * @param {Array} suites - * @param {Function} fn - */ -Runner.prototype.hooks = function(name, suites, fn) { - var self = this; - var orig = this.suite; - - function next(suite) { - self.suite = suite; - - if (!suite) { - self.suite = orig; - return fn(); - } - - self.hook(name, function(err) { - if (err) { - var errSuite = self.suite; - self.suite = orig; - return fn(err, errSuite); - } - - next(suites.pop()); - }); - } - - next(suites.pop()); -}; - -/** - * Run hooks from the top level down. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookUp = function(name, fn) { - var suites = [this.suite].concat(this.parents()).reverse(); - this.hooks(name, suites, fn); -}; - -/** - * Run hooks from the bottom up. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookDown = function(name, fn) { - var suites = [this.suite].concat(this.parents()); - this.hooks(name, suites, fn); -}; - -/** - * Return an array of parent Suites from - * closest to furthest. - * - * @return {Array} - * @api private - */ -Runner.prototype.parents = function() { - var suite = this.suite; - var suites = []; - while (suite.parent) { - suite = suite.parent; - suites.push(suite); - } - return suites; -}; - -/** - * Run the current test and callback `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runner.prototype.runTest = function(fn) { - var self = this; - var test = this.test; - - if (!test) { - return; - } - if (this.forbidOnly && hasOnly(this.parents().reverse()[0] || this.suite)) { - fn(new Error('`.only` forbidden')); - return; - } - if (this.asyncOnly) { - test.asyncOnly = true; - } - test.on('error', function(err) { - self.fail(test, err); - }); - if (this.allowUncaught) { - test.allowUncaught = true; - return test.run(fn); - } - try { - test.run(fn); - } catch (err) { - fn(err); - } -}; - -/** - * Run tests in the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runTests = function(suite, fn) { - var self = this; - var tests = suite.tests.slice(); - var test; - - function hookErr(_, errSuite, after) { - // before/after Each hook for errSuite failed: - var orig = self.suite; - - // for failed 'after each' hook start from errSuite parent, - // otherwise start from errSuite itself - self.suite = after ? errSuite.parent : errSuite; - - if (self.suite) { - // call hookUp afterEach - self.hookUp('afterEach', function(err2, errSuite2) { - self.suite = orig; - // some hooks may fail even now - if (err2) { - return hookErr(err2, errSuite2, true); - } - // report error suite - fn(errSuite); - }); - } else { - // there is no need calling other 'after each' hooks - self.suite = orig; - fn(errSuite); - } - } - - function next(err, errSuite) { - // if we bail after first err - if (self.failures && suite._bail) { - return fn(); - } - - if (self._abort) { - return fn(); - } - - if (err) { - return hookErr(err, errSuite, true); - } - - // next test - test = tests.shift(); - - // all done - if (!test) { - return fn(); - } - - // grep - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (!match) { - // Run immediately only if we have defined a grep. When we - // define a grep — It can cause maximum callstack error if - // the grep is doing a large recursive loop by neglecting - // all tests. The run immediately function also comes with - // a performance cost. So we don't want to run immediately - // if we run the whole test suite, because running the whole - // test suite don't do any immediate recursive loops. Thus, - // allowing a JS runtime to breathe. - if (self._grep !== self._defaultGrep) { - Runner.immediately(next); - } else { - next(); - } - return; - } - - if (test.isPending()) { - if (self.forbidPending) { - test.isPending = alwaysFalse; - self.fail(test, new Error('Pending test forbidden')); - delete test.isPending; - } else { - self.emit('pending', test); - } - self.emit('test end', test); - return next(); - } - - // execute test and hook(s) - self.emit('test', (self.test = test)); - self.hookDown('beforeEach', function(err, errSuite) { - if (test.isPending()) { - if (self.forbidPending) { - test.isPending = alwaysFalse; - self.fail(test, new Error('Pending test forbidden')); - delete test.isPending; - } else { - self.emit('pending', test); - } - self.emit('test end', test); - return next(); - } - if (err) { - return hookErr(err, errSuite, false); - } - self.currentRunnable = self.test; - self.runTest(function(err) { - test = self.test; - if (err) { - var retry = test.currentRetry(); - if (err instanceof Pending && self.forbidPending) { - self.fail(test, new Error('Pending test forbidden')); - } else if (err instanceof Pending) { - test.pending = true; - self.emit('pending', test); - } else if (retry < test.retries()) { - var clonedTest = test.clone(); - clonedTest.currentRetry(retry + 1); - tests.unshift(clonedTest); - - // Early return + hook trigger so that it doesn't - // increment the count wrong - return self.hookUp('afterEach', next); - } else { - self.fail(test, err); - } - self.emit('test end', test); - - if (err instanceof Pending) { - return next(); - } - - return self.hookUp('afterEach', next); - } - - test.state = 'passed'; - self.emit('pass', test); - self.emit('test end', test); - self.hookUp('afterEach', next); - }); - }); - } - - this.next = next; - this.hookErr = hookErr; - next(); -}; - -function alwaysFalse() { - return false; -} - -/** - * Run the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runSuite = function(suite, fn) { - var i = 0; - var self = this; - var total = this.grepTotal(suite); - var afterAllHookCalled = false; - - debug('run suite %s', suite.fullTitle()); - - if (!total || (self.failures && suite._bail)) { - return fn(); - } - - this.emit('suite', (this.suite = suite)); - - function next(errSuite) { - if (errSuite) { - // current suite failed on a hook from errSuite - if (errSuite === suite) { - // if errSuite is current suite - // continue to the next sibling suite - return done(); - } - // errSuite is among the parents of current suite - // stop execution of errSuite and all sub-suites - return done(errSuite); - } - - if (self._abort) { - return done(); - } - - var curr = suite.suites[i++]; - if (!curr) { - return done(); - } - - // Avoid grep neglecting large number of tests causing a - // huge recursive loop and thus a maximum call stack error. - // See comment in `this.runTests()` for more information. - if (self._grep !== self._defaultGrep) { - Runner.immediately(function() { - self.runSuite(curr, next); - }); - } else { - self.runSuite(curr, next); - } - } - - function done(errSuite) { - self.suite = suite; - self.nextSuite = next; - - if (afterAllHookCalled) { - fn(errSuite); - } else { - // mark that the afterAll block has been called once - // and so can be skipped if there is an error in it. - afterAllHookCalled = true; - - // remove reference to test - delete self.test; - - self.hook('afterAll', function() { - self.emit('suite end', suite); - fn(errSuite); - }); - } - } - - this.nextSuite = next; - - this.hook('beforeAll', function(err) { - if (err) { - return done(); - } - self.runTests(suite, next); - }); -}; - -/** - * Handle uncaught exceptions. - * - * @param {Error} err - * @api private - */ -Runner.prototype.uncaught = function(err) { - if (err) { - debug( - 'uncaught exception %s', - err === - function() { - return this; - }.call(err) - ? err.message || err - : err - ); - } else { - debug('uncaught undefined exception'); - err = undefinedError(); - } - err.uncaught = true; - - var runnable = this.currentRunnable; - - if (!runnable) { - runnable = new Runnable('Uncaught error outside test suite'); - runnable.parent = this.suite; - - if (this.started) { - this.fail(runnable, err); - } else { - // Can't recover from this failure - this.emit('start'); - this.fail(runnable, err); - this.emit('end'); - } - - return; - } - - runnable.clearTimeout(); - - // Ignore errors if already failed or pending - // See #3226 - if (runnable.isFailed() || runnable.isPending()) { - return; - } - // we cannot recover gracefully if a Runnable has already passed - // then fails asynchronously - var alreadyPassed = runnable.isPassed(); - // this will change the state to "failed" regardless of the current value - this.fail(runnable, err); - if (!alreadyPassed) { - // recover from test - if (runnable.type === 'test') { - this.emit('test end', runnable); - this.hookUp('afterEach', this.next); - return; - } - - // recover from hooks - var errSuite = this.suite; - // if hook failure is in afterEach block - if (runnable.fullTitle().indexOf('after each') > -1) { - return this.hookErr(err, errSuite, true); - } - // if hook failure is in beforeEach block - if (runnable.fullTitle().indexOf('before each') > -1) { - return this.hookErr(err, errSuite, false); - } - // if hook failure is in after or before blocks - return this.nextSuite(errSuite); - } - - // bail - this.emit('end'); -}; - -/** - * Cleans up the references to all the deferred functions - * (before/after/beforeEach/afterEach) and tests of a Suite. - * These must be deleted otherwise a memory leak can happen, - * as those functions may reference variables from closures, - * thus those variables can never be garbage collected as long - * as the deferred functions exist. - * - * @param {Suite} suite - */ -function cleanSuiteReferences(suite) { - function cleanArrReferences(arr) { - for (var i = 0; i < arr.length; i++) { - delete arr[i].fn; - } - } - - if (Array.isArray(suite._beforeAll)) { - cleanArrReferences(suite._beforeAll); - } - - if (Array.isArray(suite._beforeEach)) { - cleanArrReferences(suite._beforeEach); - } - - if (Array.isArray(suite._afterAll)) { - cleanArrReferences(suite._afterAll); - } - - if (Array.isArray(suite._afterEach)) { - cleanArrReferences(suite._afterEach); - } - - for (var i = 0; i < suite.tests.length; i++) { - delete suite.tests[i].fn; - } -} - -/** - * Run the root suite and invoke `fn(failures)` - * on completion. - * - * @api public - * @public - * @memberof Mocha.Runner - * @param {Function} fn - * @return {Runner} Runner instance. - */ -Runner.prototype.run = function(fn) { - var self = this; - var rootSuite = this.suite; - - fn = fn || function() {}; - - function uncaught(err) { - self.uncaught(err); - } - - function start() { - // If there is an `only` filter - if (hasOnly(rootSuite)) { - filterOnly(rootSuite); - } - self.started = true; - self.emit('start'); - self.runSuite(rootSuite, function() { - debug('finished running'); - self.emit('end'); - }); - } - - debug('start'); - - // references cleanup to avoid memory leaks - this.on('suite end', cleanSuiteReferences); - - // callback - this.on('end', function() { - debug('end'); - process.removeListener('uncaughtException', uncaught); - fn(self.failures); - }); - - // uncaught exception - process.on('uncaughtException', uncaught); - - if (this._delay) { - // for reporters, I guess. - // might be nice to debounce some dots while we wait. - this.emit('waiting', rootSuite); - rootSuite.once('run', start); - } else { - start(); - } - - return this; -}; - -/** - * Cleanly abort execution. - * - * @memberof Mocha.Runner - * @public - * @api public - * @return {Runner} Runner instance. - */ -Runner.prototype.abort = function() { - debug('aborting'); - this._abort = true; - - return this; -}; - -/** - * Filter suites based on `isOnly` logic. - * - * @param {Array} suite - * @returns {Boolean} - * @api private - */ -function filterOnly(suite) { - if (suite._onlyTests.length) { - // If the suite contains `only` tests, run those and ignore any nested suites. - suite.tests = suite._onlyTests; - suite.suites = []; - } else { - // Otherwise, do not run any of the tests in this suite. - suite.tests = []; - suite._onlySuites.forEach(function(onlySuite) { - // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite. - // Otherwise, all of the tests on this `only` suite should be run, so don't filter it. - if (hasOnly(onlySuite)) { - filterOnly(onlySuite); - } - }); - // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants. - suite.suites = suite.suites.filter(function(childSuite) { - return ( - suite._onlySuites.indexOf(childSuite) !== -1 || filterOnly(childSuite) - ); - }); - } - // Keep the suite only if there is something to run - return suite.tests.length || suite.suites.length; -} - -/** - * Determines whether a suite has an `only` test or suite as a descendant. - * - * @param {Array} suite - * @returns {Boolean} - * @api private - */ -function hasOnly(suite) { - return ( - suite._onlyTests.length || - suite._onlySuites.length || - suite.suites.some(hasOnly) - ); -} - -/** - * Filter leaks with the given globals flagged as `ok`. - * - * @api private - * @param {Array} ok - * @param {Array} globals - * @return {Array} - */ -function filterLeaks(ok, globals) { - return globals.filter(function(key) { - // Firefox and Chrome exposes iframes as index inside the window object - if (/^\d+/.test(key)) { - return false; - } - - // in firefox - // if runner runs in an iframe, this iframe's window.getInterface method - // not init at first it is assigned in some seconds - if (global.navigator && /^getInterface/.test(key)) { - return false; - } - - // an iframe could be approached by window[iframeIndex] - // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak - if (global.navigator && /^\d+/.test(key)) { - return false; - } - - // Opera and IE expose global variables for HTML element IDs (issue #243) - if (/^mocha-/.test(key)) { - return false; - } - - var matched = ok.filter(function(ok) { - if (~ok.indexOf('*')) { - return key.indexOf(ok.split('*')[0]) === 0; - } - return key === ok; - }); - return !matched.length && (!global.navigator || key !== 'onerror'); - }); -} - -/** - * Array of globals dependent on the environment. - * - * @return {Array} - * @api private - */ -function extraGlobals() { - if (typeof process === 'object' && typeof process.version === 'string') { - var parts = process.version.split('.'); - var nodeVersion = parts.reduce(function(a, v) { - return (a << 8) | v; - }); - - // 'errno' was renamed to process._errno in v0.9.11. - - if (nodeVersion < 0x00090b) { - return ['errno']; - } - } - - return []; -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/suite.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/suite.js deleted file mode 100644 index 91832ba..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/suite.js +++ /dev/null @@ -1,427 +0,0 @@ -'use strict'; -/** - * @module Suite - */ - -/** - * Module dependencies. - */ -var EventEmitter = require('events').EventEmitter; -var Hook = require('./hook'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:suite'); -var milliseconds = require('./ms'); - -/** - * Expose `Suite`. - */ - -exports = module.exports = Suite; - -/** - * Create a new `Suite` with the given `title` and parent `Suite`. When a suite - * with the same title is already present, that suite is returned to provide - * nicer reporter and more flexible meta-testing. - * - * @memberof Mocha - * @public - * @api public - * @param {Suite} parent - * @param {string} title - * @return {Suite} - */ -exports.create = function(parent, title) { - var suite = new Suite(title, parent.ctx); - suite.parent = parent; - title = suite.fullTitle(); - parent.addSuite(suite); - return suite; -}; - -/** - * Initialize a new `Suite` with the given `title` and `ctx`. Derived from [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) - * - * @memberof Mocha - * @public - * @class - * @param {string} title - * @param {Context} parentContext - */ -function Suite(title, parentContext) { - if (!utils.isString(title)) { - throw new Error( - 'Suite `title` should be a "string" but "' + - typeof title + - '" was given instead.' - ); - } - this.title = title; - function Context() {} - Context.prototype = parentContext; - this.ctx = new Context(); - this.suites = []; - this.tests = []; - this.pending = false; - this._beforeEach = []; - this._beforeAll = []; - this._afterEach = []; - this._afterAll = []; - this.root = !title; - this._timeout = 2000; - this._enableTimeouts = true; - this._slow = 75; - this._bail = false; - this._retries = -1; - this._onlyTests = []; - this._onlySuites = []; - this.delayed = false; -} - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Suite, EventEmitter); - -/** - * Return a clone of this `Suite`. - * - * @api private - * @return {Suite} - */ -Suite.prototype.clone = function() { - var suite = new Suite(this.title); - debug('clone'); - suite.ctx = this.ctx; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - return suite; -}; - -/** - * Set or get timeout `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.timeout = function(ms) { - if (!arguments.length) { - return this._timeout; - } - if (ms.toString() === '0') { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = parseInt(ms, 10); - return this; -}; - -/** - * Set or get number of times to retry a failed test. - * - * @api private - * @param {number|string} n - * @return {Suite|number} for chaining - */ -Suite.prototype.retries = function(n) { - if (!arguments.length) { - return this._retries; - } - debug('retries %d', n); - this._retries = parseInt(n, 10) || 0; - return this; -}; - -/** - * Set or get timeout to `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Suite|boolean} self or enabled - */ -Suite.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Set or get slow `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.slow = function(ms) { - if (!arguments.length) { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; -}; - -/** - * Set or get whether to bail after first error. - * - * @api private - * @param {boolean} bail - * @return {Suite|number} for chaining - */ -Suite.prototype.bail = function(bail) { - if (!arguments.length) { - return this._bail; - } - debug('bail %s', bail); - this._bail = bail; - return this; -}; - -/** - * Check if this suite or its parent suite is marked as pending. - * - * @api private - */ -Suite.prototype.isPending = function() { - return this.pending || (this.parent && this.parent.isPending()); -}; - -/** - * Generic hook-creator. - * @private - * @param {string} title - Title of hook - * @param {Function} fn - Hook callback - * @returns {Hook} A new hook - */ -Suite.prototype._createHook = function(title, fn) { - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - hook.file = this.file; - return hook; -}; - -/** - * Run `fn(test[, done])` before running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeAll = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before all" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._beforeAll.push(hook); - this.emit('beforeAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterAll = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after all" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._afterAll.push(hook); - this.emit('afterAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` before each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeEach = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before each" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._beforeEach.push(hook); - this.emit('beforeEach', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterEach = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after each" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._afterEach.push(hook); - this.emit('afterEach', hook); - return this; -}; - -/** - * Add a test `suite`. - * - * @api private - * @param {Suite} suite - * @return {Suite} for chaining - */ -Suite.prototype.addSuite = function(suite) { - suite.parent = this; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - this.suites.push(suite); - this.emit('suite', suite); - return this; -}; - -/** - * Add a `test` to this suite. - * - * @api private - * @param {Test} test - * @return {Suite} for chaining - */ -Suite.prototype.addTest = function(test) { - test.parent = this; - test.timeout(this.timeout()); - test.retries(this.retries()); - test.enableTimeouts(this.enableTimeouts()); - test.slow(this.slow()); - test.ctx = this.ctx; - this.tests.push(test); - this.emit('test', test); - return this; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @memberof Mocha.Suite - * @public - * @api public - * @return {string} - */ -Suite.prototype.fullTitle = function() { - return this.titlePath().join(' '); -}; - -/** - * Return the title path generated by recursively concatenating the parent's - * title path. - * - * @memberof Mocha.Suite - * @public - * @api public - * @return {string} - */ -Suite.prototype.titlePath = function() { - var result = []; - if (this.parent) { - result = result.concat(this.parent.titlePath()); - } - if (!this.root) { - result.push(this.title); - } - return result; -}; - -/** - * Return the total number of tests. - * - * @memberof Mocha.Suite - * @public - * @api public - * @return {number} - */ -Suite.prototype.total = function() { - return ( - this.suites.reduce(function(sum, suite) { - return sum + suite.total(); - }, 0) + this.tests.length - ); -}; - -/** - * Iterates through each suite recursively to find all tests. Applies a - * function in the format `fn(test)`. - * - * @api private - * @param {Function} fn - * @return {Suite} - */ -Suite.prototype.eachTest = function(fn) { - this.tests.forEach(fn); - this.suites.forEach(function(suite) { - suite.eachTest(fn); - }); - return this; -}; - -/** - * This will run the root suite if we happen to be running in delayed mode. - */ -Suite.prototype.run = function run() { - if (this.root) { - this.emit('run'); - } -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/template.html b/multiplatform-crypto-delegated/node_modules/mocha/lib/template.html deleted file mode 100644 index 36c5e0b..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/template.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - Mocha - - - - - -
    - - - - - - diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/test.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/test.js deleted file mode 100644 index d8233a3..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/test.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; -var Runnable = require('./runnable'); -var utils = require('./utils'); -var isString = utils.isString; - -module.exports = Test; - -/** - * Initialize a new `Test` with the given `title` and callback `fn`. - * - * @class - * @extends Runnable - * @param {String} title - * @param {Function} fn - */ -function Test(title, fn) { - if (!isString(title)) { - throw new Error( - 'Test `title` should be a "string" but "' + - typeof title + - '" was given instead.' - ); - } - Runnable.call(this, title, fn); - this.pending = !fn; - this.type = 'test'; -} - -/** - * Inherit from `Runnable.prototype`. - */ -utils.inherits(Test, Runnable); - -Test.prototype.clone = function() { - var test = new Test(this.title, this.fn); - test.timeout(this.timeout()); - test.slow(this.slow()); - test.enableTimeouts(this.enableTimeouts()); - test.retries(this.retries()); - test.currentRetry(this.currentRetry()); - test.globals(this.globals()); - test.parent = this.parent; - test.file = this.file; - test.ctx = this.ctx; - return test; -}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/lib/utils.js b/multiplatform-crypto-delegated/node_modules/mocha/lib/utils.js deleted file mode 100644 index e67bf74..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/lib/utils.js +++ /dev/null @@ -1,670 +0,0 @@ -'use strict'; - -/** - * @module - */ - -/** - * Module dependencies. - */ - -var debug = require('debug')('mocha:watch'); -var fs = require('fs'); -var glob = require('glob'); -var path = require('path'); -var join = path.join; -var he = require('he'); - -/** - * Ignored directories. - */ - -var ignore = ['node_modules', '.git']; - -exports.inherits = require('util').inherits; - -/** - * Escape special characters in the given string of html. - * - * @api private - * @param {string} html - * @return {string} - */ -exports.escape = function(html) { - return he.encode(String(html), {useNamedReferences: false}); -}; - -/** - * Test if the given obj is type of string. - * - * @api private - * @param {Object} obj - * @return {boolean} - */ -exports.isString = function(obj) { - return typeof obj === 'string'; -}; - -/** - * Watch the given `files` for changes - * and invoke `fn(file)` on modification. - * - * @api private - * @param {Array} files - * @param {Function} fn - */ -exports.watch = function(files, fn) { - var options = {interval: 100}; - files.forEach(function(file) { - debug('file %s', file); - fs.watchFile(file, options, function(curr, prev) { - if (prev.mtime < curr.mtime) { - fn(file); - } - }); - }); -}; - -/** - * Ignored files. - * - * @api private - * @param {string} path - * @return {boolean} - */ -function ignored(path) { - return !~ignore.indexOf(path); -} - -/** - * Lookup files in the given `dir`. - * - * @api private - * @param {string} dir - * @param {string[]} [ext=['.js']] - * @param {Array} [ret=[]] - * @return {Array} - */ -exports.files = function(dir, ext, ret) { - ret = ret || []; - ext = ext || ['js']; - - var re = new RegExp('\\.(' + ext.join('|') + ')$'); - - fs - .readdirSync(dir) - .filter(ignored) - .forEach(function(path) { - path = join(dir, path); - if (fs.lstatSync(path).isDirectory()) { - exports.files(path, ext, ret); - } else if (path.match(re)) { - ret.push(path); - } - }); - - return ret; -}; - -/** - * Compute a slug from the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -exports.slug = function(str) { - return str - .toLowerCase() - .replace(/ +/g, '-') - .replace(/[^-\w]/g, ''); -}; - -/** - * Strip the function definition from `str`, and re-indent for pre whitespace. - * - * @param {string} str - * @return {string} - */ -exports.clean = function(str) { - str = str - .replace(/\r\n?|[\n\u2028\u2029]/g, '\n') - .replace(/^\uFEFF/, '') - // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content - .replace( - /^function(?:\s*|\s+[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\s*\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\s*\}|((?:.|\n)*))$/, - '$1$2$3' - ); - - var spaces = str.match(/^\n?( *)/)[1].length; - var tabs = str.match(/^\n?(\t*)/)[1].length; - var re = new RegExp( - '^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs || spaces) + '}', - 'gm' - ); - - str = str.replace(re, ''); - - return str.trim(); -}; - -/** - * Parse the given `qs`. - * - * @api private - * @param {string} qs - * @return {Object} - */ -exports.parseQuery = function(qs) { - return qs - .replace('?', '') - .split('&') - .reduce(function(obj, pair) { - var i = pair.indexOf('='); - var key = pair.slice(0, i); - var val = pair.slice(++i); - - // Due to how the URLSearchParams API treats spaces - obj[key] = decodeURIComponent(val.replace(/\+/g, '%20')); - - return obj; - }, {}); -}; - -/** - * Highlight the given string of `js`. - * - * @api private - * @param {string} js - * @return {string} - */ -function highlight(js) { - return js - .replace(//g, '>') - .replace(/\/\/(.*)/gm, '//$1') - .replace(/('.*?')/gm, '$1') - .replace(/(\d+\.\d+)/gm, '$1') - .replace(/(\d+)/gm, '$1') - .replace( - /\bnew[ \t]+(\w+)/gm, - 'new $1' - ) - .replace( - /\b(function|new|throw|return|var|if|else)\b/gm, - '$1' - ); -} - -/** - * Highlight the contents of tag `name`. - * - * @api private - * @param {string} name - */ -exports.highlightTags = function(name) { - var code = document.getElementById('mocha').getElementsByTagName(name); - for (var i = 0, len = code.length; i < len; ++i) { - code[i].innerHTML = highlight(code[i].innerHTML); - } -}; - -/** - * If a value could have properties, and has none, this function is called, - * which returns a string representation of the empty value. - * - * Functions w/ no properties return `'[Function]'` - * Arrays w/ length === 0 return `'[]'` - * Objects w/ no properties return `'{}'` - * All else: return result of `value.toString()` - * - * @api private - * @param {*} value The value to inspect. - * @param {string} typeHint The type of the value - * @returns {string} - */ -function emptyRepresentation(value, typeHint) { - switch (typeHint) { - case 'function': - return '[Function]'; - case 'object': - return '{}'; - case 'array': - return '[]'; - default: - return value.toString(); - } -} - -/** - * Takes some variable and asks `Object.prototype.toString()` what it thinks it - * is. - * - * @api private - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString - * @param {*} value The value to test. - * @returns {string} Computed type - * @example - * type({}) // 'object' - * type([]) // 'array' - * type(1) // 'number' - * type(false) // 'boolean' - * type(Infinity) // 'number' - * type(null) // 'null' - * type(new Date()) // 'date' - * type(/foo/) // 'regexp' - * type('type') // 'string' - * type(global) // 'global' - * type(new String('foo') // 'object' - */ -var type = (exports.type = function type(value) { - if (value === undefined) { - return 'undefined'; - } else if (value === null) { - return 'null'; - } else if (Buffer.isBuffer(value)) { - return 'buffer'; - } - return Object.prototype.toString - .call(value) - .replace(/^\[.+\s(.+?)]$/, '$1') - .toLowerCase(); -}); - -/** - * Stringify `value`. Different behavior depending on type of value: - * - * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively. - * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes. - * - If `value` is an *empty* object, function, or array, return result of function - * {@link emptyRepresentation}. - * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of - * JSON.stringify(). - * - * @api private - * @see exports.type - * @param {*} value - * @return {string} - */ -exports.stringify = function(value) { - var typeHint = type(value); - - if (!~['object', 'array', 'function'].indexOf(typeHint)) { - if (typeHint === 'buffer') { - var json = Buffer.prototype.toJSON.call(value); - // Based on the toJSON result - return jsonStringify( - json.data && json.type ? json.data : json, - 2 - ).replace(/,(\n|$)/g, '$1'); - } - - // IE7/IE8 has a bizarre String constructor; needs to be coerced - // into an array and back to obj. - if (typeHint === 'string' && typeof value === 'object') { - value = value.split('').reduce(function(acc, char, idx) { - acc[idx] = char; - return acc; - }, {}); - typeHint = 'object'; - } else { - return jsonStringify(value); - } - } - - for (var prop in value) { - if (Object.prototype.hasOwnProperty.call(value, prop)) { - return jsonStringify( - exports.canonicalize(value, null, typeHint), - 2 - ).replace(/,(\n|$)/g, '$1'); - } - } - - return emptyRepresentation(value, typeHint); -}; - -/** - * like JSON.stringify but more sense. - * - * @api private - * @param {Object} object - * @param {number=} spaces - * @param {number=} depth - * @returns {*} - */ -function jsonStringify(object, spaces, depth) { - if (typeof spaces === 'undefined') { - // primitive types - return _stringify(object); - } - - depth = depth || 1; - var space = spaces * depth; - var str = Array.isArray(object) ? '[' : '{'; - var end = Array.isArray(object) ? ']' : '}'; - var length = - typeof object.length === 'number' - ? object.length - : Object.keys(object).length; - // `.repeat()` polyfill - function repeat(s, n) { - return new Array(n).join(s); - } - - function _stringify(val) { - switch (type(val)) { - case 'null': - case 'undefined': - val = '[' + val + ']'; - break; - case 'array': - case 'object': - val = jsonStringify(val, spaces, depth + 1); - break; - case 'boolean': - case 'regexp': - case 'symbol': - case 'number': - val = - val === 0 && 1 / val === -Infinity // `-0` - ? '-0' - : val.toString(); - break; - case 'date': - var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString(); - val = '[Date: ' + sDate + ']'; - break; - case 'buffer': - var json = val.toJSON(); - // Based on the toJSON result - json = json.data && json.type ? json.data : json; - val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']'; - break; - default: - val = - val === '[Function]' || val === '[Circular]' - ? val - : JSON.stringify(val); // string - } - return val; - } - - for (var i in object) { - if (!Object.prototype.hasOwnProperty.call(object, i)) { - continue; // not my business - } - --length; - str += - '\n ' + - repeat(' ', space) + - (Array.isArray(object) ? '' : '"' + i + '": ') + // key - _stringify(object[i]) + // value - (length ? ',' : ''); // comma - } - - return ( - str + - // [], {} - (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end) - ); -} - -/** - * Return a new Thing that has the keys in sorted order. Recursive. - * - * If the Thing... - * - has already been seen, return string `'[Circular]'` - * - is `undefined`, return string `'[undefined]'` - * - is `null`, return value `null` - * - is some other primitive, return the value - * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method - * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again. - * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()` - * - * @api private - * @see {@link exports.stringify} - * @param {*} value Thing to inspect. May or may not have properties. - * @param {Array} [stack=[]] Stack of seen values - * @param {string} [typeHint] Type hint - * @return {(Object|Array|Function|string|undefined)} - */ -exports.canonicalize = function canonicalize(value, stack, typeHint) { - var canonicalizedObj; - /* eslint-disable no-unused-vars */ - var prop; - /* eslint-enable no-unused-vars */ - typeHint = typeHint || type(value); - function withStack(value, fn) { - stack.push(value); - fn(); - stack.pop(); - } - - stack = stack || []; - - if (stack.indexOf(value) !== -1) { - return '[Circular]'; - } - - switch (typeHint) { - case 'undefined': - case 'buffer': - case 'null': - canonicalizedObj = value; - break; - case 'array': - withStack(value, function() { - canonicalizedObj = value.map(function(item) { - return exports.canonicalize(item, stack); - }); - }); - break; - case 'function': - /* eslint-disable guard-for-in */ - for (prop in value) { - canonicalizedObj = {}; - break; - } - /* eslint-enable guard-for-in */ - if (!canonicalizedObj) { - canonicalizedObj = emptyRepresentation(value, typeHint); - break; - } - /* falls through */ - case 'object': - canonicalizedObj = canonicalizedObj || {}; - withStack(value, function() { - Object.keys(value) - .sort() - .forEach(function(key) { - canonicalizedObj[key] = exports.canonicalize(value[key], stack); - }); - }); - break; - case 'date': - case 'number': - case 'regexp': - case 'boolean': - case 'symbol': - canonicalizedObj = value; - break; - default: - canonicalizedObj = value + ''; - } - - return canonicalizedObj; -}; - -/** - * Lookup file names at the given `path`. - * - * @memberof Mocha.utils - * @public - * @api public - * @param {string} filepath Base path to start searching from. - * @param {string[]} extensions File extensions to look for. - * @param {boolean} recursive Whether or not to recurse into subdirectories. - * @return {string[]} An array of paths. - */ -exports.lookupFiles = function lookupFiles(filepath, extensions, recursive) { - var files = []; - - if (!fs.existsSync(filepath)) { - if (fs.existsSync(filepath + '.js')) { - filepath += '.js'; - } else { - files = glob.sync(filepath); - if (!files.length) { - throw new Error("cannot resolve path (or pattern) '" + filepath + "'"); - } - return files; - } - } - - try { - var stat = fs.statSync(filepath); - if (stat.isFile()) { - return filepath; - } - } catch (err) { - // ignore error - return; - } - - fs.readdirSync(filepath).forEach(function(file) { - file = path.join(filepath, file); - try { - var stat = fs.statSync(file); - if (stat.isDirectory()) { - if (recursive) { - files = files.concat(lookupFiles(file, extensions, recursive)); - } - return; - } - } catch (err) { - // ignore error - return; - } - if (!extensions) { - throw new Error( - 'extensions parameter required when filepath is a directory' - ); - } - var re = new RegExp('\\.(?:' + extensions.join('|') + ')$'); - if (!stat.isFile() || !re.test(file) || path.basename(file)[0] === '.') { - return; - } - files.push(file); - }); - - return files; -}; - -/** - * Generate an undefined error with a message warning the user. - * - * @return {Error} - */ - -exports.undefinedError = function() { - return new Error( - 'Caught undefined error, did you throw without specifying what?' - ); -}; - -/** - * Generate an undefined error if `err` is not defined. - * - * @param {Error} err - * @return {Error} - */ - -exports.getError = function(err) { - return err || exports.undefinedError(); -}; - -/** - * @summary - * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`) - * @description - * When invoking this function you get a filter function that get the Error.stack as an input, - * and return a prettify output. - * (i.e: strip Mocha and internal node functions from stack trace). - * @returns {Function} - */ -exports.stackTraceFilter = function() { - // TODO: Replace with `process.browser` - var is = typeof document === 'undefined' ? {node: true} : {browser: true}; - var slash = path.sep; - var cwd; - if (is.node) { - cwd = process.cwd() + slash; - } else { - cwd = (typeof location === 'undefined' - ? window.location - : location - ).href.replace(/\/[^/]*$/, '/'); - slash = '/'; - } - - function isMochaInternal(line) { - return ( - ~line.indexOf('node_modules' + slash + 'mocha' + slash) || - ~line.indexOf('node_modules' + slash + 'mocha.js') || - ~line.indexOf('bower_components' + slash + 'mocha.js') || - ~line.indexOf(slash + 'mocha.js') - ); - } - - function isNodeInternal(line) { - return ( - ~line.indexOf('(timers.js:') || - ~line.indexOf('(events.js:') || - ~line.indexOf('(node.js:') || - ~line.indexOf('(module.js:') || - ~line.indexOf('GeneratorFunctionPrototype.next (native)') || - false - ); - } - - return function(stack) { - stack = stack.split('\n'); - - stack = stack.reduce(function(list, line) { - if (isMochaInternal(line)) { - return list; - } - - if (is.node && isNodeInternal(line)) { - return list; - } - - // Clean up cwd(absolute) - if (/\(?.+:\d+:\d+\)?$/.test(line)) { - line = line.replace('(' + cwd, '('); - } - - list.push(line); - return list; - }, []); - - return stack.join('\n'); - }; -}; - -/** - * Crude, but effective. - * @api - * @param {*} value - * @returns {boolean} Whether or not `value` is a Promise - */ -exports.isPromise = function isPromise(value) { - return typeof value === 'object' && typeof value.then === 'function'; -}; - -/** - * It's a noop. - * @api - */ -exports.noop = function() {}; diff --git a/multiplatform-crypto-delegated/node_modules/mocha/mocha.css b/multiplatform-crypto-delegated/node_modules/mocha/mocha.css deleted file mode 100644 index ec96b00..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/mocha.css +++ /dev/null @@ -1,326 +0,0 @@ -@charset "utf-8"; - -body { - margin:0; -} - -#mocha { - font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif; - margin: 60px 50px; -} - -#mocha ul, -#mocha li { - margin: 0; - padding: 0; -} - -#mocha ul { - list-style: none; -} - -#mocha h1, -#mocha h2 { - margin: 0; -} - -#mocha h1 { - margin-top: 15px; - font-size: 1em; - font-weight: 200; -} - -#mocha h1 a { - text-decoration: none; - color: inherit; -} - -#mocha h1 a:hover { - text-decoration: underline; -} - -#mocha .suite .suite h1 { - margin-top: 0; - font-size: .8em; -} - -#mocha .hidden { - display: none; -} - -#mocha h2 { - font-size: 12px; - font-weight: normal; - cursor: pointer; -} - -#mocha .suite { - margin-left: 15px; -} - -#mocha .test { - margin-left: 15px; - overflow: hidden; -} - -#mocha .test.pending:hover h2::after { - content: '(pending)'; - font-family: arial, sans-serif; -} - -#mocha .test.pass.medium .duration { - background: #c09853; -} - -#mocha .test.pass.slow .duration { - background: #b94a48; -} - -#mocha .test.pass::before { - content: '✓'; - font-size: 12px; - display: block; - float: left; - margin-right: 5px; - color: #00d6b2; -} - -#mocha .test.pass .duration { - font-size: 9px; - margin-left: 5px; - padding: 2px 5px; - color: #fff; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - box-shadow: inset 0 1px 1px rgba(0,0,0,.2); - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - -ms-border-radius: 5px; - -o-border-radius: 5px; - border-radius: 5px; -} - -#mocha .test.pass.fast .duration { - display: none; -} - -#mocha .test.pending { - color: #0b97c4; -} - -#mocha .test.pending::before { - content: '◦'; - color: #0b97c4; -} - -#mocha .test.fail { - color: #c00; -} - -#mocha .test.fail pre { - color: black; -} - -#mocha .test.fail::before { - content: '✖'; - font-size: 12px; - display: block; - float: left; - margin-right: 5px; - color: #c00; -} - -#mocha .test pre.error { - color: #c00; - max-height: 300px; - overflow: auto; -} - -#mocha .test .html-error { - overflow: auto; - color: black; - line-height: 1.5; - display: block; - float: left; - clear: left; - font: 12px/1.5 monaco, monospace; - margin: 5px; - padding: 15px; - border: 1px solid #eee; - max-width: 85%; /*(1)*/ - max-width: -webkit-calc(100% - 42px); - max-width: -moz-calc(100% - 42px); - max-width: calc(100% - 42px); /*(2)*/ - max-height: 300px; - word-wrap: break-word; - border-bottom-color: #ddd; - -webkit-box-shadow: 0 1px 3px #eee; - -moz-box-shadow: 0 1px 3px #eee; - box-shadow: 0 1px 3px #eee; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -#mocha .test .html-error pre.error { - border: none; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-shadow: 0; - -moz-box-shadow: 0; - box-shadow: 0; - padding: 0; - margin: 0; - margin-top: 18px; - max-height: none; -} - -/** - * (1): approximate for browsers not supporting calc - * (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border) - * ^^ seriously - */ -#mocha .test pre { - display: block; - float: left; - clear: left; - font: 12px/1.5 monaco, monospace; - margin: 5px; - padding: 15px; - border: 1px solid #eee; - max-width: 85%; /*(1)*/ - max-width: -webkit-calc(100% - 42px); - max-width: -moz-calc(100% - 42px); - max-width: calc(100% - 42px); /*(2)*/ - word-wrap: break-word; - border-bottom-color: #ddd; - -webkit-box-shadow: 0 1px 3px #eee; - -moz-box-shadow: 0 1px 3px #eee; - box-shadow: 0 1px 3px #eee; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -#mocha .test h2 { - position: relative; -} - -#mocha .test a.replay { - position: absolute; - top: 3px; - right: 0; - text-decoration: none; - vertical-align: middle; - display: block; - width: 15px; - height: 15px; - line-height: 15px; - text-align: center; - background: #eee; - font-size: 15px; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; - -webkit-transition:opacity 200ms; - -moz-transition:opacity 200ms; - -o-transition:opacity 200ms; - transition: opacity 200ms; - opacity: 0.3; - color: #888; -} - -#mocha .test:hover a.replay { - opacity: 1; -} - -#mocha-report.pass .test.fail { - display: none; -} - -#mocha-report.fail .test.pass { - display: none; -} - -#mocha-report.pending .test.pass, -#mocha-report.pending .test.fail { - display: none; -} -#mocha-report.pending .test.pass.pending { - display: block; -} - -#mocha-error { - color: #c00; - font-size: 1.5em; - font-weight: 100; - letter-spacing: 1px; -} - -#mocha-stats { - position: fixed; - top: 15px; - right: 10px; - font-size: 12px; - margin: 0; - color: #888; - z-index: 1; -} - -#mocha-stats .progress { - float: right; - padding-top: 0; - - /** - * Set safe initial values, so mochas .progress does not inherit these - * properties from Bootstrap .progress (which causes .progress height to - * equal line height set in Bootstrap). - */ - height: auto; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - background-color: initial; -} - -#mocha-stats em { - color: black; -} - -#mocha-stats a { - text-decoration: none; - color: inherit; -} - -#mocha-stats a:hover { - border-bottom: 1px solid #eee; -} - -#mocha-stats li { - display: inline-block; - margin: 0 5px; - list-style: none; - padding-top: 11px; -} - -#mocha-stats canvas { - width: 40px; - height: 40px; -} - -#mocha code .comment { color: #ddd; } -#mocha code .init { color: #2f6fad; } -#mocha code .string { color: #5890ad; } -#mocha code .keyword { color: #8a6343; } -#mocha code .number { color: #2f6fad; } - -@media screen and (max-device-width: 480px) { - #mocha { - margin: 60px 0px; - } - - #mocha #stats { - position: absolute; - } -} diff --git a/multiplatform-crypto-delegated/node_modules/mocha/mocha.js b/multiplatform-crypto-delegated/node_modules/mocha/mocha.js deleted file mode 100644 index bfe8127..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/mocha.js +++ /dev/null @@ -1,16046 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) { - suites.shift(); - } - return common.suite.create({ - title: title, - file: file, - fn: false - }); - }; - - /** - * Exclusive Suite. - */ - - context.suite.only = function(title) { - if (suites.length > 1) { - suites.shift(); - } - return common.suite.only({ - title: title, - file: file, - fn: false - }); - }; - - /** - * Describe a specification or test-case - * with the given `title` and callback `fn` - * acting as a thunk. - */ - - context.test = function(title, fn) { - var test = new Test(title, fn); - test.file = file; - suites[0].addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function(title, fn) { - return common.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common.test.skip; - context.test.retries = common.test.retries; - }); -}; - -},{"../test":35,"./common":8}],12:[function(require,module,exports){ -'use strict'; - -var Test = require('../test'); - -/** - * TDD-style interface: - * - * suite('Array', function() { - * suite('#indexOf()', function() { - * suiteSetup(function() { - * - * }); - * - * test('should return -1 when not present', function() { - * - * }); - * - * test('should return the index when present', function() { - * - * }); - * - * suiteTeardown(function() { - * - * }); - * }); - * }); - * - * @param {Suite} suite Root suite. - */ -module.exports = function(suite) { - var suites = [suite]; - - suite.on('pre-require', function(context, file, mocha) { - var common = require('./common')(suites, context, mocha); - - context.setup = common.beforeEach; - context.teardown = common.afterEach; - context.suiteSetup = common.before; - context.suiteTeardown = common.after; - context.run = mocha.options.delay && common.runWithSuite(suite); - - /** - * Describe a "suite" with the given `title` and callback `fn` containing - * nested suites and/or tests. - */ - context.suite = function(title, fn) { - return common.suite.create({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Pending suite. - */ - context.suite.skip = function(title, fn) { - return common.suite.skip({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Exclusive test-case. - */ - context.suite.only = function(title, fn) { - return common.suite.only({ - title: title, - file: file, - fn: fn - }); - }; - - /** - * Describe a specification or test-case with the given `title` and - * callback `fn` acting as a thunk. - */ - context.test = function(title, fn) { - var suite = suites[0]; - if (suite.isPending()) { - fn = null; - } - var test = new Test(title, fn); - test.file = file; - suite.addTest(test); - return test; - }; - - /** - * Exclusive test-case. - */ - - context.test.only = function(title, fn) { - return common.test.only(mocha, context.test(title, fn)); - }; - - context.test.skip = common.test.skip; - context.test.retries = common.test.retries; - }); -}; - -},{"../test":35,"./common":8}],13:[function(require,module,exports){ -(function (process,global,__dirname){ -'use strict'; - -/*! - * mocha - * Copyright(c) 2011 TJ Holowaychuk - * MIT Licensed - */ - -var escapeRe = require('escape-string-regexp'); -var path = require('path'); -var reporters = require('./reporters'); -var utils = require('./utils'); - -exports = module.exports = Mocha; - -/** - * To require local UIs and reporters when running in node. - */ - -if (!process.browser) { - var cwd = process.cwd(); - module.paths.push(cwd, path.join(cwd, 'node_modules')); -} - -/** - * Expose internals. - */ - -/** - * @public - * @class utils - * @memberof Mocha - */ -exports.utils = utils; -exports.interfaces = require('./interfaces'); -/** - * - * @memberof Mocha - * @public - */ -exports.reporters = reporters; -exports.Runnable = require('./runnable'); -exports.Context = require('./context'); -/** - * - * @memberof Mocha - */ -exports.Runner = require('./runner'); -exports.Suite = require('./suite'); -exports.Hook = require('./hook'); -exports.Test = require('./test'); - -/** - * Return image `name` path. - * - * @private - * @param {string} name - * @return {string} - */ -function image(name) { - return path.join(__dirname, '..', 'assets', 'growl', name + '.png'); -} - -/** - * Set up mocha with `options`. - * - * Options: - * - * - `ui` name "bdd", "tdd", "exports" etc - * - `reporter` reporter instance, defaults to `mocha.reporters.spec` - * - `globals` array of accepted globals - * - `timeout` timeout in milliseconds - * - `retries` number of times to retry failed tests - * - `bail` bail on the first test failure - * - `slow` milliseconds to wait before considering a test slow - * - `ignoreLeaks` ignore global leaks - * - `fullTrace` display the full stack-trace on failing - * - `grep` string or regexp to filter tests with - * - * @class Mocha - * @param {Object} options - */ -function Mocha(options) { - options = options || {}; - this.files = []; - this.options = options; - if (options.grep) { - this.grep(new RegExp(options.grep)); - } - if (options.fgrep) { - this.fgrep(options.fgrep); - } - this.suite = new exports.Suite('', new exports.Context()); - this.ui(options.ui); - this.bail(options.bail); - this.reporter(options.reporter, options.reporterOptions); - if (typeof options.timeout !== 'undefined' && options.timeout !== null) { - this.timeout(options.timeout); - } - if (typeof options.retries !== 'undefined' && options.retries !== null) { - this.retries(options.retries); - } - this.useColors(options.useColors); - if (options.enableTimeouts !== null) { - this.enableTimeouts(options.enableTimeouts); - } - if (options.slow) { - this.slow(options.slow); - } -} - -/** - * Enable or disable bailing on the first failure. - * - * @public - * @api public - * @param {boolean} [bail] - */ -Mocha.prototype.bail = function(bail) { - if (!arguments.length) { - bail = true; - } - this.suite.bail(bail); - return this; -}; - -/** - * Add test `file`. - * - * @public - * @api public - * @param {string} file - */ -Mocha.prototype.addFile = function(file) { - this.files.push(file); - return this; -}; - -/** - * Set reporter to `reporter`, defaults to "spec". - * - * @public - * @param {String|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - * @api public - * @param {string|Function} reporter name or constructor - * @param {Object} reporterOptions optional options - */ -Mocha.prototype.reporter = function(reporter, reporterOptions) { - if (typeof reporter === 'function') { - this._reporter = reporter; - } else { - reporter = reporter || 'spec'; - var _reporter; - // Try to load a built-in reporter. - if (reporters[reporter]) { - _reporter = reporters[reporter]; - } - // Try to load reporters from process.cwd() and node_modules - if (!_reporter) { - try { - _reporter = require(reporter); - } catch (err) { - if (err.message.indexOf('Cannot find module') !== -1) { - // Try to load reporters from a path (absolute or relative) - try { - _reporter = require(path.resolve(process.cwd(), reporter)); - } catch (_err) { - err.message.indexOf('Cannot find module') !== -1 - ? console.warn('"' + reporter + '" reporter not found') - : console.warn( - '"' + - reporter + - '" reporter blew up with error:\n' + - err.stack - ); - } - } else { - console.warn( - '"' + reporter + '" reporter blew up with error:\n' + err.stack - ); - } - } - } - if (!_reporter && reporter === 'teamcity') { - console.warn( - 'The Teamcity reporter was moved to a package named ' + - 'mocha-teamcity-reporter ' + - '(https://npmjs.org/package/mocha-teamcity-reporter).' - ); - } - if (!_reporter) { - throw new Error('invalid reporter "' + reporter + '"'); - } - this._reporter = _reporter; - } - this.options.reporterOptions = reporterOptions; - return this; -}; - -/** - * Set test UI `name`, defaults to "bdd". - * @public - * @api public - * @param {string} bdd - */ -Mocha.prototype.ui = function(name) { - name = name || 'bdd'; - this._ui = exports.interfaces[name]; - if (!this._ui) { - try { - this._ui = require(name); - } catch (err) { - throw new Error('invalid interface "' + name + '"'); - } - } - this._ui = this._ui(this.suite); - - this.suite.on('pre-require', function(context) { - exports.afterEach = context.afterEach || context.teardown; - exports.after = context.after || context.suiteTeardown; - exports.beforeEach = context.beforeEach || context.setup; - exports.before = context.before || context.suiteSetup; - exports.describe = context.describe || context.suite; - exports.it = context.it || context.test; - exports.xit = context.xit || context.test.skip; - exports.setup = context.setup || context.beforeEach; - exports.suiteSetup = context.suiteSetup || context.before; - exports.suiteTeardown = context.suiteTeardown || context.after; - exports.suite = context.suite || context.describe; - exports.teardown = context.teardown || context.afterEach; - exports.test = context.test || context.it; - exports.run = context.run; - }); - - return this; -}; - -/** - * Load registered files. - * - * @api private - */ -Mocha.prototype.loadFiles = function(fn) { - var self = this; - var suite = this.suite; - this.files.forEach(function(file) { - file = path.resolve(file); - suite.emit('pre-require', global, file, self); - suite.emit('require', require(file), file, self); - suite.emit('post-require', global, file, self); - }); - fn && fn(); -}; - -/** - * Enable growl support. - * - * @api private - */ -Mocha.prototype._growl = function(runner, reporter) { - var notify = require('growl'); - - runner.on('end', function() { - var stats = reporter.stats; - if (stats.failures) { - var msg = stats.failures + ' of ' + runner.total + ' tests failed'; - notify(msg, {name: 'mocha', title: 'Failed', image: image('error')}); - } else { - notify(stats.passes + ' tests passed in ' + stats.duration + 'ms', { - name: 'mocha', - title: 'Passed', - image: image('ok') - }); - } - }); -}; - -/** - * Escape string and add it to grep as a regexp. - * - * @public - * @api public - * @param str - * @returns {Mocha} - */ -Mocha.prototype.fgrep = function(str) { - return this.grep(new RegExp(escapeRe(str))); -}; - -/** - * Add regexp to grep, if `re` is a string it is escaped. - * - * @public - * @param {RegExp|String} re - * @return {Mocha} - * @api public - * @param {RegExp|string} re - * @return {Mocha} - */ -Mocha.prototype.grep = function(re) { - if (utils.isString(re)) { - // extract args if it's regex-like, i.e: [string, pattern, flag] - var arg = re.match(/^\/(.*)\/(g|i|)$|.*/); - this.options.grep = new RegExp(arg[1] || arg[0], arg[2]); - } else { - this.options.grep = re; - } - return this; -}; -/** - * Invert `.grep()` matches. - * - * @public - * @return {Mocha} - * @api public - */ -Mocha.prototype.invert = function() { - this.options.invert = true; - return this; -}; - -/** - * Ignore global leaks. - * - * @public - * @param {Boolean} ignore - * @return {Mocha} - * @api public - * @param {boolean} ignore - * @return {Mocha} - */ -Mocha.prototype.ignoreLeaks = function(ignore) { - this.options.ignoreLeaks = Boolean(ignore); - return this; -}; - -/** - * Enable global leak checking. - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.checkLeaks = function() { - this.options.ignoreLeaks = false; - return this; -}; - -/** - * Display long stack-trace on failing - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.fullTrace = function() { - this.options.fullStackTrace = true; - return this; -}; - -/** - * Enable growl support. - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.growl = function() { - this.options.growl = true; - return this; -}; - -/** - * Ignore `globals` array or string. - * - * @param {Array|String} globals - * @return {Mocha} - * @api public - * @public - * @param {Array|string} globals - * @return {Mocha} - */ -Mocha.prototype.globals = function(globals) { - this.options.globals = (this.options.globals || []).concat(globals); - return this; -}; - -/** - * Emit color output. - * - * @param {Boolean} colors - * @return {Mocha} - * @api public - * @public - * @param {boolean} colors - * @return {Mocha} - */ -Mocha.prototype.useColors = function(colors) { - if (colors !== undefined) { - this.options.useColors = colors; - } - return this; -}; - -/** - * Use inline diffs rather than +/-. - * - * @param {Boolean} inlineDiffs - * @return {Mocha} - * @api public - * @public - * @param {boolean} inlineDiffs - * @return {Mocha} - */ -Mocha.prototype.useInlineDiffs = function(inlineDiffs) { - this.options.useInlineDiffs = inlineDiffs !== undefined && inlineDiffs; - return this; -}; - -/** - * Do not show diffs at all. - * - * @param {Boolean} hideDiff - * @return {Mocha} - * @api public - * @public - * @param {boolean} hideDiff - * @return {Mocha} - */ -Mocha.prototype.hideDiff = function(hideDiff) { - this.options.hideDiff = hideDiff !== undefined && hideDiff; - return this; -}; - -/** - * Set the timeout in milliseconds. - * - * @param {Number} timeout - * @return {Mocha} - * @api public - * @public - * @param {number} timeout - * @return {Mocha} - */ -Mocha.prototype.timeout = function(timeout) { - this.suite.timeout(timeout); - return this; -}; - -/** - * Set the number of times to retry failed tests. - * - * @param {Number} retry times - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.retries = function(n) { - this.suite.retries(n); - return this; -}; - -/** - * Set slowness threshold in milliseconds. - * - * @param {Number} slow - * @return {Mocha} - * @api public - * @public - * @param {number} slow - * @return {Mocha} - */ -Mocha.prototype.slow = function(slow) { - this.suite.slow(slow); - return this; -}; - -/** - * Enable timeouts. - * - * @param {Boolean} enabled - * @return {Mocha} - * @api public - * @public - * @param {boolean} enabled - * @return {Mocha} - */ -Mocha.prototype.enableTimeouts = function(enabled) { - this.suite.enableTimeouts( - arguments.length && enabled !== undefined ? enabled : true - ); - return this; -}; - -/** - * Makes all tests async (accepting a callback) - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.asyncOnly = function() { - this.options.asyncOnly = true; - return this; -}; - -/** - * Disable syntax highlighting (in browser). - * - * @api public - * @public - */ -Mocha.prototype.noHighlighting = function() { - this.options.noHighlighting = true; - return this; -}; - -/** - * Enable uncaught errors to propagate (in browser). - * - * @return {Mocha} - * @api public - * @public - */ -Mocha.prototype.allowUncaught = function() { - this.options.allowUncaught = true; - return this; -}; - -/** - * Delay root suite execution. - * @returns {Mocha} - */ -Mocha.prototype.delay = function delay() { - this.options.delay = true; - return this; -}; - -/** - * Tests marked only fail the suite - * @returns {Mocha} - */ -Mocha.prototype.forbidOnly = function() { - this.options.forbidOnly = true; - return this; -}; - -/** - * Pending tests and tests marked skip fail the suite - * @returns {Mocha} - */ -Mocha.prototype.forbidPending = function() { - this.options.forbidPending = true; - return this; -}; - -/** - * Run tests and invoke `fn()` when complete. - * - * Note that `loadFiles` relies on Node's `require` to execute - * the test interface functions and will be subject to the - * cache - if the files are already in the `require` cache, - * they will effectively be skipped. Therefore, to run tests - * multiple times or to run tests in files that are already - * in the `require` cache, make sure to clear them from the - * cache first in whichever manner best suits your needs. - * - * @api public - * @public - * @param {Function} fn - * @return {Runner} - */ -Mocha.prototype.run = function(fn) { - if (this.files.length) { - this.loadFiles(); - } - var suite = this.suite; - var options = this.options; - options.files = this.files; - var runner = new exports.Runner(suite, options.delay); - var reporter = new this._reporter(runner, options); - runner.ignoreLeaks = options.ignoreLeaks !== false; - runner.fullStackTrace = options.fullStackTrace; - runner.asyncOnly = options.asyncOnly; - runner.allowUncaught = options.allowUncaught; - runner.forbidOnly = options.forbidOnly; - runner.forbidPending = options.forbidPending; - if (options.grep) { - runner.grep(options.grep, options.invert); - } - if (options.globals) { - runner.globals(options.globals); - } - if (options.growl) { - this._growl(runner, reporter); - } - if (options.useColors !== undefined) { - exports.reporters.Base.useColors = options.useColors; - } - exports.reporters.Base.inlineDiffs = options.useInlineDiffs; - exports.reporters.Base.hideDiff = options.hideDiff; - - function done(failures) { - if (reporter.done) { - reporter.done(failures, fn); - } else { - fn && fn(failures); - } - } - - return runner.run(done); -}; - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},"/lib") -},{"./context":5,"./hook":6,"./interfaces":10,"./reporters":20,"./runnable":32,"./runner":33,"./suite":34,"./test":35,"./utils":36,"_process":56,"escape-string-regexp":46,"growl":2,"path":40}],14:[function(require,module,exports){ -'use strict'; -/** - * @module milliseconds - */ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * @memberof Mocha - * @public - * @api public - * @param {string|number} val - * @return {string|number} - */ -module.exports = function(val) { - if (typeof val === 'string') { - return parse(val); - } - return format(val); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @api private - * @param {string} str - * @return {number} - */ -function parse(str) { - var match = /^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 's': - return n * s; - case 'ms': - return n; - default: - // No default case - } -} - -/** - * Format for `ms`. - * - * @api private - * @param {number} ms - * @return {string} - */ -function format(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -},{}],15:[function(require,module,exports){ -'use strict'; - -module.exports = Pending; - -/** - * Initialize a new `Pending` error with the given message. - * - * @param {string} message - */ -function Pending(message) { - this.message = message; -} - -},{}],16:[function(require,module,exports){ -(function (process,global){ -'use strict'; -/** - * @module Base - */ -/** - * Module dependencies. - */ - -var tty = require('tty'); -var diff = require('diff'); -var ms = require('../ms'); -var utils = require('../utils'); -var supportsColor = process.browser ? null : require('supports-color'); - -/** - * Expose `Base`. - */ - -exports = module.exports = Base; - -/** - * Save timer references to avoid Sinon interfering. - * See: https://github.com/mochajs/mocha/issues/237 - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Check if both stdio streams are associated with a tty. - */ - -var isatty = tty.isatty(1) && tty.isatty(2); - -/** - * Enable coloring by default, except in the browser interface. - */ - -exports.useColors = - !process.browser && - (supportsColor.stdout || process.env.MOCHA_COLORS !== undefined); - -/** - * Inline diffs instead of +/- - */ - -exports.inlineDiffs = false; - -/** - * Default color map. - */ - -exports.colors = { - pass: 90, - fail: 31, - 'bright pass': 92, - 'bright fail': 91, - 'bright yellow': 93, - pending: 36, - suite: 0, - 'error title': 0, - 'error message': 31, - 'error stack': 90, - checkmark: 32, - fast: 90, - medium: 33, - slow: 31, - green: 32, - light: 90, - 'diff gutter': 90, - 'diff added': 32, - 'diff removed': 31 -}; - -/** - * Default symbol map. - */ - -exports.symbols = { - ok: '✓', - err: '✖', - dot: '․', - comma: ',', - bang: '!' -}; - -// With node.js on Windows: use symbols available in terminal default fonts -if (process.platform === 'win32') { - exports.symbols.ok = '\u221A'; - exports.symbols.err = '\u00D7'; - exports.symbols.dot = '.'; -} - -/** - * Color `str` with the given `type`, - * allowing colors to be disabled, - * as well as user-defined color - * schemes. - * - * @param {string} type - * @param {string} str - * @return {string} - * @api private - */ -var color = (exports.color = function(type, str) { - if (!exports.useColors) { - return String(str); - } - return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m'; -}); - -/** - * Expose term window size, with some defaults for when stderr is not a tty. - */ - -exports.window = { - width: 75 -}; - -if (isatty) { - exports.window.width = process.stdout.getWindowSize - ? process.stdout.getWindowSize(1)[0] - : tty.getWindowSize()[1]; -} - -/** - * Expose some basic cursor interactions that are common among reporters. - */ - -exports.cursor = { - hide: function() { - isatty && process.stdout.write('\u001b[?25l'); - }, - - show: function() { - isatty && process.stdout.write('\u001b[?25h'); - }, - - deleteLine: function() { - isatty && process.stdout.write('\u001b[2K'); - }, - - beginningOfLine: function() { - isatty && process.stdout.write('\u001b[0G'); - }, - - CR: function() { - if (isatty) { - exports.cursor.deleteLine(); - exports.cursor.beginningOfLine(); - } else { - process.stdout.write('\r'); - } - } -}; - -function showDiff(err) { - return ( - err && - err.showDiff !== false && - sameType(err.actual, err.expected) && - err.expected !== undefined - ); -} - -function stringifyDiffObjs(err) { - if (!utils.isString(err.actual) || !utils.isString(err.expected)) { - err.actual = utils.stringify(err.actual); - err.expected = utils.stringify(err.expected); - } -} - -/** - * Returns a diff between 2 strings with coloured ANSI output. - * - * The diff will be either inline or unified dependant on the value - * of `Base.inlineDiff`. - * - * @param {string} actual - * @param {string} expected - * @return {string} Diff - */ -var generateDiff = (exports.generateDiff = function(actual, expected) { - return exports.inlineDiffs - ? inlineDiff(actual, expected) - : unifiedDiff(actual, expected); -}); - -/** - * Output the given `failures` as a list. - * - * @public - * @memberof Mocha.reporters.Base - * @variation 1 - * @param {Array} failures - * @api public - */ - -exports.list = function(failures) { - console.log(); - failures.forEach(function(test, i) { - // format - var fmt = - color('error title', ' %s) %s:\n') + - color('error message', ' %s') + - color('error stack', '\n%s\n'); - - // msg - var msg; - var err = test.err; - var message; - if (err.message && typeof err.message.toString === 'function') { - message = err.message + ''; - } else if (typeof err.inspect === 'function') { - message = err.inspect() + ''; - } else { - message = ''; - } - var stack = err.stack || message; - var index = message ? stack.indexOf(message) : -1; - - if (index === -1) { - msg = message; - } else { - index += message.length; - msg = stack.slice(0, index); - // remove msg from stack - stack = stack.slice(index + 1); - } - - // uncaught - if (err.uncaught) { - msg = 'Uncaught ' + msg; - } - // explicitly show diff - if (!exports.hideDiff && showDiff(err)) { - stringifyDiffObjs(err); - fmt = - color('error title', ' %s) %s:\n%s') + color('error stack', '\n%s\n'); - var match = message.match(/^([^:]+): expected/); - msg = '\n ' + color('error message', match ? match[1] : msg); - - msg += generateDiff(err.actual, err.expected); - } - - // indent stack trace - stack = stack.replace(/^/gm, ' '); - - // indented test title - var testTitle = ''; - test.titlePath().forEach(function(str, index) { - if (index !== 0) { - testTitle += '\n '; - } - for (var i = 0; i < index; i++) { - testTitle += ' '; - } - testTitle += str; - }); - - console.log(fmt, i + 1, testTitle, msg, stack); - }); -}; - -/** - * Initialize a new `Base` reporter. - * - * All other reporters generally - * inherit from this reporter, providing - * stats such as test duration, number - * of tests passed / failed etc. - * - * @memberof Mocha.reporters - * @public - * @class - * @param {Runner} runner - * @api public - */ - -function Base(runner) { - var stats = (this.stats = { - suites: 0, - tests: 0, - passes: 0, - pending: 0, - failures: 0 - }); - var failures = (this.failures = []); - - if (!runner) { - return; - } - this.runner = runner; - - runner.stats = stats; - - runner.on('start', function() { - stats.start = new Date(); - }); - - runner.on('suite', function(suite) { - stats.suites = stats.suites || 0; - suite.root || stats.suites++; - }); - - runner.on('test end', function() { - stats.tests = stats.tests || 0; - stats.tests++; - }); - - runner.on('pass', function(test) { - stats.passes = stats.passes || 0; - - if (test.duration > test.slow()) { - test.speed = 'slow'; - } else if (test.duration > test.slow() / 2) { - test.speed = 'medium'; - } else { - test.speed = 'fast'; - } - - stats.passes++; - }); - - runner.on('fail', function(test, err) { - stats.failures = stats.failures || 0; - stats.failures++; - if (showDiff(err)) { - stringifyDiffObjs(err); - } - test.err = err; - failures.push(test); - }); - - runner.once('end', function() { - stats.end = new Date(); - stats.duration = stats.end - stats.start; - }); - - runner.on('pending', function() { - stats.pending++; - }); -} - -/** - * Output common epilogue used by many of - * the bundled reporters. - * - * @memberof Mocha.reporters.Base - * @public - * @api public - */ -Base.prototype.epilogue = function() { - var stats = this.stats; - var fmt; - - console.log(); - - // passes - fmt = - color('bright pass', ' ') + - color('green', ' %d passing') + - color('light', ' (%s)'); - - console.log(fmt, stats.passes || 0, ms(stats.duration)); - - // pending - if (stats.pending) { - fmt = color('pending', ' ') + color('pending', ' %d pending'); - - console.log(fmt, stats.pending); - } - - // failures - if (stats.failures) { - fmt = color('fail', ' %d failing'); - - console.log(fmt, stats.failures); - - Base.list(this.failures); - console.log(); - } - - console.log(); -}; - -/** - * Pad the given `str` to `len`. - * - * @api private - * @param {string} str - * @param {string} len - * @return {string} - */ -function pad(str, len) { - str = String(str); - return Array(len - str.length + 1).join(' ') + str; -} - -/** - * Returns an inline diff between 2 strings with coloured ANSI output. - * - * @api private - * @param {String} actual - * @param {String} expected - * @return {string} Diff - */ -function inlineDiff(actual, expected) { - var msg = errorDiff(actual, expected); - - // linenos - var lines = msg.split('\n'); - if (lines.length > 4) { - var width = String(lines.length).length; - msg = lines - .map(function(str, i) { - return pad(++i, width) + ' |' + ' ' + str; - }) - .join('\n'); - } - - // legend - msg = - '\n' + - color('diff removed', 'actual') + - ' ' + - color('diff added', 'expected') + - '\n\n' + - msg + - '\n'; - - // indent - msg = msg.replace(/^/gm, ' '); - return msg; -} - -/** - * Returns a unified diff between two strings with coloured ANSI output. - * - * @api private - * @param {String} actual - * @param {String} expected - * @return {string} The diff. - */ -function unifiedDiff(actual, expected) { - var indent = ' '; - function cleanUp(line) { - if (line[0] === '+') { - return indent + colorLines('diff added', line); - } - if (line[0] === '-') { - return indent + colorLines('diff removed', line); - } - if (line.match(/@@/)) { - return '--'; - } - if (line.match(/\\ No newline/)) { - return null; - } - return indent + line; - } - function notBlank(line) { - return typeof line !== 'undefined' && line !== null; - } - var msg = diff.createPatch('string', actual, expected); - var lines = msg.split('\n').splice(5); - return ( - '\n ' + - colorLines('diff added', '+ expected') + - ' ' + - colorLines('diff removed', '- actual') + - '\n\n' + - lines - .map(cleanUp) - .filter(notBlank) - .join('\n') - ); -} - -/** - * Return a character diff for `err`. - * - * @api private - * @param {String} actual - * @param {String} expected - * @return {string} the diff - */ -function errorDiff(actual, expected) { - return diff - .diffWordsWithSpace(actual, expected) - .map(function(str) { - if (str.added) { - return colorLines('diff added', str.value); - } - if (str.removed) { - return colorLines('diff removed', str.value); - } - return str.value; - }) - .join(''); -} - -/** - * Color lines for `str`, using the color `name`. - * - * @api private - * @param {string} name - * @param {string} str - * @return {string} - */ -function colorLines(name, str) { - return str - .split('\n') - .map(function(str) { - return color(name, str); - }) - .join('\n'); -} - -/** - * Object#toString reference. - */ -var objToString = Object.prototype.toString; - -/** - * Check that a / b have the same type. - * - * @api private - * @param {Object} a - * @param {Object} b - * @return {boolean} - */ -function sameType(a, b) { - return objToString.call(a) === objToString.call(b); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../ms":14,"../utils":36,"_process":56,"diff":45,"supports-color":40,"tty":4}],17:[function(require,module,exports){ -'use strict'; -/** - * @module Doc - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Expose `Doc`. - */ - -exports = module.exports = Doc; - -/** - * Initialize a new `Doc` reporter. - * - * @class - * @memberof Mocha.reporters - * @extends {Base} - * @public - * @param {Runner} runner - * @api public - */ -function Doc(runner) { - Base.call(this, runner); - - var indents = 2; - - function indent() { - return Array(indents).join(' '); - } - - runner.on('suite', function(suite) { - if (suite.root) { - return; - } - ++indents; - console.log('%s
    ', indent()); - ++indents; - console.log('%s

    %s

    ', indent(), utils.escape(suite.title)); - console.log('%s
    ', indent()); - }); - - runner.on('suite end', function(suite) { - if (suite.root) { - return; - } - console.log('%s
    ', indent()); - --indents; - console.log('%s
    ', indent()); - --indents; - }); - - runner.on('pass', function(test) { - console.log('%s
    %s
    ', indent(), utils.escape(test.title)); - var code = utils.escape(utils.clean(test.body)); - console.log('%s
    %s
    ', indent(), code); - }); - - runner.on('fail', function(test, err) { - console.log( - '%s
    %s
    ', - indent(), - utils.escape(test.title) - ); - var code = utils.escape(utils.clean(test.body)); - console.log( - '%s
    %s
    ', - indent(), - code - ); - console.log('%s
    %s
    ', indent(), utils.escape(err)); - }); -} - -},{"../utils":36,"./base":16}],18:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module Dot - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Dot`. - */ - -exports = module.exports = Dot; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @public - * @api public - * @param {Runner} runner - */ -function Dot(runner) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var n = -1; - - runner.on('start', function() { - process.stdout.write('\n'); - }); - - runner.on('pending', function() { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('pending', Base.symbols.comma)); - }); - - runner.on('pass', function(test) { - if (++n % width === 0) { - process.stdout.write('\n '); - } - if (test.speed === 'slow') { - process.stdout.write(color('bright yellow', Base.symbols.dot)); - } else { - process.stdout.write(color(test.speed, Base.symbols.dot)); - } - }); - - runner.on('fail', function() { - if (++n % width === 0) { - process.stdout.write('\n '); - } - process.stdout.write(color('fail', Base.symbols.bang)); - }); - - runner.once('end', function() { - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Dot, Base); - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],19:[function(require,module,exports){ -(function (global){ -'use strict'; - -/* eslint-env browser */ -/** - * @module HTML - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var Progress = require('../browser/progress'); -var escapeRe = require('escape-string-regexp'); -var escape = utils.escape; - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `HTML`. - */ - -exports = module.exports = HTML; - -/** - * Stats template. - */ - -var statsTemplate = - ''; - -var playIcon = '‣'; - -/** - * Initialize a new `HTML` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function HTML(runner) { - Base.call(this, runner); - - var self = this; - var stats = this.stats; - var stat = fragment(statsTemplate); - var items = stat.getElementsByTagName('li'); - var passes = items[1].getElementsByTagName('em')[0]; - var passesLink = items[1].getElementsByTagName('a')[0]; - var failures = items[2].getElementsByTagName('em')[0]; - var failuresLink = items[2].getElementsByTagName('a')[0]; - var duration = items[3].getElementsByTagName('em')[0]; - var canvas = stat.getElementsByTagName('canvas')[0]; - var report = fragment('
      '); - var stack = [report]; - var progress; - var ctx; - var root = document.getElementById('mocha'); - - if (canvas.getContext) { - var ratio = window.devicePixelRatio || 1; - canvas.style.width = canvas.width; - canvas.style.height = canvas.height; - canvas.width *= ratio; - canvas.height *= ratio; - ctx = canvas.getContext('2d'); - ctx.scale(ratio, ratio); - progress = new Progress(); - } - - if (!root) { - return error('#mocha div missing, add it to your document'); - } - - // pass toggle - on(passesLink, 'click', function(evt) { - evt.preventDefault(); - unhide(); - var name = /pass/.test(report.className) ? '' : ' pass'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test pass'); - } - }); - - // failure toggle - on(failuresLink, 'click', function(evt) { - evt.preventDefault(); - unhide(); - var name = /fail/.test(report.className) ? '' : ' fail'; - report.className = report.className.replace(/fail|pass/g, '') + name; - if (report.className.trim()) { - hideSuitesWithout('test fail'); - } - }); - - root.appendChild(stat); - root.appendChild(report); - - if (progress) { - progress.size(40); - } - - runner.on('suite', function(suite) { - if (suite.root) { - return; - } - - // suite - var url = self.suiteURL(suite); - var el = fragment( - '
    • %s

    • ', - url, - escape(suite.title) - ); - - // container - stack[0].appendChild(el); - stack.unshift(document.createElement('ul')); - el.appendChild(stack[0]); - }); - - runner.on('suite end', function(suite) { - if (suite.root) { - updateStats(); - return; - } - stack.shift(); - }); - - runner.on('pass', function(test) { - var url = self.testURL(test); - var markup = - '
    • %e%ems ' + - '' + - playIcon + - '

    • '; - var el = fragment(markup, test.speed, test.title, test.duration, url); - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on('fail', function(test) { - var el = fragment( - '
    • %e ' + - playIcon + - '

    • ', - test.title, - self.testURL(test) - ); - var stackString; // Note: Includes leading newline - var message = test.err.toString(); - - // <=IE7 stringifies to [Object Error]. Since it can be overloaded, we - // check for the result of the stringifying. - if (message === '[object Error]') { - message = test.err.message; - } - - if (test.err.stack) { - var indexOfMessage = test.err.stack.indexOf(test.err.message); - if (indexOfMessage === -1) { - stackString = test.err.stack; - } else { - stackString = test.err.stack.substr( - test.err.message.length + indexOfMessage - ); - } - } else if (test.err.sourceURL && test.err.line !== undefined) { - // Safari doesn't give you a stack. Let's at least provide a source line. - stackString = '\n(' + test.err.sourceURL + ':' + test.err.line + ')'; - } - - stackString = stackString || ''; - - if (test.err.htmlMessage && stackString) { - el.appendChild( - fragment( - '
      %s\n
      %e
      ', - test.err.htmlMessage, - stackString - ) - ); - } else if (test.err.htmlMessage) { - el.appendChild( - fragment('
      %s
      ', test.err.htmlMessage) - ); - } else { - el.appendChild( - fragment('
      %e%e
      ', message, stackString) - ); - } - - self.addCodeToggle(el, test.body); - appendToStack(el); - updateStats(); - }); - - runner.on('pending', function(test) { - var el = fragment( - '
    • %e

    • ', - test.title - ); - appendToStack(el); - updateStats(); - }); - - function appendToStack(el) { - // Don't call .appendChild if #mocha-report was already .shift()'ed off the stack. - if (stack[0]) { - stack[0].appendChild(el); - } - } - - function updateStats() { - // TODO: add to stats - var percent = (stats.tests / runner.total * 100) | 0; - if (progress) { - progress.update(percent).draw(ctx); - } - - // update stats - var ms = new Date() - stats.start; - text(passes, stats.passes); - text(failures, stats.failures); - text(duration, (ms / 1000).toFixed(2)); - } -} - -/** - * Makes a URL, preserving querystring ("search") parameters. - * - * @param {string} s - * @return {string} A new URL. - */ -function makeUrl(s) { - var search = window.location.search; - - // Remove previous grep query parameter if present - if (search) { - search = search.replace(/[?&]grep=[^&\s]*/g, '').replace(/^&/, '?'); - } - - return ( - window.location.pathname + - (search ? search + '&' : '?') + - 'grep=' + - encodeURIComponent(escapeRe(s)) - ); -} - -/** - * Provide suite URL. - * - * @param {Object} [suite] - */ -HTML.prototype.suiteURL = function(suite) { - return makeUrl(suite.fullTitle()); -}; - -/** - * Provide test URL. - * - * @param {Object} [test] - */ -HTML.prototype.testURL = function(test) { - return makeUrl(test.fullTitle()); -}; - -/** - * Adds code toggle functionality for the provided test's list element. - * - * @param {HTMLLIElement} el - * @param {string} contents - */ -HTML.prototype.addCodeToggle = function(el, contents) { - var h2 = el.getElementsByTagName('h2')[0]; - - on(h2, 'click', function() { - pre.style.display = pre.style.display === 'none' ? 'block' : 'none'; - }); - - var pre = fragment('
      %e
      ', utils.clean(contents)); - el.appendChild(pre); - pre.style.display = 'none'; -}; - -/** - * Display error `msg`. - * - * @param {string} msg - */ -function error(msg) { - document.body.appendChild(fragment('
      %s
      ', msg)); -} - -/** - * Return a DOM fragment from `html`. - * - * @param {string} html - */ -function fragment(html) { - var args = arguments; - var div = document.createElement('div'); - var i = 1; - - div.innerHTML = html.replace(/%([se])/g, function(_, type) { - switch (type) { - case 's': - return String(args[i++]); - case 'e': - return escape(args[i++]); - // no default - } - }); - - return div.firstChild; -} - -/** - * Check for suites that do not have elements - * with `classname`, and hide them. - * - * @param {text} classname - */ -function hideSuitesWithout(classname) { - var suites = document.getElementsByClassName('suite'); - for (var i = 0; i < suites.length; i++) { - var els = suites[i].getElementsByClassName(classname); - if (!els.length) { - suites[i].className += ' hidden'; - } - } -} - -/** - * Unhide .hidden suites. - */ -function unhide() { - var els = document.getElementsByClassName('suite hidden'); - for (var i = 0; i < els.length; ++i) { - els[i].className = els[i].className.replace('suite hidden', 'suite'); - } -} - -/** - * Set an element's text contents. - * - * @param {HTMLElement} el - * @param {string} contents - */ -function text(el, contents) { - if (el.textContent) { - el.textContent = contents; - } else { - el.innerText = contents; - } -} - -/** - * Listen on `event` with callback `fn`. - */ -function on(el, event, fn) { - if (el.addEventListener) { - el.addEventListener(event, fn, false); - } else { - el.attachEvent('on' + event, fn); - } -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"../browser/progress":3,"../utils":36,"./base":16,"escape-string-regexp":46}],20:[function(require,module,exports){ -'use strict'; - -// Alias exports to a their normalized format Mocha#reporter to prevent a need -// for dynamic (try/catch) requires, which Browserify doesn't handle. -exports.Base = exports.base = require('./base'); -exports.Dot = exports.dot = require('./dot'); -exports.Doc = exports.doc = require('./doc'); -exports.TAP = exports.tap = require('./tap'); -exports.JSON = exports.json = require('./json'); -exports.HTML = exports.html = require('./html'); -exports.List = exports.list = require('./list'); -exports.Min = exports.min = require('./min'); -exports.Spec = exports.spec = require('./spec'); -exports.Nyan = exports.nyan = require('./nyan'); -exports.XUnit = exports.xunit = require('./xunit'); -exports.Markdown = exports.markdown = require('./markdown'); -exports.Progress = exports.progress = require('./progress'); -exports.Landing = exports.landing = require('./landing'); -exports.JSONStream = exports['json-stream'] = require('./json-stream'); - -},{"./base":16,"./doc":17,"./dot":18,"./html":19,"./json":22,"./json-stream":21,"./landing":23,"./list":24,"./markdown":25,"./min":26,"./nyan":27,"./progress":28,"./spec":29,"./tap":30,"./xunit":31}],21:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module JSONStream - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `JSONStream` test reporter. - * - * @public - * @name JSONStream - * @class JSONStream - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function List(runner) { - Base.call(this, runner); - - var self = this; - var total = runner.total; - - runner.on('start', function() { - console.log(JSON.stringify(['start', {total: total}])); - }); - - runner.on('pass', function(test) { - console.log(JSON.stringify(['pass', clean(test)])); - }); - - runner.on('fail', function(test, err) { - test = clean(test); - test.err = err.message; - test.stack = err.stack || null; - console.log(JSON.stringify(['fail', test])); - }); - - runner.once('end', function() { - process.stdout.write(JSON.stringify(['end', self.stats])); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry() - }; -} - -}).call(this,require('_process')) -},{"./base":16,"_process":56}],22:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module JSON - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `JSON`. - */ - -exports = module.exports = JSONReporter; - -/** - * Initialize a new `JSON` reporter. - * - * @public - * @class JSON - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function JSONReporter(runner) { - Base.call(this, runner); - - var self = this; - var tests = []; - var pending = []; - var failures = []; - var passes = []; - - runner.on('test end', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - passes.push(test); - }); - - runner.on('fail', function(test) { - failures.push(test); - }); - - runner.on('pending', function(test) { - pending.push(test); - }); - - runner.once('end', function() { - var obj = { - stats: self.stats, - tests: tests.map(clean), - pending: pending.map(clean), - failures: failures.map(clean), - passes: passes.map(clean) - }; - - runner.testResults = obj; - - process.stdout.write(JSON.stringify(obj, null, 2)); - }); -} - -/** - * Return a plain-object representation of `test` - * free of cyclic properties etc. - * - * @api private - * @param {Object} test - * @return {Object} - */ -function clean(test) { - var err = test.err || {}; - if (err instanceof Error) { - err = errorJSON(err); - } - - return { - title: test.title, - fullTitle: test.fullTitle(), - duration: test.duration, - currentRetry: test.currentRetry(), - err: cleanCycles(err) - }; -} - -/** - * Replaces any circular references inside `obj` with '[object Object]' - * - * @api private - * @param {Object} obj - * @return {Object} - */ -function cleanCycles(obj) { - var cache = []; - return JSON.parse( - JSON.stringify(obj, function(key, value) { - if (typeof value === 'object' && value !== null) { - if (cache.indexOf(value) !== -1) { - // Instead of going in a circle, we'll print [object Object] - return '' + value; - } - cache.push(value); - } - - return value; - }) - ); -} - -/** - * Transform an Error object into a JSON object. - * - * @api private - * @param {Error} err - * @return {Object} - */ -function errorJSON(err) { - var res = {}; - Object.getOwnPropertyNames(err).forEach(function(key) { - res[key] = err[key]; - }, err); - return res; -} - -}).call(this,require('_process')) -},{"./base":16,"_process":56}],23:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module Landing - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var cursor = Base.cursor; -var color = Base.color; - -/** - * Expose `Landing`. - */ - -exports = module.exports = Landing; - -/** - * Airplane color. - */ - -Base.colors.plane = 0; - -/** - * Airplane crash color. - */ - -Base.colors['plane crash'] = 31; - -/** - * Runway color. - */ - -Base.colors.runway = 90; - -/** - * Initialize a new `Landing` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Landing(runner) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var total = runner.total; - var stream = process.stdout; - var plane = color('plane', '✈'); - var crashed = -1; - var n = 0; - - function runway() { - var buf = Array(width).join('-'); - return ' ' + color('runway', buf); - } - - runner.on('start', function() { - stream.write('\n\n\n '); - cursor.hide(); - }); - - runner.on('test end', function(test) { - // check if the plane crashed - var col = crashed === -1 ? (width * ++n / total) | 0 : crashed; - - // show the crash - if (test.state === 'failed') { - plane = color('plane crash', '✈'); - crashed = col; - } - - // render landing strip - stream.write('\u001b[' + (width + 1) + 'D\u001b[2A'); - stream.write(runway()); - stream.write('\n '); - stream.write(color('runway', Array(col).join('⋅'))); - stream.write(plane); - stream.write(color('runway', Array(width - col).join('⋅') + '\n')); - stream.write(runway()); - stream.write('\u001b[0m'); - }); - - runner.once('end', function() { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Landing, Base); - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],24:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module List - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `List`. - */ - -exports = module.exports = List; - -/** - * Initialize a new `List` test reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function List(runner) { - Base.call(this, runner); - - var self = this; - var n = 0; - - runner.on('start', function() { - console.log(); - }); - - runner.on('test', function(test) { - process.stdout.write(color('pass', ' ' + test.fullTitle() + ': ')); - }); - - runner.on('pending', function(test) { - var fmt = color('checkmark', ' -') + color('pending', ' %s'); - console.log(fmt, test.fullTitle()); - }); - - runner.on('pass', function(test) { - var fmt = - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s: ') + - color(test.speed, '%dms'); - cursor.CR(); - console.log(fmt, test.fullTitle(), test.duration); - }); - - runner.on('fail', function(test) { - cursor.CR(); - console.log(color('fail', ' %d) %s'), ++n, test.fullTitle()); - }); - - runner.once('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(List, Base); - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],25:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module Markdown - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); - -/** - * Constants - */ - -var SUITE_PREFIX = '$'; - -/** - * Expose `Markdown`. - */ - -exports = module.exports = Markdown; - -/** - * Initialize a new `Markdown` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Markdown(runner) { - Base.call(this, runner); - - var level = 0; - var buf = ''; - - function title(str) { - return Array(level).join('#') + ' ' + str; - } - - function mapTOC(suite, obj) { - var ret = obj; - var key = SUITE_PREFIX + suite.title; - - obj = obj[key] = obj[key] || {suite: suite}; - suite.suites.forEach(function(suite) { - mapTOC(suite, obj); - }); - - return ret; - } - - function stringifyTOC(obj, level) { - ++level; - var buf = ''; - var link; - for (var key in obj) { - if (key === 'suite') { - continue; - } - if (key !== SUITE_PREFIX) { - link = ' - [' + key.substring(1) + ']'; - link += '(#' + utils.slug(obj[key].suite.fullTitle()) + ')\n'; - buf += Array(level).join(' ') + link; - } - buf += stringifyTOC(obj[key], level); - } - return buf; - } - - function generateTOC(suite) { - var obj = mapTOC(suite, {}); - return stringifyTOC(obj, 0); - } - - generateTOC(runner.suite); - - runner.on('suite', function(suite) { - ++level; - var slug = utils.slug(suite.fullTitle()); - buf += '' + '\n'; - buf += title(suite.title) + '\n'; - }); - - runner.on('suite end', function() { - --level; - }); - - runner.on('pass', function(test) { - var code = utils.clean(test.body); - buf += test.title + '.\n'; - buf += '\n```js\n'; - buf += code + '\n'; - buf += '```\n\n'; - }); - - runner.once('end', function() { - process.stdout.write('# TOC\n'); - process.stdout.write(generateTOC(runner.suite)); - process.stdout.write(buf); - }); -} - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],26:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module Min - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Min`. - */ - -exports = module.exports = Min; - -/** - * Initialize a new `Min` minimal test reporter (best used with --watch). - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Min(runner) { - Base.call(this, runner); - - runner.on('start', function() { - // clear screen - process.stdout.write('\u001b[2J'); - // set cursor position - process.stdout.write('\u001b[1;3H'); - }); - - runner.once('end', this.epilogue.bind(this)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Min, Base); - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],27:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module Nyan - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; - -/** - * Expose `Dot`. - */ - -exports = module.exports = NyanCat; - -/** - * Initialize a new `Dot` matrix test reporter. - * - * @param {Runner} runner - * @api public - * @public - * @class Nyan - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - */ - -function NyanCat(runner) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.75) | 0; - var nyanCatWidth = (this.nyanCatWidth = 11); - - this.colorIndex = 0; - this.numberOfLines = 4; - this.rainbowColors = self.generateColors(); - this.scoreboardWidth = 5; - this.tick = 0; - this.trajectories = [[], [], [], []]; - this.trajectoryWidthMax = width - nyanCatWidth; - - runner.on('start', function() { - Base.cursor.hide(); - self.draw(); - }); - - runner.on('pending', function() { - self.draw(); - }); - - runner.on('pass', function() { - self.draw(); - }); - - runner.on('fail', function() { - self.draw(); - }); - - runner.once('end', function() { - Base.cursor.show(); - for (var i = 0; i < self.numberOfLines; i++) { - write('\n'); - } - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(NyanCat, Base); - -/** - * Draw the nyan cat - * - * @api private - */ - -NyanCat.prototype.draw = function() { - this.appendRainbow(); - this.drawScoreboard(); - this.drawRainbow(); - this.drawNyanCat(); - this.tick = !this.tick; -}; - -/** - * Draw the "scoreboard" showing the number - * of passes, failures and pending tests. - * - * @api private - */ - -NyanCat.prototype.drawScoreboard = function() { - var stats = this.stats; - - function draw(type, n) { - write(' '); - write(Base.color(type, n)); - write('\n'); - } - - draw('green', stats.passes); - draw('fail', stats.failures); - draw('pending', stats.pending); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Append the rainbow. - * - * @api private - */ - -NyanCat.prototype.appendRainbow = function() { - var segment = this.tick ? '_' : '-'; - var rainbowified = this.rainbowify(segment); - - for (var index = 0; index < this.numberOfLines; index++) { - var trajectory = this.trajectories[index]; - if (trajectory.length >= this.trajectoryWidthMax) { - trajectory.shift(); - } - trajectory.push(rainbowified); - } -}; - -/** - * Draw the rainbow. - * - * @api private - */ - -NyanCat.prototype.drawRainbow = function() { - var self = this; - - this.trajectories.forEach(function(line) { - write('\u001b[' + self.scoreboardWidth + 'C'); - write(line.join('')); - write('\n'); - }); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw the nyan cat - * - * @api private - */ -NyanCat.prototype.drawNyanCat = function() { - var self = this; - var startWidth = this.scoreboardWidth + this.trajectories[0].length; - var dist = '\u001b[' + startWidth + 'C'; - var padding = ''; - - write(dist); - write('_,------,'); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write('_|' + padding + '/\\_/\\ '); - write('\n'); - - write(dist); - padding = self.tick ? '_' : '__'; - var tail = self.tick ? '~' : '^'; - write(tail + '|' + padding + this.face() + ' '); - write('\n'); - - write(dist); - padding = self.tick ? ' ' : ' '; - write(padding + '"" "" '); - write('\n'); - - this.cursorUp(this.numberOfLines); -}; - -/** - * Draw nyan cat face. - * - * @api private - * @return {string} - */ - -NyanCat.prototype.face = function() { - var stats = this.stats; - if (stats.failures) { - return '( x .x)'; - } else if (stats.pending) { - return '( o .o)'; - } else if (stats.passes) { - return '( ^ .^)'; - } - return '( - .-)'; -}; - -/** - * Move cursor up `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorUp = function(n) { - write('\u001b[' + n + 'A'); -}; - -/** - * Move cursor down `n`. - * - * @api private - * @param {number} n - */ - -NyanCat.prototype.cursorDown = function(n) { - write('\u001b[' + n + 'B'); -}; - -/** - * Generate rainbow colors. - * - * @api private - * @return {Array} - */ -NyanCat.prototype.generateColors = function() { - var colors = []; - - for (var i = 0; i < 6 * 7; i++) { - var pi3 = Math.floor(Math.PI / 3); - var n = i * (1.0 / 6); - var r = Math.floor(3 * Math.sin(n) + 3); - var g = Math.floor(3 * Math.sin(n + 2 * pi3) + 3); - var b = Math.floor(3 * Math.sin(n + 4 * pi3) + 3); - colors.push(36 * r + 6 * g + b + 16); - } - - return colors; -}; - -/** - * Apply rainbow to the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -NyanCat.prototype.rainbowify = function(str) { - if (!Base.useColors) { - return str; - } - var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length]; - this.colorIndex += 1; - return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m'; -}; - -/** - * Stdout helper. - * - * @param {string} string A message to write to stdout. - */ -function write(string) { - process.stdout.write(string); -} - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],28:[function(require,module,exports){ -(function (process){ -'use strict'; -/** - * @module Progress - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; -var cursor = Base.cursor; - -/** - * Expose `Progress`. - */ - -exports = module.exports = Progress; - -/** - * General progress bar color. - */ - -Base.colors.progress = 90; - -/** - * Initialize a new `Progress` bar test reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - * @param {Object} options - */ -function Progress(runner, options) { - Base.call(this, runner); - - var self = this; - var width = (Base.window.width * 0.5) | 0; - var total = runner.total; - var complete = 0; - var lastN = -1; - - // default chars - options = options || {}; - var reporterOptions = options.reporterOptions || {}; - - options.open = reporterOptions.open || '['; - options.complete = reporterOptions.complete || '▬'; - options.incomplete = reporterOptions.incomplete || Base.symbols.dot; - options.close = reporterOptions.close || ']'; - options.verbose = reporterOptions.verbose || false; - - // tests started - runner.on('start', function() { - console.log(); - cursor.hide(); - }); - - // tests complete - runner.on('test end', function() { - complete++; - - var percent = complete / total; - var n = (width * percent) | 0; - var i = width - n; - - if (n === lastN && !options.verbose) { - // Don't re-render the line if it hasn't changed - return; - } - lastN = n; - - cursor.CR(); - process.stdout.write('\u001b[J'); - process.stdout.write(color('progress', ' ' + options.open)); - process.stdout.write(Array(n).join(options.complete)); - process.stdout.write(Array(i).join(options.incomplete)); - process.stdout.write(color('progress', options.close)); - if (options.verbose) { - process.stdout.write(color('progress', ' ' + complete + ' of ' + total)); - } - }); - - // tests are complete, output some stats - // and the failures if any - runner.once('end', function() { - cursor.show(); - console.log(); - self.epilogue(); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Progress, Base); - -}).call(this,require('_process')) -},{"../utils":36,"./base":16,"_process":56}],29:[function(require,module,exports){ -'use strict'; -/** - * @module Spec - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var inherits = require('../utils').inherits; -var color = Base.color; - -/** - * Expose `Spec`. - */ - -exports = module.exports = Spec; - -/** - * Initialize a new `Spec` test reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function Spec(runner) { - Base.call(this, runner); - - var self = this; - var indents = 0; - var n = 0; - - function indent() { - return Array(indents).join(' '); - } - - runner.on('start', function() { - console.log(); - }); - - runner.on('suite', function(suite) { - ++indents; - console.log(color('suite', '%s%s'), indent(), suite.title); - }); - - runner.on('suite end', function() { - --indents; - if (indents === 1) { - console.log(); - } - }); - - runner.on('pending', function(test) { - var fmt = indent() + color('pending', ' - %s'); - console.log(fmt, test.title); - }); - - runner.on('pass', function(test) { - var fmt; - if (test.speed === 'fast') { - fmt = - indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s'); - console.log(fmt, test.title); - } else { - fmt = - indent() + - color('checkmark', ' ' + Base.symbols.ok) + - color('pass', ' %s') + - color(test.speed, ' (%dms)'); - console.log(fmt, test.title, test.duration); - } - }); - - runner.on('fail', function(test) { - console.log(indent() + color('fail', ' %d) %s'), ++n, test.title); - }); - - runner.once('end', self.epilogue.bind(self)); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(Spec, Base); - -},{"../utils":36,"./base":16}],30:[function(require,module,exports){ -'use strict'; -/** - * @module TAP - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); - -/** - * Expose `TAP`. - */ - -exports = module.exports = TAP; - -/** - * Initialize a new `TAP` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function TAP(runner) { - Base.call(this, runner); - - var n = 1; - var passes = 0; - var failures = 0; - - runner.on('start', function() { - var total = runner.grepTotal(runner.suite); - console.log('%d..%d', 1, total); - }); - - runner.on('test end', function() { - ++n; - }); - - runner.on('pending', function(test) { - console.log('ok %d %s # SKIP -', n, title(test)); - }); - - runner.on('pass', function(test) { - passes++; - console.log('ok %d %s', n, title(test)); - }); - - runner.on('fail', function(test, err) { - failures++; - console.log('not ok %d %s', n, title(test)); - if (err.stack) { - console.log(err.stack.replace(/^/gm, ' ')); - } - }); - - runner.once('end', function() { - console.log('# tests ' + (passes + failures)); - console.log('# pass ' + passes); - console.log('# fail ' + failures); - }); -} - -/** - * Return a TAP-safe title of `test` - * - * @api private - * @param {Object} test - * @return {String} - */ -function title(test) { - return test.fullTitle().replace(/#/g, ''); -} - -},{"./base":16}],31:[function(require,module,exports){ -(function (process,global){ -'use strict'; -/** - * @module XUnit - */ -/** - * Module dependencies. - */ - -var Base = require('./base'); -var utils = require('../utils'); -var inherits = utils.inherits; -var fs = require('fs'); -var escape = utils.escape; -var mkdirp = require('mkdirp'); -var path = require('path'); - -/** - * Save timer references to avoid Sinon interfering (see GH-237). - */ - -/* eslint-disable no-unused-vars, no-native-reassign */ -var Date = global.Date; -var setTimeout = global.setTimeout; -var setInterval = global.setInterval; -var clearTimeout = global.clearTimeout; -var clearInterval = global.clearInterval; -/* eslint-enable no-unused-vars, no-native-reassign */ - -/** - * Expose `XUnit`. - */ - -exports = module.exports = XUnit; - -/** - * Initialize a new `XUnit` reporter. - * - * @public - * @class - * @memberof Mocha.reporters - * @extends Mocha.reporters.Base - * @api public - * @param {Runner} runner - */ -function XUnit(runner, options) { - Base.call(this, runner); - - var stats = this.stats; - var tests = []; - var self = this; - - // the name of the test suite, as it will appear in the resulting XML file - var suiteName; - - // the default name of the test suite if none is provided - var DEFAULT_SUITE_NAME = 'Mocha Tests'; - - if (options && options.reporterOptions) { - if (options.reporterOptions.output) { - if (!fs.createWriteStream) { - throw new Error('file output not supported in browser'); - } - - mkdirp.sync(path.dirname(options.reporterOptions.output)); - self.fileStream = fs.createWriteStream(options.reporterOptions.output); - } - - // get the suite name from the reporter options (if provided) - suiteName = options.reporterOptions.suiteName; - } - - // fall back to the default suite name - suiteName = suiteName || DEFAULT_SUITE_NAME; - - runner.on('pending', function(test) { - tests.push(test); - }); - - runner.on('pass', function(test) { - tests.push(test); - }); - - runner.on('fail', function(test) { - tests.push(test); - }); - - runner.once('end', function() { - self.write( - tag( - 'testsuite', - { - name: suiteName, - tests: stats.tests, - failures: stats.failures, - errors: stats.failures, - skipped: stats.tests - stats.failures - stats.passes, - timestamp: new Date().toUTCString(), - time: stats.duration / 1000 || 0 - }, - false - ) - ); - - tests.forEach(function(t) { - self.test(t); - }); - - self.write(''); - }); -} - -/** - * Inherit from `Base.prototype`. - */ -inherits(XUnit, Base); - -/** - * Override done to close the stream (if it's a file). - * - * @param failures - * @param {Function} fn - */ -XUnit.prototype.done = function(failures, fn) { - if (this.fileStream) { - this.fileStream.end(function() { - fn(failures); - }); - } else { - fn(failures); - } -}; - -/** - * Write out the given line. - * - * @param {string} line - */ -XUnit.prototype.write = function(line) { - if (this.fileStream) { - this.fileStream.write(line + '\n'); - } else if (typeof process === 'object' && process.stdout) { - process.stdout.write(line + '\n'); - } else { - console.log(line); - } -}; - -/** - * Output tag for the given `test.` - * - * @param {Test} test - */ -XUnit.prototype.test = function(test) { - var attrs = { - classname: test.parent.fullTitle(), - name: test.title, - time: test.duration / 1000 || 0 - }; - - if (test.state === 'failed') { - var err = test.err; - this.write( - tag( - 'testcase', - attrs, - false, - tag( - 'failure', - {}, - false, - escape(err.message) + '\n' + escape(err.stack) - ) - ) - ); - } else if (test.isPending()) { - this.write(tag('testcase', attrs, false, tag('skipped', {}, true))); - } else { - this.write(tag('testcase', attrs, true)); - } -}; - -/** - * HTML tag helper. - * - * @param name - * @param attrs - * @param close - * @param content - * @return {string} - */ -function tag(name, attrs, close, content) { - var end = close ? '/>' : '>'; - var pairs = []; - var tag; - - for (var key in attrs) { - if (Object.prototype.hasOwnProperty.call(attrs, key)) { - pairs.push(key + '="' + escape(attrs[key]) + '"'); - } - } - - tag = '<' + name + (pairs.length ? ' ' + pairs.join(' ') : '') + end; - if (content) { - tag += content + ' Math.pow(2, 31)) { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = ms; - if (this.timer) { - this.resetTimeout(); - } - return this; -}; - -/** - * Set or get slow `ms`. - * - * @api private - * @param {number|string} ms - * @return {Runnable|number} ms or Runnable instance. - */ -Runnable.prototype.slow = function(ms) { - if (!arguments.length || typeof ms === 'undefined') { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; -}; - -/** - * Set and get whether timeout is `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Runnable|boolean} enabled or Runnable instance. - */ -Runnable.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Halt and mark as pending. - * - * @memberof Mocha.Runnable - * @public - * @api public - */ -Runnable.prototype.skip = function() { - throw new Pending('sync skip'); -}; - -/** - * Check if this runnable or its parent suite is marked as pending. - * - * @api private - */ -Runnable.prototype.isPending = function() { - return this.pending || (this.parent && this.parent.isPending()); -}; - -/** - * Return `true` if this Runnable has failed. - * @return {boolean} - * @private - */ -Runnable.prototype.isFailed = function() { - return !this.isPending() && this.state === 'failed'; -}; - -/** - * Return `true` if this Runnable has passed. - * @return {boolean} - * @private - */ -Runnable.prototype.isPassed = function() { - return !this.isPending() && this.state === 'passed'; -}; - -/** - * Set or get number of retries. - * - * @api private - */ -Runnable.prototype.retries = function(n) { - if (!arguments.length) { - return this._retries; - } - this._retries = n; -}; - -/** - * Set or get current retry - * - * @api private - */ -Runnable.prototype.currentRetry = function(n) { - if (!arguments.length) { - return this._currentRetry; - } - this._currentRetry = n; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @memberof Mocha.Runnable - * @public - * @api public - * @return {string} - */ -Runnable.prototype.fullTitle = function() { - return this.titlePath().join(' '); -}; - -/** - * Return the title path generated by concatenating the parent's title path with the title. - * - * @memberof Mocha.Runnable - * @public - * @api public - * @return {string} - */ -Runnable.prototype.titlePath = function() { - return this.parent.titlePath().concat([this.title]); -}; - -/** - * Clear the timeout. - * - * @api private - */ -Runnable.prototype.clearTimeout = function() { - clearTimeout(this.timer); -}; - -/** - * Inspect the runnable void of private properties. - * - * @api private - * @return {string} - */ -Runnable.prototype.inspect = function() { - return JSON.stringify( - this, - function(key, val) { - if (key[0] === '_') { - return; - } - if (key === 'parent') { - return '#'; - } - if (key === 'ctx') { - return '#'; - } - return val; - }, - 2 - ); -}; - -/** - * Reset the timeout. - * - * @api private - */ -Runnable.prototype.resetTimeout = function() { - var self = this; - var ms = this.timeout() || 1e9; - - if (!this._enableTimeouts) { - return; - } - this.clearTimeout(); - this.timer = setTimeout(function() { - if (!self._enableTimeouts) { - return; - } - self.callback(self._timeoutError(ms)); - self.timedOut = true; - }, ms); -}; - -/** - * Set or get a list of whitelisted globals for this test run. - * - * @api private - * @param {string[]} globals - */ -Runnable.prototype.globals = function(globals) { - if (!arguments.length) { - return this._allowedGlobals; - } - this._allowedGlobals = globals; -}; - -/** - * Run the test and invoke `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runnable.prototype.run = function(fn) { - var self = this; - var start = new Date(); - var ctx = this.ctx; - var finished; - var emitted; - - // Sometimes the ctx exists, but it is not runnable - if (ctx && ctx.runnable) { - ctx.runnable(this); - } - - // called multiple times - function multiple(err) { - if (emitted) { - return; - } - emitted = true; - var msg = 'done() called multiple times'; - if (err && err.message) { - err.message += " (and Mocha's " + msg + ')'; - self.emit('error', err); - } else { - self.emit('error', new Error(msg)); - } - } - - // finished - function done(err) { - var ms = self.timeout(); - if (self.timedOut) { - return; - } - - if (finished) { - return multiple(err); - } - - self.clearTimeout(); - self.duration = new Date() - start; - finished = true; - if (!err && self.duration > ms && self._enableTimeouts) { - err = self._timeoutError(ms); - } - fn(err); - } - - // for .resetTimeout() - this.callback = done; - - // explicit async with `done` argument - if (this.async) { - this.resetTimeout(); - - // allows skip() to be used in an explicit async context - this.skip = function asyncSkip() { - done(new Pending('async skip call')); - // halt execution. the Runnable will be marked pending - // by the previous call, and the uncaught handler will ignore - // the failure. - throw new Pending('async skip; aborting execution'); - }; - - if (this.allowUncaught) { - return callFnAsync(this.fn); - } - try { - callFnAsync(this.fn); - } catch (err) { - emitted = true; - done(utils.getError(err)); - } - return; - } - - if (this.allowUncaught) { - if (this.isPending()) { - done(); - } else { - callFn(this.fn); - } - return; - } - - // sync or promise-returning - try { - if (this.isPending()) { - done(); - } else { - callFn(this.fn); - } - } catch (err) { - emitted = true; - done(utils.getError(err)); - } - - function callFn(fn) { - var result = fn.call(ctx); - if (result && typeof result.then === 'function') { - self.resetTimeout(); - result.then( - function() { - done(); - // Return null so libraries like bluebird do not warn about - // subsequently constructed Promises. - return null; - }, - function(reason) { - done(reason || new Error('Promise rejected with no or falsy reason')); - } - ); - } else { - if (self.asyncOnly) { - return done( - new Error( - '--async-only option in use without declaring `done()` or returning a promise' - ) - ); - } - - done(); - } - } - - function callFnAsync(fn) { - var result = fn.call(ctx, function(err) { - if (err instanceof Error || toString.call(err) === '[object Error]') { - return done(err); - } - if (err) { - if (Object.prototype.toString.call(err) === '[object Object]') { - return done( - new Error('done() invoked with non-Error: ' + JSON.stringify(err)) - ); - } - return done(new Error('done() invoked with non-Error: ' + err)); - } - if (result && utils.isPromise(result)) { - return done( - new Error( - 'Resolution method is overspecified. Specify a callback *or* return a Promise; not both.' - ) - ); - } - - done(); - }); - } -}; - -/** - * Instantiates a "timeout" error - * - * @param {number} ms - Timeout (in milliseconds) - * @returns {Error} a "timeout" error - * @private - */ -Runnable.prototype._timeoutError = function(ms) { - var msg = - 'Timeout of ' + - ms + - 'ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.'; - if (this.file) { - msg += ' (' + this.file + ')'; - } - return new Error(msg); -}; - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./ms":14,"./pending":15,"./utils":36,"debug":43,"events":47}],33:[function(require,module,exports){ -(function (process,global){ -'use strict'; - -/** - * @module Runner - */ -/** - * Module dependencies. - */ -var EventEmitter = require('events').EventEmitter; -var Pending = require('./pending'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:runner'); -var Runnable = require('./runnable'); -var stackFilter = utils.stackTraceFilter(); -var stringify = utils.stringify; -var type = utils.type; -var undefinedError = utils.undefinedError; - -/** - * Non-enumerable globals. - */ - -var globals = [ - 'setTimeout', - 'clearTimeout', - 'setInterval', - 'clearInterval', - 'XMLHttpRequest', - 'Date', - 'setImmediate', - 'clearImmediate' -]; - -/** - * Expose `Runner`. - */ - -module.exports = Runner; - -/** - * Initialize a `Runner` for the given `suite`. Derived from [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) - * - * Events: - * - * - `start` execution started - * - `end` execution complete - * - `suite` (suite) test suite execution started - * - `suite end` (suite) all tests (and sub-suites) have finished - * - `test` (test) test execution started - * - `test end` (test) test completed - * - `hook` (hook) hook execution started - * - `hook end` (hook) hook complete - * - `pass` (test) test passed - * - `fail` (test, err) test failed - * - `pending` (test) test pending - * - * @memberof Mocha - * @public - * @class - * @api public - * @param {Suite} [suite] Root suite - * @param {boolean} [delay] Whether or not to delay execution of root suite - * until ready. - */ -function Runner(suite, delay) { - var self = this; - this._globals = []; - this._abort = false; - this._delay = delay; - this.suite = suite; - this.started = false; - this.total = suite.total(); - this.failures = 0; - this.on('test end', function(test) { - self.checkGlobals(test); - }); - this.on('hook end', function(hook) { - self.checkGlobals(hook); - }); - this._defaultGrep = /.*/; - this.grep(this._defaultGrep); - this.globals(this.globalProps().concat(extraGlobals())); -} - -/** - * Wrapper for setImmediate, process.nextTick, or browser polyfill. - * - * @param {Function} fn - * @api private - */ -Runner.immediately = global.setImmediate || process.nextTick; - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Runner, EventEmitter); - -/** - * Run tests with full titles matching `re`. Updates runner.total - * with number of tests matched. - * - * @api public - * @public - * @memberof Mocha.Runner - * @param {RegExp} re - * @param {boolean} invert - * @return {Runner} Runner instance. - */ -Runner.prototype.grep = function(re, invert) { - debug('grep %s', re); - this._grep = re; - this._invert = invert; - this.total = this.grepTotal(this.suite); - return this; -}; - -/** - * Returns the number of tests matching the grep search for the - * given suite. - * - * @memberof Mocha.Runner - * @api public - * @public - * @param {Suite} suite - * @return {number} - */ -Runner.prototype.grepTotal = function(suite) { - var self = this; - var total = 0; - - suite.eachTest(function(test) { - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (match) { - total++; - } - }); - - return total; -}; - -/** - * Return a list of global properties. - * - * @return {Array} - * @api private - */ -Runner.prototype.globalProps = function() { - var props = Object.keys(global); - - // non-enumerables - for (var i = 0; i < globals.length; ++i) { - if (~props.indexOf(globals[i])) { - continue; - } - props.push(globals[i]); - } - - return props; -}; - -/** - * Allow the given `arr` of globals. - * - * @api public - * @public - * @memberof Mocha.Runner - * @param {Array} arr - * @return {Runner} Runner instance. - */ -Runner.prototype.globals = function(arr) { - if (!arguments.length) { - return this._globals; - } - debug('globals %j', arr); - this._globals = this._globals.concat(arr); - return this; -}; - -/** - * Check for global variable leaks. - * - * @api private - */ -Runner.prototype.checkGlobals = function(test) { - if (this.ignoreLeaks) { - return; - } - var ok = this._globals; - - var globals = this.globalProps(); - var leaks; - - if (test) { - ok = ok.concat(test._allowedGlobals || []); - } - - if (this.prevGlobalsLength === globals.length) { - return; - } - this.prevGlobalsLength = globals.length; - - leaks = filterLeaks(ok, globals); - this._globals = this._globals.concat(leaks); - - if (leaks.length > 1) { - this.fail( - test, - new Error('global leaks detected: ' + leaks.join(', ') + '') - ); - } else if (leaks.length) { - this.fail(test, new Error('global leak detected: ' + leaks[0])); - } -}; - -/** - * Fail the given `test`. - * - * @api private - * @param {Test} test - * @param {Error} err - */ -Runner.prototype.fail = function(test, err) { - if (test.isPending()) { - return; - } - - ++this.failures; - test.state = 'failed'; - - if (!(err instanceof Error || (err && typeof err.message === 'string'))) { - err = new Error( - 'the ' + - type(err) + - ' ' + - stringify(err) + - ' was thrown, throw an Error :)' - ); - } - - try { - err.stack = - this.fullStackTrace || !err.stack ? err.stack : stackFilter(err.stack); - } catch (ignore) { - // some environments do not take kindly to monkeying with the stack - } - - this.emit('fail', test, err); - if (this.suite.bail()) { - this.emit('end'); - } -}; - -/** - * Fail the given `hook` with `err`. - * - * Hook failures work in the following pattern: - * - If bail, then exit - * - Failed `before` hook skips all tests in a suite and subsuites, - * but jumps to corresponding `after` hook - * - Failed `before each` hook skips remaining tests in a - * suite and jumps to corresponding `after each` hook, - * which is run only once - * - Failed `after` hook does not alter - * execution order - * - Failed `after each` hook skips remaining tests in a - * suite and subsuites, but executes other `after each` - * hooks - * - * @api private - * @param {Hook} hook - * @param {Error} err - */ -Runner.prototype.failHook = function(hook, err) { - if (hook.ctx && hook.ctx.currentTest) { - hook.originalTitle = hook.originalTitle || hook.title; - hook.title = - hook.originalTitle + ' for "' + hook.ctx.currentTest.title + '"'; - } - - this.fail(hook, err); -}; - -/** - * Run hook `name` callbacks and then invoke `fn()`. - * - * @api private - * @param {string} name - * @param {Function} fn - */ - -Runner.prototype.hook = function(name, fn) { - var suite = this.suite; - var hooks = suite['_' + name]; - var self = this; - - function next(i) { - var hook = hooks[i]; - if (!hook) { - return fn(); - } - self.currentRunnable = hook; - - hook.ctx.currentTest = self.test; - - self.emit('hook', hook); - - if (!hook.listeners('error').length) { - hook.on('error', function(err) { - self.failHook(hook, err); - }); - } - - hook.run(function(err) { - var testError = hook.error(); - if (testError) { - self.fail(self.test, testError); - } - if (err) { - if (err instanceof Pending) { - if (name === 'beforeEach' || name === 'afterEach') { - self.test.pending = true; - } else { - suite.tests.forEach(function(test) { - test.pending = true; - }); - // a pending hook won't be executed twice. - hook.pending = true; - } - } else { - self.failHook(hook, err); - - // stop executing hooks, notify callee of hook err - return fn(err); - } - } - self.emit('hook end', hook); - delete hook.ctx.currentTest; - next(++i); - }); - } - - Runner.immediately(function() { - next(0); - }); -}; - -/** - * Run hook `name` for the given array of `suites` - * in order, and callback `fn(err, errSuite)`. - * - * @api private - * @param {string} name - * @param {Array} suites - * @param {Function} fn - */ -Runner.prototype.hooks = function(name, suites, fn) { - var self = this; - var orig = this.suite; - - function next(suite) { - self.suite = suite; - - if (!suite) { - self.suite = orig; - return fn(); - } - - self.hook(name, function(err) { - if (err) { - var errSuite = self.suite; - self.suite = orig; - return fn(err, errSuite); - } - - next(suites.pop()); - }); - } - - next(suites.pop()); -}; - -/** - * Run hooks from the top level down. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookUp = function(name, fn) { - var suites = [this.suite].concat(this.parents()).reverse(); - this.hooks(name, suites, fn); -}; - -/** - * Run hooks from the bottom up. - * - * @param {String} name - * @param {Function} fn - * @api private - */ -Runner.prototype.hookDown = function(name, fn) { - var suites = [this.suite].concat(this.parents()); - this.hooks(name, suites, fn); -}; - -/** - * Return an array of parent Suites from - * closest to furthest. - * - * @return {Array} - * @api private - */ -Runner.prototype.parents = function() { - var suite = this.suite; - var suites = []; - while (suite.parent) { - suite = suite.parent; - suites.push(suite); - } - return suites; -}; - -/** - * Run the current test and callback `fn(err)`. - * - * @param {Function} fn - * @api private - */ -Runner.prototype.runTest = function(fn) { - var self = this; - var test = this.test; - - if (!test) { - return; - } - if (this.forbidOnly && hasOnly(this.parents().reverse()[0] || this.suite)) { - fn(new Error('`.only` forbidden')); - return; - } - if (this.asyncOnly) { - test.asyncOnly = true; - } - test.on('error', function(err) { - self.fail(test, err); - }); - if (this.allowUncaught) { - test.allowUncaught = true; - return test.run(fn); - } - try { - test.run(fn); - } catch (err) { - fn(err); - } -}; - -/** - * Run tests in the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runTests = function(suite, fn) { - var self = this; - var tests = suite.tests.slice(); - var test; - - function hookErr(_, errSuite, after) { - // before/after Each hook for errSuite failed: - var orig = self.suite; - - // for failed 'after each' hook start from errSuite parent, - // otherwise start from errSuite itself - self.suite = after ? errSuite.parent : errSuite; - - if (self.suite) { - // call hookUp afterEach - self.hookUp('afterEach', function(err2, errSuite2) { - self.suite = orig; - // some hooks may fail even now - if (err2) { - return hookErr(err2, errSuite2, true); - } - // report error suite - fn(errSuite); - }); - } else { - // there is no need calling other 'after each' hooks - self.suite = orig; - fn(errSuite); - } - } - - function next(err, errSuite) { - // if we bail after first err - if (self.failures && suite._bail) { - return fn(); - } - - if (self._abort) { - return fn(); - } - - if (err) { - return hookErr(err, errSuite, true); - } - - // next test - test = tests.shift(); - - // all done - if (!test) { - return fn(); - } - - // grep - var match = self._grep.test(test.fullTitle()); - if (self._invert) { - match = !match; - } - if (!match) { - // Run immediately only if we have defined a grep. When we - // define a grep — It can cause maximum callstack error if - // the grep is doing a large recursive loop by neglecting - // all tests. The run immediately function also comes with - // a performance cost. So we don't want to run immediately - // if we run the whole test suite, because running the whole - // test suite don't do any immediate recursive loops. Thus, - // allowing a JS runtime to breathe. - if (self._grep !== self._defaultGrep) { - Runner.immediately(next); - } else { - next(); - } - return; - } - - if (test.isPending()) { - if (self.forbidPending) { - test.isPending = alwaysFalse; - self.fail(test, new Error('Pending test forbidden')); - delete test.isPending; - } else { - self.emit('pending', test); - } - self.emit('test end', test); - return next(); - } - - // execute test and hook(s) - self.emit('test', (self.test = test)); - self.hookDown('beforeEach', function(err, errSuite) { - if (test.isPending()) { - if (self.forbidPending) { - test.isPending = alwaysFalse; - self.fail(test, new Error('Pending test forbidden')); - delete test.isPending; - } else { - self.emit('pending', test); - } - self.emit('test end', test); - return next(); - } - if (err) { - return hookErr(err, errSuite, false); - } - self.currentRunnable = self.test; - self.runTest(function(err) { - test = self.test; - if (err) { - var retry = test.currentRetry(); - if (err instanceof Pending && self.forbidPending) { - self.fail(test, new Error('Pending test forbidden')); - } else if (err instanceof Pending) { - test.pending = true; - self.emit('pending', test); - } else if (retry < test.retries()) { - var clonedTest = test.clone(); - clonedTest.currentRetry(retry + 1); - tests.unshift(clonedTest); - - // Early return + hook trigger so that it doesn't - // increment the count wrong - return self.hookUp('afterEach', next); - } else { - self.fail(test, err); - } - self.emit('test end', test); - - if (err instanceof Pending) { - return next(); - } - - return self.hookUp('afterEach', next); - } - - test.state = 'passed'; - self.emit('pass', test); - self.emit('test end', test); - self.hookUp('afterEach', next); - }); - }); - } - - this.next = next; - this.hookErr = hookErr; - next(); -}; - -function alwaysFalse() { - return false; -} - -/** - * Run the given `suite` and invoke the callback `fn()` when complete. - * - * @api private - * @param {Suite} suite - * @param {Function} fn - */ -Runner.prototype.runSuite = function(suite, fn) { - var i = 0; - var self = this; - var total = this.grepTotal(suite); - var afterAllHookCalled = false; - - debug('run suite %s', suite.fullTitle()); - - if (!total || (self.failures && suite._bail)) { - return fn(); - } - - this.emit('suite', (this.suite = suite)); - - function next(errSuite) { - if (errSuite) { - // current suite failed on a hook from errSuite - if (errSuite === suite) { - // if errSuite is current suite - // continue to the next sibling suite - return done(); - } - // errSuite is among the parents of current suite - // stop execution of errSuite and all sub-suites - return done(errSuite); - } - - if (self._abort) { - return done(); - } - - var curr = suite.suites[i++]; - if (!curr) { - return done(); - } - - // Avoid grep neglecting large number of tests causing a - // huge recursive loop and thus a maximum call stack error. - // See comment in `this.runTests()` for more information. - if (self._grep !== self._defaultGrep) { - Runner.immediately(function() { - self.runSuite(curr, next); - }); - } else { - self.runSuite(curr, next); - } - } - - function done(errSuite) { - self.suite = suite; - self.nextSuite = next; - - if (afterAllHookCalled) { - fn(errSuite); - } else { - // mark that the afterAll block has been called once - // and so can be skipped if there is an error in it. - afterAllHookCalled = true; - - // remove reference to test - delete self.test; - - self.hook('afterAll', function() { - self.emit('suite end', suite); - fn(errSuite); - }); - } - } - - this.nextSuite = next; - - this.hook('beforeAll', function(err) { - if (err) { - return done(); - } - self.runTests(suite, next); - }); -}; - -/** - * Handle uncaught exceptions. - * - * @param {Error} err - * @api private - */ -Runner.prototype.uncaught = function(err) { - if (err) { - debug( - 'uncaught exception %s', - err === - function() { - return this; - }.call(err) - ? err.message || err - : err - ); - } else { - debug('uncaught undefined exception'); - err = undefinedError(); - } - err.uncaught = true; - - var runnable = this.currentRunnable; - - if (!runnable) { - runnable = new Runnable('Uncaught error outside test suite'); - runnable.parent = this.suite; - - if (this.started) { - this.fail(runnable, err); - } else { - // Can't recover from this failure - this.emit('start'); - this.fail(runnable, err); - this.emit('end'); - } - - return; - } - - runnable.clearTimeout(); - - // Ignore errors if already failed or pending - // See #3226 - if (runnable.isFailed() || runnable.isPending()) { - return; - } - // we cannot recover gracefully if a Runnable has already passed - // then fails asynchronously - var alreadyPassed = runnable.isPassed(); - // this will change the state to "failed" regardless of the current value - this.fail(runnable, err); - if (!alreadyPassed) { - // recover from test - if (runnable.type === 'test') { - this.emit('test end', runnable); - this.hookUp('afterEach', this.next); - return; - } - - // recover from hooks - var errSuite = this.suite; - // if hook failure is in afterEach block - if (runnable.fullTitle().indexOf('after each') > -1) { - return this.hookErr(err, errSuite, true); - } - // if hook failure is in beforeEach block - if (runnable.fullTitle().indexOf('before each') > -1) { - return this.hookErr(err, errSuite, false); - } - // if hook failure is in after or before blocks - return this.nextSuite(errSuite); - } - - // bail - this.emit('end'); -}; - -/** - * Cleans up the references to all the deferred functions - * (before/after/beforeEach/afterEach) and tests of a Suite. - * These must be deleted otherwise a memory leak can happen, - * as those functions may reference variables from closures, - * thus those variables can never be garbage collected as long - * as the deferred functions exist. - * - * @param {Suite} suite - */ -function cleanSuiteReferences(suite) { - function cleanArrReferences(arr) { - for (var i = 0; i < arr.length; i++) { - delete arr[i].fn; - } - } - - if (Array.isArray(suite._beforeAll)) { - cleanArrReferences(suite._beforeAll); - } - - if (Array.isArray(suite._beforeEach)) { - cleanArrReferences(suite._beforeEach); - } - - if (Array.isArray(suite._afterAll)) { - cleanArrReferences(suite._afterAll); - } - - if (Array.isArray(suite._afterEach)) { - cleanArrReferences(suite._afterEach); - } - - for (var i = 0; i < suite.tests.length; i++) { - delete suite.tests[i].fn; - } -} - -/** - * Run the root suite and invoke `fn(failures)` - * on completion. - * - * @api public - * @public - * @memberof Mocha.Runner - * @param {Function} fn - * @return {Runner} Runner instance. - */ -Runner.prototype.run = function(fn) { - var self = this; - var rootSuite = this.suite; - - fn = fn || function() {}; - - function uncaught(err) { - self.uncaught(err); - } - - function start() { - // If there is an `only` filter - if (hasOnly(rootSuite)) { - filterOnly(rootSuite); - } - self.started = true; - self.emit('start'); - self.runSuite(rootSuite, function() { - debug('finished running'); - self.emit('end'); - }); - } - - debug('start'); - - // references cleanup to avoid memory leaks - this.on('suite end', cleanSuiteReferences); - - // callback - this.on('end', function() { - debug('end'); - process.removeListener('uncaughtException', uncaught); - fn(self.failures); - }); - - // uncaught exception - process.on('uncaughtException', uncaught); - - if (this._delay) { - // for reporters, I guess. - // might be nice to debounce some dots while we wait. - this.emit('waiting', rootSuite); - rootSuite.once('run', start); - } else { - start(); - } - - return this; -}; - -/** - * Cleanly abort execution. - * - * @memberof Mocha.Runner - * @public - * @api public - * @return {Runner} Runner instance. - */ -Runner.prototype.abort = function() { - debug('aborting'); - this._abort = true; - - return this; -}; - -/** - * Filter suites based on `isOnly` logic. - * - * @param {Array} suite - * @returns {Boolean} - * @api private - */ -function filterOnly(suite) { - if (suite._onlyTests.length) { - // If the suite contains `only` tests, run those and ignore any nested suites. - suite.tests = suite._onlyTests; - suite.suites = []; - } else { - // Otherwise, do not run any of the tests in this suite. - suite.tests = []; - suite._onlySuites.forEach(function(onlySuite) { - // If there are other `only` tests/suites nested in the current `only` suite, then filter that `only` suite. - // Otherwise, all of the tests on this `only` suite should be run, so don't filter it. - if (hasOnly(onlySuite)) { - filterOnly(onlySuite); - } - }); - // Run the `only` suites, as well as any other suites that have `only` tests/suites as descendants. - suite.suites = suite.suites.filter(function(childSuite) { - return ( - suite._onlySuites.indexOf(childSuite) !== -1 || filterOnly(childSuite) - ); - }); - } - // Keep the suite only if there is something to run - return suite.tests.length || suite.suites.length; -} - -/** - * Determines whether a suite has an `only` test or suite as a descendant. - * - * @param {Array} suite - * @returns {Boolean} - * @api private - */ -function hasOnly(suite) { - return ( - suite._onlyTests.length || - suite._onlySuites.length || - suite.suites.some(hasOnly) - ); -} - -/** - * Filter leaks with the given globals flagged as `ok`. - * - * @api private - * @param {Array} ok - * @param {Array} globals - * @return {Array} - */ -function filterLeaks(ok, globals) { - return globals.filter(function(key) { - // Firefox and Chrome exposes iframes as index inside the window object - if (/^\d+/.test(key)) { - return false; - } - - // in firefox - // if runner runs in an iframe, this iframe's window.getInterface method - // not init at first it is assigned in some seconds - if (global.navigator && /^getInterface/.test(key)) { - return false; - } - - // an iframe could be approached by window[iframeIndex] - // in ie6,7,8 and opera, iframeIndex is enumerable, this could cause leak - if (global.navigator && /^\d+/.test(key)) { - return false; - } - - // Opera and IE expose global variables for HTML element IDs (issue #243) - if (/^mocha-/.test(key)) { - return false; - } - - var matched = ok.filter(function(ok) { - if (~ok.indexOf('*')) { - return key.indexOf(ok.split('*')[0]) === 0; - } - return key === ok; - }); - return !matched.length && (!global.navigator || key !== 'onerror'); - }); -} - -/** - * Array of globals dependent on the environment. - * - * @return {Array} - * @api private - */ -function extraGlobals() { - if (typeof process === 'object' && typeof process.version === 'string') { - var parts = process.version.split('.'); - var nodeVersion = parts.reduce(function(a, v) { - return (a << 8) | v; - }); - - // 'errno' was renamed to process._errno in v0.9.11. - - if (nodeVersion < 0x00090b) { - return ['errno']; - } - } - - return []; -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./pending":15,"./runnable":32,"./utils":36,"_process":56,"debug":43,"events":47}],34:[function(require,module,exports){ -'use strict'; -/** - * @module Suite - */ - -/** - * Module dependencies. - */ -var EventEmitter = require('events').EventEmitter; -var Hook = require('./hook'); -var utils = require('./utils'); -var inherits = utils.inherits; -var debug = require('debug')('mocha:suite'); -var milliseconds = require('./ms'); - -/** - * Expose `Suite`. - */ - -exports = module.exports = Suite; - -/** - * Create a new `Suite` with the given `title` and parent `Suite`. When a suite - * with the same title is already present, that suite is returned to provide - * nicer reporter and more flexible meta-testing. - * - * @memberof Mocha - * @public - * @api public - * @param {Suite} parent - * @param {string} title - * @return {Suite} - */ -exports.create = function(parent, title) { - var suite = new Suite(title, parent.ctx); - suite.parent = parent; - title = suite.fullTitle(); - parent.addSuite(suite); - return suite; -}; - -/** - * Initialize a new `Suite` with the given `title` and `ctx`. Derived from [EventEmitter](https://nodejs.org/api/events.html#events_class_eventemitter) - * - * @memberof Mocha - * @public - * @class - * @param {string} title - * @param {Context} parentContext - */ -function Suite(title, parentContext) { - if (!utils.isString(title)) { - throw new Error( - 'Suite `title` should be a "string" but "' + - typeof title + - '" was given instead.' - ); - } - this.title = title; - function Context() {} - Context.prototype = parentContext; - this.ctx = new Context(); - this.suites = []; - this.tests = []; - this.pending = false; - this._beforeEach = []; - this._beforeAll = []; - this._afterEach = []; - this._afterAll = []; - this.root = !title; - this._timeout = 2000; - this._enableTimeouts = true; - this._slow = 75; - this._bail = false; - this._retries = -1; - this._onlyTests = []; - this._onlySuites = []; - this.delayed = false; -} - -/** - * Inherit from `EventEmitter.prototype`. - */ -inherits(Suite, EventEmitter); - -/** - * Return a clone of this `Suite`. - * - * @api private - * @return {Suite} - */ -Suite.prototype.clone = function() { - var suite = new Suite(this.title); - debug('clone'); - suite.ctx = this.ctx; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - return suite; -}; - -/** - * Set or get timeout `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.timeout = function(ms) { - if (!arguments.length) { - return this._timeout; - } - if (ms.toString() === '0') { - this._enableTimeouts = false; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('timeout %d', ms); - this._timeout = parseInt(ms, 10); - return this; -}; - -/** - * Set or get number of times to retry a failed test. - * - * @api private - * @param {number|string} n - * @return {Suite|number} for chaining - */ -Suite.prototype.retries = function(n) { - if (!arguments.length) { - return this._retries; - } - debug('retries %d', n); - this._retries = parseInt(n, 10) || 0; - return this; -}; - -/** - * Set or get timeout to `enabled`. - * - * @api private - * @param {boolean} enabled - * @return {Suite|boolean} self or enabled - */ -Suite.prototype.enableTimeouts = function(enabled) { - if (!arguments.length) { - return this._enableTimeouts; - } - debug('enableTimeouts %s', enabled); - this._enableTimeouts = enabled; - return this; -}; - -/** - * Set or get slow `ms` or short-hand such as "2s". - * - * @api private - * @param {number|string} ms - * @return {Suite|number} for chaining - */ -Suite.prototype.slow = function(ms) { - if (!arguments.length) { - return this._slow; - } - if (typeof ms === 'string') { - ms = milliseconds(ms); - } - debug('slow %d', ms); - this._slow = ms; - return this; -}; - -/** - * Set or get whether to bail after first error. - * - * @api private - * @param {boolean} bail - * @return {Suite|number} for chaining - */ -Suite.prototype.bail = function(bail) { - if (!arguments.length) { - return this._bail; - } - debug('bail %s', bail); - this._bail = bail; - return this; -}; - -/** - * Check if this suite or its parent suite is marked as pending. - * - * @api private - */ -Suite.prototype.isPending = function() { - return this.pending || (this.parent && this.parent.isPending()); -}; - -/** - * Generic hook-creator. - * @private - * @param {string} title - Title of hook - * @param {Function} fn - Hook callback - * @returns {Hook} A new hook - */ -Suite.prototype._createHook = function(title, fn) { - var hook = new Hook(title, fn); - hook.parent = this; - hook.timeout(this.timeout()); - hook.retries(this.retries()); - hook.enableTimeouts(this.enableTimeouts()); - hook.slow(this.slow()); - hook.ctx = this.ctx; - hook.file = this.file; - return hook; -}; - -/** - * Run `fn(test[, done])` before running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeAll = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before all" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._beforeAll.push(hook); - this.emit('beforeAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after running tests. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterAll = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after all" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._afterAll.push(hook); - this.emit('afterAll', hook); - return this; -}; - -/** - * Run `fn(test[, done])` before each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.beforeEach = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"before each" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._beforeEach.push(hook); - this.emit('beforeEach', hook); - return this; -}; - -/** - * Run `fn(test[, done])` after each test case. - * - * @api private - * @param {string} title - * @param {Function} fn - * @return {Suite} for chaining - */ -Suite.prototype.afterEach = function(title, fn) { - if (this.isPending()) { - return this; - } - if (typeof title === 'function') { - fn = title; - title = fn.name; - } - title = '"after each" hook' + (title ? ': ' + title : ''); - - var hook = this._createHook(title, fn); - this._afterEach.push(hook); - this.emit('afterEach', hook); - return this; -}; - -/** - * Add a test `suite`. - * - * @api private - * @param {Suite} suite - * @return {Suite} for chaining - */ -Suite.prototype.addSuite = function(suite) { - suite.parent = this; - suite.timeout(this.timeout()); - suite.retries(this.retries()); - suite.enableTimeouts(this.enableTimeouts()); - suite.slow(this.slow()); - suite.bail(this.bail()); - this.suites.push(suite); - this.emit('suite', suite); - return this; -}; - -/** - * Add a `test` to this suite. - * - * @api private - * @param {Test} test - * @return {Suite} for chaining - */ -Suite.prototype.addTest = function(test) { - test.parent = this; - test.timeout(this.timeout()); - test.retries(this.retries()); - test.enableTimeouts(this.enableTimeouts()); - test.slow(this.slow()); - test.ctx = this.ctx; - this.tests.push(test); - this.emit('test', test); - return this; -}; - -/** - * Return the full title generated by recursively concatenating the parent's - * full title. - * - * @memberof Mocha.Suite - * @public - * @api public - * @return {string} - */ -Suite.prototype.fullTitle = function() { - return this.titlePath().join(' '); -}; - -/** - * Return the title path generated by recursively concatenating the parent's - * title path. - * - * @memberof Mocha.Suite - * @public - * @api public - * @return {string} - */ -Suite.prototype.titlePath = function() { - var result = []; - if (this.parent) { - result = result.concat(this.parent.titlePath()); - } - if (!this.root) { - result.push(this.title); - } - return result; -}; - -/** - * Return the total number of tests. - * - * @memberof Mocha.Suite - * @public - * @api public - * @return {number} - */ -Suite.prototype.total = function() { - return ( - this.suites.reduce(function(sum, suite) { - return sum + suite.total(); - }, 0) + this.tests.length - ); -}; - -/** - * Iterates through each suite recursively to find all tests. Applies a - * function in the format `fn(test)`. - * - * @api private - * @param {Function} fn - * @return {Suite} - */ -Suite.prototype.eachTest = function(fn) { - this.tests.forEach(fn); - this.suites.forEach(function(suite) { - suite.eachTest(fn); - }); - return this; -}; - -/** - * This will run the root suite if we happen to be running in delayed mode. - */ -Suite.prototype.run = function run() { - if (this.root) { - this.emit('run'); - } -}; - -},{"./hook":6,"./ms":14,"./utils":36,"debug":43,"events":47}],35:[function(require,module,exports){ -'use strict'; -var Runnable = require('./runnable'); -var utils = require('./utils'); -var isString = utils.isString; - -module.exports = Test; - -/** - * Initialize a new `Test` with the given `title` and callback `fn`. - * - * @class - * @extends Runnable - * @param {String} title - * @param {Function} fn - */ -function Test(title, fn) { - if (!isString(title)) { - throw new Error( - 'Test `title` should be a "string" but "' + - typeof title + - '" was given instead.' - ); - } - Runnable.call(this, title, fn); - this.pending = !fn; - this.type = 'test'; -} - -/** - * Inherit from `Runnable.prototype`. - */ -utils.inherits(Test, Runnable); - -Test.prototype.clone = function() { - var test = new Test(this.title, this.fn); - test.timeout(this.timeout()); - test.slow(this.slow()); - test.enableTimeouts(this.enableTimeouts()); - test.retries(this.retries()); - test.currentRetry(this.currentRetry()); - test.globals(this.globals()); - test.parent = this.parent; - test.file = this.file; - test.ctx = this.ctx; - return test; -}; - -},{"./runnable":32,"./utils":36}],36:[function(require,module,exports){ -(function (process,Buffer){ -'use strict'; - -/** - * @module - */ - -/** - * Module dependencies. - */ - -var debug = require('debug')('mocha:watch'); -var fs = require('fs'); -var glob = require('glob'); -var path = require('path'); -var join = path.join; -var he = require('he'); - -/** - * Ignored directories. - */ - -var ignore = ['node_modules', '.git']; - -exports.inherits = require('util').inherits; - -/** - * Escape special characters in the given string of html. - * - * @api private - * @param {string} html - * @return {string} - */ -exports.escape = function(html) { - return he.encode(String(html), {useNamedReferences: false}); -}; - -/** - * Test if the given obj is type of string. - * - * @api private - * @param {Object} obj - * @return {boolean} - */ -exports.isString = function(obj) { - return typeof obj === 'string'; -}; - -/** - * Watch the given `files` for changes - * and invoke `fn(file)` on modification. - * - * @api private - * @param {Array} files - * @param {Function} fn - */ -exports.watch = function(files, fn) { - var options = {interval: 100}; - files.forEach(function(file) { - debug('file %s', file); - fs.watchFile(file, options, function(curr, prev) { - if (prev.mtime < curr.mtime) { - fn(file); - } - }); - }); -}; - -/** - * Ignored files. - * - * @api private - * @param {string} path - * @return {boolean} - */ -function ignored(path) { - return !~ignore.indexOf(path); -} - -/** - * Lookup files in the given `dir`. - * - * @api private - * @param {string} dir - * @param {string[]} [ext=['.js']] - * @param {Array} [ret=[]] - * @return {Array} - */ -exports.files = function(dir, ext, ret) { - ret = ret || []; - ext = ext || ['js']; - - var re = new RegExp('\\.(' + ext.join('|') + ')$'); - - fs - .readdirSync(dir) - .filter(ignored) - .forEach(function(path) { - path = join(dir, path); - if (fs.lstatSync(path).isDirectory()) { - exports.files(path, ext, ret); - } else if (path.match(re)) { - ret.push(path); - } - }); - - return ret; -}; - -/** - * Compute a slug from the given `str`. - * - * @api private - * @param {string} str - * @return {string} - */ -exports.slug = function(str) { - return str - .toLowerCase() - .replace(/ +/g, '-') - .replace(/[^-\w]/g, ''); -}; - -/** - * Strip the function definition from `str`, and re-indent for pre whitespace. - * - * @param {string} str - * @return {string} - */ -exports.clean = function(str) { - str = str - .replace(/\r\n?|[\n\u2028\u2029]/g, '\n') - .replace(/^\uFEFF/, '') - // (traditional)-> space/name parameters body (lambda)-> parameters body multi-statement/single keep body content - .replace( - /^function(?:\s*|\s+[^(]*)\([^)]*\)\s*\{((?:.|\n)*?)\s*\}$|^\([^)]*\)\s*=>\s*(?:\{((?:.|\n)*?)\s*\}|((?:.|\n)*))$/, - '$1$2$3' - ); - - var spaces = str.match(/^\n?( *)/)[1].length; - var tabs = str.match(/^\n?(\t*)/)[1].length; - var re = new RegExp( - '^\n?' + (tabs ? '\t' : ' ') + '{' + (tabs || spaces) + '}', - 'gm' - ); - - str = str.replace(re, ''); - - return str.trim(); -}; - -/** - * Parse the given `qs`. - * - * @api private - * @param {string} qs - * @return {Object} - */ -exports.parseQuery = function(qs) { - return qs - .replace('?', '') - .split('&') - .reduce(function(obj, pair) { - var i = pair.indexOf('='); - var key = pair.slice(0, i); - var val = pair.slice(++i); - - // Due to how the URLSearchParams API treats spaces - obj[key] = decodeURIComponent(val.replace(/\+/g, '%20')); - - return obj; - }, {}); -}; - -/** - * Highlight the given string of `js`. - * - * @api private - * @param {string} js - * @return {string} - */ -function highlight(js) { - return js - .replace(//g, '>') - .replace(/\/\/(.*)/gm, '//$1') - .replace(/('.*?')/gm, '$1') - .replace(/(\d+\.\d+)/gm, '$1') - .replace(/(\d+)/gm, '$1') - .replace( - /\bnew[ \t]+(\w+)/gm, - 'new $1' - ) - .replace( - /\b(function|new|throw|return|var|if|else)\b/gm, - '$1' - ); -} - -/** - * Highlight the contents of tag `name`. - * - * @api private - * @param {string} name - */ -exports.highlightTags = function(name) { - var code = document.getElementById('mocha').getElementsByTagName(name); - for (var i = 0, len = code.length; i < len; ++i) { - code[i].innerHTML = highlight(code[i].innerHTML); - } -}; - -/** - * If a value could have properties, and has none, this function is called, - * which returns a string representation of the empty value. - * - * Functions w/ no properties return `'[Function]'` - * Arrays w/ length === 0 return `'[]'` - * Objects w/ no properties return `'{}'` - * All else: return result of `value.toString()` - * - * @api private - * @param {*} value The value to inspect. - * @param {string} typeHint The type of the value - * @returns {string} - */ -function emptyRepresentation(value, typeHint) { - switch (typeHint) { - case 'function': - return '[Function]'; - case 'object': - return '{}'; - case 'array': - return '[]'; - default: - return value.toString(); - } -} - -/** - * Takes some variable and asks `Object.prototype.toString()` what it thinks it - * is. - * - * @api private - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString - * @param {*} value The value to test. - * @returns {string} Computed type - * @example - * type({}) // 'object' - * type([]) // 'array' - * type(1) // 'number' - * type(false) // 'boolean' - * type(Infinity) // 'number' - * type(null) // 'null' - * type(new Date()) // 'date' - * type(/foo/) // 'regexp' - * type('type') // 'string' - * type(global) // 'global' - * type(new String('foo') // 'object' - */ -var type = (exports.type = function type(value) { - if (value === undefined) { - return 'undefined'; - } else if (value === null) { - return 'null'; - } else if (Buffer.isBuffer(value)) { - return 'buffer'; - } - return Object.prototype.toString - .call(value) - .replace(/^\[.+\s(.+?)]$/, '$1') - .toLowerCase(); -}); - -/** - * Stringify `value`. Different behavior depending on type of value: - * - * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively. - * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes. - * - If `value` is an *empty* object, function, or array, return result of function - * {@link emptyRepresentation}. - * - If `value` has properties, call {@link exports.canonicalize} on it, then return result of - * JSON.stringify(). - * - * @api private - * @see exports.type - * @param {*} value - * @return {string} - */ -exports.stringify = function(value) { - var typeHint = type(value); - - if (!~['object', 'array', 'function'].indexOf(typeHint)) { - if (typeHint === 'buffer') { - var json = Buffer.prototype.toJSON.call(value); - // Based on the toJSON result - return jsonStringify( - json.data && json.type ? json.data : json, - 2 - ).replace(/,(\n|$)/g, '$1'); - } - - // IE7/IE8 has a bizarre String constructor; needs to be coerced - // into an array and back to obj. - if (typeHint === 'string' && typeof value === 'object') { - value = value.split('').reduce(function(acc, char, idx) { - acc[idx] = char; - return acc; - }, {}); - typeHint = 'object'; - } else { - return jsonStringify(value); - } - } - - for (var prop in value) { - if (Object.prototype.hasOwnProperty.call(value, prop)) { - return jsonStringify( - exports.canonicalize(value, null, typeHint), - 2 - ).replace(/,(\n|$)/g, '$1'); - } - } - - return emptyRepresentation(value, typeHint); -}; - -/** - * like JSON.stringify but more sense. - * - * @api private - * @param {Object} object - * @param {number=} spaces - * @param {number=} depth - * @returns {*} - */ -function jsonStringify(object, spaces, depth) { - if (typeof spaces === 'undefined') { - // primitive types - return _stringify(object); - } - - depth = depth || 1; - var space = spaces * depth; - var str = Array.isArray(object) ? '[' : '{'; - var end = Array.isArray(object) ? ']' : '}'; - var length = - typeof object.length === 'number' - ? object.length - : Object.keys(object).length; - // `.repeat()` polyfill - function repeat(s, n) { - return new Array(n).join(s); - } - - function _stringify(val) { - switch (type(val)) { - case 'null': - case 'undefined': - val = '[' + val + ']'; - break; - case 'array': - case 'object': - val = jsonStringify(val, spaces, depth + 1); - break; - case 'boolean': - case 'regexp': - case 'symbol': - case 'number': - val = - val === 0 && 1 / val === -Infinity // `-0` - ? '-0' - : val.toString(); - break; - case 'date': - var sDate = isNaN(val.getTime()) ? val.toString() : val.toISOString(); - val = '[Date: ' + sDate + ']'; - break; - case 'buffer': - var json = val.toJSON(); - // Based on the toJSON result - json = json.data && json.type ? json.data : json; - val = '[Buffer: ' + jsonStringify(json, 2, depth + 1) + ']'; - break; - default: - val = - val === '[Function]' || val === '[Circular]' - ? val - : JSON.stringify(val); // string - } - return val; - } - - for (var i in object) { - if (!Object.prototype.hasOwnProperty.call(object, i)) { - continue; // not my business - } - --length; - str += - '\n ' + - repeat(' ', space) + - (Array.isArray(object) ? '' : '"' + i + '": ') + // key - _stringify(object[i]) + // value - (length ? ',' : ''); // comma - } - - return ( - str + - // [], {} - (str.length !== 1 ? '\n' + repeat(' ', --space) + end : end) - ); -} - -/** - * Return a new Thing that has the keys in sorted order. Recursive. - * - * If the Thing... - * - has already been seen, return string `'[Circular]'` - * - is `undefined`, return string `'[undefined]'` - * - is `null`, return value `null` - * - is some other primitive, return the value - * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method - * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again. - * - is an empty `Array`, `Object`, or `Function`, return the result of calling `emptyRepresentation()` - * - * @api private - * @see {@link exports.stringify} - * @param {*} value Thing to inspect. May or may not have properties. - * @param {Array} [stack=[]] Stack of seen values - * @param {string} [typeHint] Type hint - * @return {(Object|Array|Function|string|undefined)} - */ -exports.canonicalize = function canonicalize(value, stack, typeHint) { - var canonicalizedObj; - /* eslint-disable no-unused-vars */ - var prop; - /* eslint-enable no-unused-vars */ - typeHint = typeHint || type(value); - function withStack(value, fn) { - stack.push(value); - fn(); - stack.pop(); - } - - stack = stack || []; - - if (stack.indexOf(value) !== -1) { - return '[Circular]'; - } - - switch (typeHint) { - case 'undefined': - case 'buffer': - case 'null': - canonicalizedObj = value; - break; - case 'array': - withStack(value, function() { - canonicalizedObj = value.map(function(item) { - return exports.canonicalize(item, stack); - }); - }); - break; - case 'function': - /* eslint-disable guard-for-in */ - for (prop in value) { - canonicalizedObj = {}; - break; - } - /* eslint-enable guard-for-in */ - if (!canonicalizedObj) { - canonicalizedObj = emptyRepresentation(value, typeHint); - break; - } - /* falls through */ - case 'object': - canonicalizedObj = canonicalizedObj || {}; - withStack(value, function() { - Object.keys(value) - .sort() - .forEach(function(key) { - canonicalizedObj[key] = exports.canonicalize(value[key], stack); - }); - }); - break; - case 'date': - case 'number': - case 'regexp': - case 'boolean': - case 'symbol': - canonicalizedObj = value; - break; - default: - canonicalizedObj = value + ''; - } - - return canonicalizedObj; -}; - -/** - * Lookup file names at the given `path`. - * - * @memberof Mocha.utils - * @public - * @api public - * @param {string} filepath Base path to start searching from. - * @param {string[]} extensions File extensions to look for. - * @param {boolean} recursive Whether or not to recurse into subdirectories. - * @return {string[]} An array of paths. - */ -exports.lookupFiles = function lookupFiles(filepath, extensions, recursive) { - var files = []; - - if (!fs.existsSync(filepath)) { - if (fs.existsSync(filepath + '.js')) { - filepath += '.js'; - } else { - files = glob.sync(filepath); - if (!files.length) { - throw new Error("cannot resolve path (or pattern) '" + filepath + "'"); - } - return files; - } - } - - try { - var stat = fs.statSync(filepath); - if (stat.isFile()) { - return filepath; - } - } catch (err) { - // ignore error - return; - } - - fs.readdirSync(filepath).forEach(function(file) { - file = path.join(filepath, file); - try { - var stat = fs.statSync(file); - if (stat.isDirectory()) { - if (recursive) { - files = files.concat(lookupFiles(file, extensions, recursive)); - } - return; - } - } catch (err) { - // ignore error - return; - } - if (!extensions) { - throw new Error( - 'extensions parameter required when filepath is a directory' - ); - } - var re = new RegExp('\\.(?:' + extensions.join('|') + ')$'); - if (!stat.isFile() || !re.test(file) || path.basename(file)[0] === '.') { - return; - } - files.push(file); - }); - - return files; -}; - -/** - * Generate an undefined error with a message warning the user. - * - * @return {Error} - */ - -exports.undefinedError = function() { - return new Error( - 'Caught undefined error, did you throw without specifying what?' - ); -}; - -/** - * Generate an undefined error if `err` is not defined. - * - * @param {Error} err - * @return {Error} - */ - -exports.getError = function(err) { - return err || exports.undefinedError(); -}; - -/** - * @summary - * This Filter based on `mocha-clean` module.(see: `github.com/rstacruz/mocha-clean`) - * @description - * When invoking this function you get a filter function that get the Error.stack as an input, - * and return a prettify output. - * (i.e: strip Mocha and internal node functions from stack trace). - * @returns {Function} - */ -exports.stackTraceFilter = function() { - // TODO: Replace with `process.browser` - var is = typeof document === 'undefined' ? {node: true} : {browser: true}; - var slash = path.sep; - var cwd; - if (is.node) { - cwd = process.cwd() + slash; - } else { - cwd = (typeof location === 'undefined' - ? window.location - : location - ).href.replace(/\/[^/]*$/, '/'); - slash = '/'; - } - - function isMochaInternal(line) { - return ( - ~line.indexOf('node_modules' + slash + 'mocha' + slash) || - ~line.indexOf('node_modules' + slash + 'mocha.js') || - ~line.indexOf('bower_components' + slash + 'mocha.js') || - ~line.indexOf(slash + 'mocha.js') - ); - } - - function isNodeInternal(line) { - return ( - ~line.indexOf('(timers.js:') || - ~line.indexOf('(events.js:') || - ~line.indexOf('(node.js:') || - ~line.indexOf('(module.js:') || - ~line.indexOf('GeneratorFunctionPrototype.next (native)') || - false - ); - } - - return function(stack) { - stack = stack.split('\n'); - - stack = stack.reduce(function(list, line) { - if (isMochaInternal(line)) { - return list; - } - - if (is.node && isNodeInternal(line)) { - return list; - } - - // Clean up cwd(absolute) - if (/\(?.+:\d+:\d+\)?$/.test(line)) { - line = line.replace('(' + cwd, '('); - } - - list.push(line); - return list; - }, []); - - return stack.join('\n'); - }; -}; - -/** - * Crude, but effective. - * @api - * @param {*} value - * @returns {boolean} Whether or not `value` is a Promise - */ -exports.isPromise = function isPromise(value) { - return typeof value === 'object' && typeof value.then === 'function'; -}; - -/** - * It's a noop. - * @api - */ -exports.noop = function() {}; - -}).call(this,require('_process'),require("buffer").Buffer) -},{"_process":56,"buffer":41,"debug":43,"fs":40,"glob":40,"he":48,"path":40,"util":76}],37:[function(require,module,exports){ -'use strict' - -exports.byteLength = byteLength -exports.toByteArray = toByteArray -exports.fromByteArray = fromByteArray - -var lookup = [] -var revLookup = [] -var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - -var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i -} - -// Support decoding URL-safe base64 strings, as Node.js does. -// See: https://en.wikipedia.org/wiki/Base64#URL_applications -revLookup['-'.charCodeAt(0)] = 62 -revLookup['_'.charCodeAt(0)] = 63 - -function getLens (b64) { - var len = b64.length - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] -} - -// base64 is 4/3 + up to two characters of the original data -function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen -} - -function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - for (var i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - return arr -} - -function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] -} - -function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') -} - -function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk( - uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) - )) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) - } - - return parts.join('') -} - -},{}],38:[function(require,module,exports){ - -},{}],39:[function(require,module,exports){ -(function (process){ -var WritableStream = require('stream').Writable -var inherits = require('util').inherits - -module.exports = BrowserStdout - - -inherits(BrowserStdout, WritableStream) - -function BrowserStdout(opts) { - if (!(this instanceof BrowserStdout)) return new BrowserStdout(opts) - - opts = opts || {} - WritableStream.call(this, opts) - this.label = (opts.label !== undefined) ? opts.label : 'stdout' -} - -BrowserStdout.prototype._write = function(chunks, encoding, cb) { - var output = chunks.toString ? chunks.toString() : chunks - if (this.label === false) { - console.log(output) - } else { - console.log(this.label+':', output) - } - process.nextTick(cb) -} - -}).call(this,require('_process')) -},{"_process":56,"stream":71,"util":76}],40:[function(require,module,exports){ -arguments[4][38][0].apply(exports,arguments) -},{"dup":38}],41:[function(require,module,exports){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - -'use strict' - -var base64 = require('base64-js') -var ieee754 = require('ieee754') - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 - -var K_MAX_LENGTH = 0x7fffffff -exports.kMaxLength = K_MAX_LENGTH - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Print warning and recommend using `buffer` v4.x which has an Object - * implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * We report that the browser does not support typed arrays if the are not subclassable - * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` - * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support - * for __proto__ and has a buggy typed array implementation. - */ -Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() - -if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && - typeof console.error === 'function') { - console.error( - 'This browser lacks typed array (Uint8Array) support which is required by ' + - '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' - ) -} - -function typedArraySupport () { - // Can typed array instances can be augmented? - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 - } catch (e) { - return false - } -} - -Object.defineProperty(Buffer.prototype, 'parent', { - get: function () { - if (!(this instanceof Buffer)) { - return undefined - } - return this.buffer - } -}) - -Object.defineProperty(Buffer.prototype, 'offset', { - get: function () { - if (!(this instanceof Buffer)) { - return undefined - } - return this.byteOffset - } -}) - -function createBuffer (length) { - if (length > K_MAX_LENGTH) { - throw new RangeError('Invalid typed array length') - } - // Return an augmented `Uint8Array` instance - var buf = new Uint8Array(length) - buf.__proto__ = Buffer.prototype - return buf -} - -/** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - -function Buffer (arg, encodingOrOffset, length) { - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(arg) - } - return from(arg, encodingOrOffset, length) -} - -// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 -if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true, - enumerable: false, - writable: false - }) -} - -Buffer.poolSize = 8192 // not used by this implementation - -function from (value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (isArrayBuffer(value) || (value && isArrayBuffer(value.buffer))) { - return fromArrayBuffer(value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(value, encodingOrOffset) - } - - return fromObject(value) -} - -/** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ -Buffer.from = function (value, encodingOrOffset, length) { - return from(value, encodingOrOffset, length) -} - -// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: -// https://github.com/feross/buffer/pull/148 -Buffer.prototype.__proto__ = Uint8Array.prototype -Buffer.__proto__ = Uint8Array - -function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be of type number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } -} - -function alloc (size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(size).fill(fill, encoding) - : createBuffer(size).fill(fill) - } - return createBuffer(size) -} - -/** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ -Buffer.alloc = function (size, fill, encoding) { - return alloc(size, fill, encoding) -} - -function allocUnsafe (size) { - assertSize(size) - return createBuffer(size < 0 ? 0 : checked(size) | 0) -} - -/** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ -Buffer.allocUnsafe = function (size) { - return allocUnsafe(size) -} -/** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ -Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(size) -} - -function fromString (string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - - var length = byteLength(string, encoding) | 0 - var buf = createBuffer(length) - - var actual = buf.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - buf = buf.slice(0, actual) - } - - return buf -} - -function fromArrayLike (array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - var buf = createBuffer(length) - for (var i = 0; i < length; i += 1) { - buf[i] = array[i] & 255 - } - return buf -} - -function fromArrayBuffer (array, byteOffset, length) { - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('"offset" is outside of buffer bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('"length" is outside of buffer bounds') - } - - var buf - if (byteOffset === undefined && length === undefined) { - buf = new Uint8Array(array) - } else if (length === undefined) { - buf = new Uint8Array(array, byteOffset) - } else { - buf = new Uint8Array(array, byteOffset, length) - } - - // Return an augmented `Uint8Array` instance - buf.__proto__ = Buffer.prototype - return buf -} - -function fromObject (obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - var buf = createBuffer(len) - - if (buf.length === 0) { - return buf - } - - obj.copy(buf, 0, 0, len) - return buf - } - - if (obj) { - if (ArrayBuffer.isView(obj) || 'length' in obj) { - if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { - return createBuffer(0) - } - return fromArrayLike(obj) - } - - if (obj.type === 'Buffer' && Array.isArray(obj.data)) { - return fromArrayLike(obj.data) - } - } - - throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.') -} - -function checked (length) { - // Note: cannot use `length < K_MAX_LENGTH` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= K_MAX_LENGTH) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) -} - -Buffer.isBuffer = function isBuffer (b) { - return b != null && b._isBuffer === true -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!Array.isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (ArrayBuffer.isView(buf)) { - buf = Buffer.from(buf) - } - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer -} - -function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (ArrayBuffer.isView(string) || isArrayBuffer(string)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) -// to detect a Buffer instance. It's not possible to use `instanceof Buffer` -// reliably in a browserify context because there could be multiple different -// copies of the 'buffer' package in use. This method works even for Buffer -// instances that were created from another copy of the `buffer` package. -// See: https://github.com/feross/buffer/issues/154 -Buffer.prototype._isBuffer = true - -function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i -} - -Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this -} - -Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this -} - -Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this -} - -Buffer.prototype.toString = function toString () { - var length = this.length - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.toLocaleString = Buffer.prototype.toString - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, -// OR the last index of `val` in `buffer` at offset <= `byteOffset`. -// -// Arguments: -// - buffer - a Buffer to search -// - val - a string, Buffer, or number -// - byteOffset - an index into `buffer`; will be clamped to an int32 -// - encoding - an optional encoding, relevant is val is a string -// - dir - true for indexOf, false for lastIndexOf -function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (numberIsNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') -} - -function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 -} - -Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) -} - -Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - var strLen = string.length - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (numberIsNaN(parsed)) return i - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset >>> 0 - if (isFinite(length)) { - length = length >>> 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf = this.subarray(start, end) - // Return an augmented `Uint8Array` instance - newBuf.__proto__ = Buffer.prototype - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - offset = offset >>> 0 - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - byteLength = byteLength >>> 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - var limit = Math.pow(2, (8 * byteLength) - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - value = +value - offset = offset >>> 0 - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('Index out of range') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - - if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { - // Use built-in when available, missing from IE11 - this.copyWithin(targetStart, start, end) - } else if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (var i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, end), - targetStart - ) - } - - return len -} - -// Usage: -// buffer.fill(number[, offset[, end]]) -// buffer.fill(buffer[, offset[, end]]) -// buffer.fill(string[, offset[, end]][, encoding]) -Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if ((encoding === 'utf8' && code < 128) || - encoding === 'latin1') { - // Fast path: If `val` fits into a single byte, use that numeric value. - val = code - } - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : new Buffer(val, encoding) - var len = bytes.length - if (len === 0) { - throw new TypeError('The value "' + val + - '" is invalid for argument "value"') - } - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this -} - -// HELPER FUNCTIONS -// ================ - -var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node takes equal signs as end of the Base64 encoding - str = str.split('=')[0] - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = str.trim().replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -// ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check -// but they should be treated as valid. See: https://github.com/feross/buffer/issues/166 -function isArrayBuffer (obj) { - return obj instanceof ArrayBuffer || - (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' && - typeof obj.byteLength === 'number') -} - -function numberIsNaN (obj) { - return obj !== obj // eslint-disable-line no-self-compare -} - -},{"base64-js":37,"ieee754":49}],42:[function(require,module,exports){ -(function (Buffer){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -}).call(this,{"isBuffer":require("../../is-buffer/index.js")}) -},{"../../is-buffer/index.js":51}],43:[function(require,module,exports){ -(function (process){ -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', - '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', - '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', - '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', - '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', - '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', - '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', - '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', - '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', - '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', - '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - // is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (err) { - return '[UnexpectedJSONParseError]: ' + err.message; - } -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return; - - var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit') - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - return window.localStorage; - } catch (e) {} -} - -}).call(this,require('_process')) -},{"./debug":44,"_process":56}],44:[function(require,module,exports){ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * Active `debug` instances. - */ -exports.instances = []; - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - -exports.formatters = {}; - -/** - * Select a color. - * @param {String} namespace - * @return {Number} - * @api private - */ - -function selectColor(namespace) { - var hash = 0, i; - - for (i in namespace) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return exports.colors[Math.abs(hash) % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function createDebug(namespace) { - - var prevTime; - - function debug() { - // disabled? - if (!debug.enabled) return; - - var self = debug; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // turn the `arguments` into a proper Array - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %O - args.unshift('%O'); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // apply env-specific formatting (colors, etc.) - exports.formatArgs.call(self, args); - - var logFn = debug.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.enabled = exports.enabled(namespace); - debug.useColors = exports.useColors(); - debug.color = selectColor(namespace); - debug.destroy = destroy; - - // env-specific initialization logic for debug instances - if ('function' === typeof exports.init) { - exports.init(debug); - } - - exports.instances.push(debug); - - return debug; -} - -function destroy () { - var index = exports.instances.indexOf(this); - if (index !== -1) { - exports.instances.splice(index, 1); - return true; - } else { - return false; - } -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - exports.names = []; - exports.skips = []; - - var i; - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } - - for (i = 0; i < exports.instances.length; i++) { - var instance = exports.instances[i]; - instance.enabled = exports.enabled(instance.namespace); - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} - -},{"ms":54}],45:[function(require,module,exports){ -/*! - - diff v3.5.0 - -Software License Agreement (BSD License) - -Copyright (c) 2009-2015, Kevin Decker - -All rights reserved. - -Redistribution and use of this software in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of Kevin Decker nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -@license -*/ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(false) - define([], factory); - else if(typeof exports === 'object') - exports["JsDiff"] = factory(); - else - root["JsDiff"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.merge = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined; - - /*istanbul ignore end*/var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - /*istanbul ignore end*/var /*istanbul ignore start*/_character = __webpack_require__(2) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_word = __webpack_require__(3) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_sentence = __webpack_require__(6) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_css = __webpack_require__(7) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_json = __webpack_require__(8) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_array = __webpack_require__(9) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_apply = __webpack_require__(10) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_merge = __webpack_require__(13) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_dmp = __webpack_require__(16) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_xml = __webpack_require__(17) /*istanbul ignore end*/; - - /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /* See LICENSE file for terms of use */ - - /* - * Text diff implementation. - * - * This library supports the following APIS: - * JsDiff.diffChars: Character by character diff - * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace - * JsDiff.diffLines: Line based diff - * - * JsDiff.diffCss: Diff targeted at CSS content - * - * These methods are based on the implementation proposed in - * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). - * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 - */ - exports. /*istanbul ignore end*/Diff = _base2['default']; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays; - /*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches; - /*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = _merge.merge; - /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP; - /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML; - /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize; - - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports['default'] = /*istanbul ignore end*/Diff; - function Diff() {} - - Diff.prototype = { - /*istanbul ignore start*/ /*istanbul ignore end*/diff: function diff(oldString, newString) { - /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - var callback = options.callback; - if (typeof options === 'function') { - callback = options; - options = {}; - } - this.options = options; - - var self = this; - - function done(value) { - if (callback) { - setTimeout(function () { - callback(undefined, value); - }, 0); - return true; - } else { - return value; - } - } - - // Allow subclasses to massage the input prior to running - oldString = this.castInput(oldString); - newString = this.castInput(newString); - - oldString = this.removeEmpty(this.tokenize(oldString)); - newString = this.removeEmpty(this.tokenize(newString)); - - var newLen = newString.length, - oldLen = oldString.length; - var editLength = 1; - var maxEditLength = newLen + oldLen; - var bestPath = [{ newPos: -1, components: [] }]; - - // Seed editLength = 0, i.e. the content starts with the same values - var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); - if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { - // Identity per the equality and tokenizer - return done([{ value: this.join(newString), count: newString.length }]); - } - - // Main worker method. checks all permutations of a given edit length for acceptance. - function execEditLength() { - for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { - var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - var addPath = bestPath[diagonalPath - 1], - removePath = bestPath[diagonalPath + 1], - _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; - if (addPath) { - // No one else is going to attempt to use this value, clear it - bestPath[diagonalPath - 1] = undefined; - } - - var canAdd = addPath && addPath.newPos + 1 < newLen, - canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; - if (!canAdd && !canRemove) { - // If this path is a terminal then prune - bestPath[diagonalPath] = undefined; - continue; - } - - // Select the diagonal that we want to branch from. We select the prior - // path whose position in the new string is the farthest from the origin - // and does not pass the bounds of the diff graph - if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { - basePath = clonePath(removePath); - self.pushComponent(basePath.components, undefined, true); - } else { - basePath = addPath; // No need to clone, we've pulled it from the list - basePath.newPos++; - self.pushComponent(basePath.components, true, undefined); - } - - _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); - - // If we have hit the end of both strings, then we are done - if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { - return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); - } else { - // Otherwise track this path as a potential candidate and continue. - bestPath[diagonalPath] = basePath; - } - } - - editLength++; - } - - // Performs the length of edit iteration. Is a bit fugly as this has to support the - // sync and async mode which is never fun. Loops over execEditLength until a value - // is produced. - if (callback) { - (function exec() { - setTimeout(function () { - // This should not happen, but we want to be safe. - /* istanbul ignore next */ - if (editLength > maxEditLength) { - return callback(); - } - - if (!execEditLength()) { - exec(); - } - }, 0); - })(); - } else { - while (editLength <= maxEditLength) { - var ret = execEditLength(); - if (ret) { - return ret; - } - } - } - }, - /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) { - var last = components[components.length - 1]; - if (last && last.added === added && last.removed === removed) { - // We need to clone here as the component clone operation is just - // as shallow array clone - components[components.length - 1] = { count: last.count + 1, added: added, removed: removed }; - } else { - components.push({ count: 1, added: added, removed: removed }); - } - }, - /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { - var newLen = newString.length, - oldLen = oldString.length, - newPos = basePath.newPos, - oldPos = newPos - diagonalPath, - commonCount = 0; - while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { - newPos++; - oldPos++; - commonCount++; - } - - if (commonCount) { - basePath.components.push({ count: commonCount }); - } - - basePath.newPos = newPos; - return oldPos; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) { - if (this.options.comparator) { - return this.options.comparator(left, right); - } else { - return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); - } - }, - /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) { - var ret = []; - for (var i = 0; i < array.length; i++) { - if (array[i]) { - ret.push(array[i]); - } - } - return ret; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) { - return value; - }, - /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) { - return value.split(''); - }, - /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) { - return chars.join(''); - } - }; - - function buildValues(diff, components, newString, oldString, useLongestToken) { - var componentPos = 0, - componentLen = components.length, - newPos = 0, - oldPos = 0; - - for (; componentPos < componentLen; componentPos++) { - var component = components[componentPos]; - if (!component.removed) { - if (!component.added && useLongestToken) { - var value = newString.slice(newPos, newPos + component.count); - value = value.map(function (value, i) { - var oldValue = oldString[oldPos + i]; - return oldValue.length > value.length ? oldValue : value; - }); - - component.value = diff.join(value); - } else { - component.value = diff.join(newString.slice(newPos, newPos + component.count)); - } - newPos += component.count; - - // Common case - if (!component.added) { - oldPos += component.count; - } - } else { - component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); - oldPos += component.count; - - // Reverse add and remove so removes are output first to match common convention - // The diffing algorithm is tied to add then remove output and this is the simplest - // route to get the desired output with minimal overhead. - if (componentPos && components[componentPos - 1].added) { - var tmp = components[componentPos - 1]; - components[componentPos - 1] = components[componentPos]; - components[componentPos] = tmp; - } - } - } - - // Special case handle for when one terminal is ignored (i.e. whitespace). - // For this case we merge the terminal into the prior string and drop the change. - // This is only available for string mode. - var lastComponent = components[componentLen - 1]; - if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { - components[componentLen - 2].value += lastComponent.value; - components.pop(); - } - - return components; - } - - function clonePath(path) { - return { newPos: path.newPos, components: path.components.slice(0) }; - } - - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.characterDiff = undefined; - exports. /*istanbul ignore end*/diffChars = diffChars; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - function diffChars(oldStr, newStr, options) { - return characterDiff.diff(oldStr, newStr, options); - } - - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.wordDiff = undefined; - exports. /*istanbul ignore end*/diffWords = diffWords; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; - - /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/ // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode - // - // Ranges and exceptions: - // Latin-1 Supplement, 0080–00FF - // - U+00D7 × Multiplication sign - // - U+00F7 ÷ Division sign - // Latin Extended-A, 0100–017F - // Latin Extended-B, 0180–024F - // IPA Extensions, 0250–02AF - // Spacing Modifier Letters, 02B0–02FF - // - U+02C7 ˇ ˇ Caron - // - U+02D8 ˘ ˘ Breve - // - U+02D9 ˙ ˙ Dot Above - // - U+02DA ˚ ˚ Ring Above - // - U+02DB ˛ ˛ Ogonek - // - U+02DC ˜ ˜ Small Tilde - // - U+02DD ˝ ˝ Double Acute Accent - // Latin Extended Additional, 1E00–1EFF - var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; - - var reWhitespace = /\S/; - - var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - wordDiff.equals = function (left, right) { - if (this.options.ignoreCase) { - left = left.toLowerCase(); - right = right.toLowerCase(); - } - return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); - }; - wordDiff.tokenize = function (value) { - var tokens = value.split(/(\s+|\b)/); - - // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. - for (var i = 0; i < tokens.length - 1; i++) { - // If we have an empty string in the next field and we have only word chars before and after, merge - if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { - tokens[i] += tokens[i + 2]; - tokens.splice(i + 1, 2); - i--; - } - } - - return tokens; - }; - - function diffWords(oldStr, newStr, options) { - options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(options, { ignoreWhitespace: true }); - return wordDiff.diff(oldStr, newStr, options); - } - - function diffWordsWithSpace(oldStr, newStr, options) { - return wordDiff.diff(oldStr, newStr, options); - } - - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports. /*istanbul ignore end*/generateOptions = generateOptions; - function generateOptions(options, defaults) { - if (typeof options === 'function') { - defaults.callback = options; - } else if (options) { - for (var name in options) { - /* istanbul ignore else */ - if (options.hasOwnProperty(name)) { - defaults[name] = options[name]; - } - } - } - return defaults; - } - - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.lineDiff = undefined; - exports. /*istanbul ignore end*/diffLines = diffLines; - /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; - - /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - lineDiff.tokenize = function (value) { - var retLines = [], - linesAndNewlines = value.split(/(\n|\r\n)/); - - // Ignore the final empty token that occurs if the string ends with a new line - if (!linesAndNewlines[linesAndNewlines.length - 1]) { - linesAndNewlines.pop(); - } - - // Merge the content and line separators into single tokens - for (var i = 0; i < linesAndNewlines.length; i++) { - var line = linesAndNewlines[i]; - - if (i % 2 && !this.options.newlineIsToken) { - retLines[retLines.length - 1] += line; - } else { - if (this.options.ignoreWhitespace) { - line = line.trim(); - } - retLines.push(line); - } - } - - return retLines; - }; - - function diffLines(oldStr, newStr, callback) { - return lineDiff.diff(oldStr, newStr, callback); - } - function diffTrimmedLines(oldStr, newStr, callback) { - var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); - return lineDiff.diff(oldStr, newStr, options); - } - - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.sentenceDiff = undefined; - exports. /*istanbul ignore end*/diffSentences = diffSentences; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - sentenceDiff.tokenize = function (value) { - return value.split(/(\S.+?[.!?])(?=\s+|$)/); - }; - - function diffSentences(oldStr, newStr, callback) { - return sentenceDiff.diff(oldStr, newStr, callback); - } - - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.cssDiff = undefined; - exports. /*istanbul ignore end*/diffCss = diffCss; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - cssDiff.tokenize = function (value) { - return value.split(/([{}:;,]|\s+)/); - }; - - function diffCss(oldStr, newStr, callback) { - return cssDiff.diff(oldStr, newStr, callback); - } - - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.jsonDiff = undefined; - - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - - exports. /*istanbul ignore end*/diffJson = diffJson; - /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - /*istanbul ignore end*/var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; - - /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/var objectPrototypeToString = Object.prototype.toString; - - var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a - // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: - jsonDiff.useLongestToken = true; - - jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff /*istanbul ignore end*/.tokenize; - jsonDiff.castInput = function (value) { - /*istanbul ignore start*/var _options = /*istanbul ignore end*/this.options, - undefinedReplacement = _options.undefinedReplacement, - _options$stringifyRep = _options.stringifyReplacer, - stringifyReplacer = _options$stringifyRep === undefined ? function (k, v) /*istanbul ignore start*/{ - return (/*istanbul ignore end*/typeof v === 'undefined' ? undefinedReplacement : v - ); - } : _options$stringifyRep; - - - return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); - }; - jsonDiff.equals = function (left, right) { - return (/*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) - ); - }; - - function diffJson(oldObj, newObj, options) { - return jsonDiff.diff(oldObj, newObj, options); - } - - // This function handles the presence of circular references by bailing out when encountering an - // object that is already on the "stack" of items being processed. Accepts an optional replacer - function canonicalize(obj, stack, replacementStack, replacer, key) { - stack = stack || []; - replacementStack = replacementStack || []; - - if (replacer) { - obj = replacer(key, obj); - } - - var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - - for (i = 0; i < stack.length; i += 1) { - if (stack[i] === obj) { - return replacementStack[i]; - } - } - - var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - - if ('[object Array]' === objectPrototypeToString.call(obj)) { - stack.push(obj); - canonicalizedObj = new Array(obj.length); - replacementStack.push(canonicalizedObj); - for (i = 0; i < obj.length; i += 1) { - canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); - } - stack.pop(); - replacementStack.pop(); - return canonicalizedObj; - } - - if (obj && obj.toJSON) { - obj = obj.toJSON(); - } - - if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) { - stack.push(obj); - canonicalizedObj = {}; - replacementStack.push(canonicalizedObj); - var sortedKeys = [], - _key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - for (_key in obj) { - /* istanbul ignore else */ - if (obj.hasOwnProperty(_key)) { - sortedKeys.push(_key); - } - } - sortedKeys.sort(); - for (i = 0; i < sortedKeys.length; i += 1) { - _key = sortedKeys[i]; - canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); - } - stack.pop(); - replacementStack.pop(); - } else { - canonicalizedObj = obj; - } - return canonicalizedObj; - } - - - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports.arrayDiff = undefined; - exports. /*istanbul ignore end*/diffArrays = diffArrays; - - var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); - arrayDiff.tokenize = function (value) { - return value.slice(); - }; - arrayDiff.join = arrayDiff.removeEmpty = function (value) { - return value; - }; - - function diffArrays(oldArr, newArr, callback) { - return arrayDiff.diff(oldArr, newArr, callback); - } - - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports. /*istanbul ignore end*/applyPatch = applyPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches; - - var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_distanceIterator = __webpack_require__(12) /*istanbul ignore end*/; - - /*istanbul ignore start*/var _distanceIterator2 = _interopRequireDefault(_distanceIterator); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - /*istanbul ignore end*/function applyPatch(source, uniDiff) { - /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - - if (typeof uniDiff === 'string') { - uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); - } - - if (Array.isArray(uniDiff)) { - if (uniDiff.length > 1) { - throw new Error('applyPatch only works with a single input.'); - } - - uniDiff = uniDiff[0]; - } - - // Apply the diff to the input - var lines = source.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], - hunks = uniDiff.hunks, - compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{ - return (/*istanbul ignore end*/line === patchContent - ); - }, - errorCount = 0, - fuzzFactor = options.fuzzFactor || 0, - minLine = 0, - offset = 0, - removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, - addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - - /** - * Checks if the hunk exactly fits on the provided location - */ - function hunkFits(hunk, toPos) { - for (var j = 0; j < hunk.lines.length; j++) { - var line = hunk.lines[j], - operation = line.length > 0 ? line[0] : ' ', - content = line.length > 0 ? line.substr(1) : line; - - if (operation === ' ' || operation === '-') { - // Context sanity check - if (!compareLine(toPos + 1, lines[toPos], operation, content)) { - errorCount++; - - if (errorCount > fuzzFactor) { - return false; - } - } - toPos++; - } - } - - return true; - } - - // Search best fit offsets for each hunk based on the previous ones - for (var i = 0; i < hunks.length; i++) { - var hunk = hunks[i], - maxLine = lines.length - hunk.oldLines, - localOffset = 0, - toPos = offset + hunk.oldStart - 1; - - var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine); - - for (; localOffset !== undefined; localOffset = iterator()) { - if (hunkFits(hunk, toPos + localOffset)) { - hunk.offset = offset += localOffset; - break; - } - } - - if (localOffset === undefined) { - return false; - } - - // Set lower text limit to end of the current hunk, so next ones don't try - // to fit over already patched text - minLine = hunk.offset + hunk.oldStart + hunk.oldLines; - } - - // Apply patch hunks - var diffOffset = 0; - for (var _i = 0; _i < hunks.length; _i++) { - var _hunk = hunks[_i], - _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; - diffOffset += _hunk.newLines - _hunk.oldLines; - - if (_toPos < 0) { - // Creating a new file - _toPos = 0; - } - - for (var j = 0; j < _hunk.lines.length; j++) { - var line = _hunk.lines[j], - operation = line.length > 0 ? line[0] : ' ', - content = line.length > 0 ? line.substr(1) : line, - delimiter = _hunk.linedelimiters[j]; - - if (operation === ' ') { - _toPos++; - } else if (operation === '-') { - lines.splice(_toPos, 1); - delimiters.splice(_toPos, 1); - /* istanbul ignore else */ - } else if (operation === '+') { - lines.splice(_toPos, 0, content); - delimiters.splice(_toPos, 0, delimiter); - _toPos++; - } else if (operation === '\\') { - var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; - if (previousOperation === '+') { - removeEOFNL = true; - } else if (previousOperation === '-') { - addEOFNL = true; - } - } - } - } - - // Handle EOFNL insertion/removal - if (removeEOFNL) { - while (!lines[lines.length - 1]) { - lines.pop(); - delimiters.pop(); - } - } else if (addEOFNL) { - lines.push(''); - delimiters.push('\n'); - } - for (var _k = 0; _k < lines.length - 1; _k++) { - lines[_k] = lines[_k] + delimiters[_k]; - } - return lines.join(''); - } - - // Wrapper that supports multiple file patches via callbacks. - function applyPatches(uniDiff, options) { - if (typeof uniDiff === 'string') { - uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); - } - - var currentIndex = 0; - function processIndex() { - var index = uniDiff[currentIndex++]; - if (!index) { - return options.complete(); - } - - options.loadFile(index, function (err, data) { - if (err) { - return options.complete(err); - } - - var updatedContent = applyPatch(data, index, options); - options.patched(index, updatedContent, function (err) { - if (err) { - return options.complete(err); - } - - processIndex(); - }); - }); - } - processIndex(); - } - - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports. /*istanbul ignore end*/parsePatch = parsePatch; - function parsePatch(uniDiff) { - /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), - delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], - list = [], - i = 0; - - function parseIndex() { - var index = {}; - list.push(index); - - // Parse diff metadata - while (i < diffstr.length) { - var line = diffstr[i]; - - // File header found, end parsing diff metadata - if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { - break; - } - - // Diff index - var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); - if (header) { - index.index = header[1]; - } - - i++; - } - - // Parse file headers if they are defined. Unified diff requires them, but - // there's no technical issues to have an isolated hunk without file header - parseFileHeader(index); - parseFileHeader(index); - - // Parse hunks - index.hunks = []; - - while (i < diffstr.length) { - var _line = diffstr[i]; - - if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { - break; - } else if (/^@@/.test(_line)) { - index.hunks.push(parseHunk()); - } else if (_line && options.strict) { - // Ignore unexpected content unless in strict mode - throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); - } else { - i++; - } - } - } - - // Parses the --- and +++ headers, if none are found, no lines - // are consumed. - function parseFileHeader(index) { - var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); - if (fileHeader) { - var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; - var data = fileHeader[2].split('\t', 2); - var fileName = data[0].replace(/\\\\/g, '\\'); - if (/^".*"$/.test(fileName)) { - fileName = fileName.substr(1, fileName.length - 2); - } - index[keyPrefix + 'FileName'] = fileName; - index[keyPrefix + 'Header'] = (data[1] || '').trim(); - - i++; - } - } - - // Parses a hunk - // This assumes that we are at the start of a hunk. - function parseHunk() { - var chunkHeaderIndex = i, - chunkHeaderLine = diffstr[i++], - chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); - - var hunk = { - oldStart: +chunkHeader[1], - oldLines: +chunkHeader[2] || 1, - newStart: +chunkHeader[3], - newLines: +chunkHeader[4] || 1, - lines: [], - linedelimiters: [] - }; - - var addCount = 0, - removeCount = 0; - for (; i < diffstr.length; i++) { - // Lines starting with '---' could be mistaken for the "remove line" operation - // But they could be the header for the next file. Therefore prune such cases out. - if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { - break; - } - var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0]; - - if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { - hunk.lines.push(diffstr[i]); - hunk.linedelimiters.push(delimiters[i] || '\n'); - - if (operation === '+') { - addCount++; - } else if (operation === '-') { - removeCount++; - } else if (operation === ' ') { - addCount++; - removeCount++; - } - } else { - break; - } - } - - // Handle the empty block count case - if (!addCount && hunk.newLines === 1) { - hunk.newLines = 0; - } - if (!removeCount && hunk.oldLines === 1) { - hunk.oldLines = 0; - } - - // Perform optional sanity checking - if (options.strict) { - if (addCount !== hunk.newLines) { - throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); - } - if (removeCount !== hunk.oldLines) { - throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); - } - } - - return hunk; - } - - while (i < diffstr.length) { - parseIndex(); - } - - return list; - } - - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/"use strict"; - - exports.__esModule = true; - - exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) { - var wantForward = true, - backwardExhausted = false, - forwardExhausted = false, - localOffset = 1; - - return function iterator() { - if (wantForward && !forwardExhausted) { - if (backwardExhausted) { - localOffset++; - } else { - wantForward = false; - } - - // Check if trying to fit beyond text length, and if not, check it fits - // after offset location (or desired location on first iteration) - if (start + localOffset <= maxLine) { - return localOffset; - } - - forwardExhausted = true; - } - - if (!backwardExhausted) { - if (!forwardExhausted) { - wantForward = true; - } - - // Check if trying to fit before text beginning, and if not, check it fits - // before offset location - if (minLine <= start - localOffset) { - return -localOffset++; - } - - backwardExhausted = true; - return iterator(); - } - - // We tried to fit hunk before text beginning and beyond text length, then - // hunk can't fit on the text. Return undefined - }; - }; - - - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports. /*istanbul ignore end*/calcLineCount = calcLineCount; - /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge; - - var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; - - var /*istanbul ignore start*/_array = __webpack_require__(15) /*istanbul ignore end*/; - - /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - - /*istanbul ignore end*/function calcLineCount(hunk) { - /*istanbul ignore start*/var _calcOldNewLineCount = /*istanbul ignore end*/calcOldNewLineCount(hunk.lines), - oldLines = _calcOldNewLineCount.oldLines, - newLines = _calcOldNewLineCount.newLines; - - if (oldLines !== undefined) { - hunk.oldLines = oldLines; - } else { - delete hunk.oldLines; - } - - if (newLines !== undefined) { - hunk.newLines = newLines; - } else { - delete hunk.newLines; - } - } - - function merge(mine, theirs, base) { - mine = loadPatch(mine, base); - theirs = loadPatch(theirs, base); - - var ret = {}; - - // For index we just let it pass through as it doesn't have any necessary meaning. - // Leaving sanity checks on this to the API consumer that may know more about the - // meaning in their own context. - if (mine.index || theirs.index) { - ret.index = mine.index || theirs.index; - } - - if (mine.newFileName || theirs.newFileName) { - if (!fileNameChanged(mine)) { - // No header or no change in ours, use theirs (and ours if theirs does not exist) - ret.oldFileName = theirs.oldFileName || mine.oldFileName; - ret.newFileName = theirs.newFileName || mine.newFileName; - ret.oldHeader = theirs.oldHeader || mine.oldHeader; - ret.newHeader = theirs.newHeader || mine.newHeader; - } else if (!fileNameChanged(theirs)) { - // No header or no change in theirs, use ours - ret.oldFileName = mine.oldFileName; - ret.newFileName = mine.newFileName; - ret.oldHeader = mine.oldHeader; - ret.newHeader = mine.newHeader; - } else { - // Both changed... figure it out - ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); - ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); - ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); - ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); - } - } - - ret.hunks = []; - - var mineIndex = 0, - theirsIndex = 0, - mineOffset = 0, - theirsOffset = 0; - - while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { - var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity }, - theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity }; - - if (hunkBefore(mineCurrent, theirsCurrent)) { - // This patch does not overlap with any of the others, yay. - ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); - mineIndex++; - theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; - } else if (hunkBefore(theirsCurrent, mineCurrent)) { - // This patch does not overlap with any of the others, yay. - ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); - theirsIndex++; - mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; - } else { - // Overlap, merge as best we can - var mergedHunk = { - oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), - oldLines: 0, - newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), - newLines: 0, - lines: [] - }; - mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); - theirsIndex++; - mineIndex++; - - ret.hunks.push(mergedHunk); - } - } - - return ret; - } - - function loadPatch(param, base) { - if (typeof param === 'string') { - if (/^@@/m.test(param) || /^Index:/m.test(param)) { - return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0] - ); - } - - if (!base) { - throw new Error('Must provide a base reference or pass in a patch'); - } - return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param) - ); - } - - return param; - } - - function fileNameChanged(patch) { - return patch.newFileName && patch.newFileName !== patch.oldFileName; - } - - function selectField(index, mine, theirs) { - if (mine === theirs) { - return mine; - } else { - index.conflict = true; - return { mine: mine, theirs: theirs }; - } - } - - function hunkBefore(test, check) { - return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; - } - - function cloneHunk(hunk, offset) { - return { - oldStart: hunk.oldStart, oldLines: hunk.oldLines, - newStart: hunk.newStart + offset, newLines: hunk.newLines, - lines: hunk.lines - }; - } - - function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { - // This will generally result in a conflicted hunk, but there are cases where the context - // is the only overlap where we can successfully merge the content here. - var mine = { offset: mineOffset, lines: mineLines, index: 0 }, - their = { offset: theirOffset, lines: theirLines, index: 0 }; - - // Handle any leading content - insertLeading(hunk, mine, their); - insertLeading(hunk, their, mine); - - // Now in the overlap content. Scan through and select the best changes from each. - while (mine.index < mine.lines.length && their.index < their.lines.length) { - var mineCurrent = mine.lines[mine.index], - theirCurrent = their.lines[their.index]; - - if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) { - // Both modified ... - mutualChange(hunk, mine, their); - } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { - /*istanbul ignore start*/var _hunk$lines; - - /*istanbul ignore end*/ // Mine inserted - /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine))); - } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { - /*istanbul ignore start*/var _hunk$lines2; - - /*istanbul ignore end*/ // Theirs inserted - /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their))); - } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { - // Mine removed or edited - removal(hunk, mine, their); - } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') { - // Their removed or edited - removal(hunk, their, mine, true); - } else if (mineCurrent === theirCurrent) { - // Context identity - hunk.lines.push(mineCurrent); - mine.index++; - their.index++; - } else { - // Context mismatch - conflict(hunk, collectChange(mine), collectChange(their)); - } - } - - // Now push anything that may be remaining - insertTrailing(hunk, mine); - insertTrailing(hunk, their); - - calcLineCount(hunk); - } - - function mutualChange(hunk, mine, their) { - var myChanges = collectChange(mine), - theirChanges = collectChange(their); - - if (allRemoves(myChanges) && allRemoves(theirChanges)) { - // Special case for remove changes that are supersets of one another - if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { - /*istanbul ignore start*/var _hunk$lines3; - - /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); - return; - } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { - /*istanbul ignore start*/var _hunk$lines4; - - /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges)); - return; - } - } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) { - /*istanbul ignore start*/var _hunk$lines5; - - /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); - return; - } - - conflict(hunk, myChanges, theirChanges); - } - - function removal(hunk, mine, their, swap) { - var myChanges = collectChange(mine), - theirChanges = collectContext(their, myChanges); - if (theirChanges.merged) { - /*istanbul ignore start*/var _hunk$lines6; - - /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged)); - } else { - conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); - } - } - - function conflict(hunk, mine, their) { - hunk.conflict = true; - hunk.lines.push({ - conflict: true, - mine: mine, - theirs: their - }); - } - - function insertLeading(hunk, insert, their) { - while (insert.offset < their.offset && insert.index < insert.lines.length) { - var line = insert.lines[insert.index++]; - hunk.lines.push(line); - insert.offset++; - } - } - function insertTrailing(hunk, insert) { - while (insert.index < insert.lines.length) { - var line = insert.lines[insert.index++]; - hunk.lines.push(line); - } - } - - function collectChange(state) { - var ret = [], - operation = state.lines[state.index][0]; - while (state.index < state.lines.length) { - var line = state.lines[state.index]; - - // Group additions that are immediately after subtractions and treat them as one "atomic" modify change. - if (operation === '-' && line[0] === '+') { - operation = '+'; - } - - if (operation === line[0]) { - ret.push(line); - state.index++; - } else { - break; - } - } - - return ret; - } - function collectContext(state, matchChanges) { - var changes = [], - merged = [], - matchIndex = 0, - contextChanges = false, - conflicted = false; - while (matchIndex < matchChanges.length && state.index < state.lines.length) { - var change = state.lines[state.index], - match = matchChanges[matchIndex]; - - // Once we've hit our add, then we are done - if (match[0] === '+') { - break; - } - - contextChanges = contextChanges || change[0] !== ' '; - - merged.push(match); - matchIndex++; - - // Consume any additions in the other block as a conflict to attempt - // to pull in the remaining context after this - if (change[0] === '+') { - conflicted = true; - - while (change[0] === '+') { - changes.push(change); - change = state.lines[++state.index]; - } - } - - if (match.substr(1) === change.substr(1)) { - changes.push(change); - state.index++; - } else { - conflicted = true; - } - } - - if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) { - conflicted = true; - } - - if (conflicted) { - return changes; - } - - while (matchIndex < matchChanges.length) { - merged.push(matchChanges[matchIndex++]); - } - - return { - merged: merged, - changes: changes - }; - } - - function allRemoves(changes) { - return changes.reduce(function (prev, change) { - return prev && change[0] === '-'; - }, true); - } - function skipRemoveSuperset(state, removeChanges, delta) { - for (var i = 0; i < delta; i++) { - var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); - if (state.lines[state.index + i] !== ' ' + changeContent) { - return false; - } - } - - state.index += delta; - return true; - } - - function calcOldNewLineCount(lines) { - var oldLines = 0; - var newLines = 0; - - lines.forEach(function (line) { - if (typeof line !== 'string') { - var myCount = calcOldNewLineCount(line.mine); - var theirCount = calcOldNewLineCount(line.theirs); - - if (oldLines !== undefined) { - if (myCount.oldLines === theirCount.oldLines) { - oldLines += myCount.oldLines; - } else { - oldLines = undefined; - } - } - - if (newLines !== undefined) { - if (myCount.newLines === theirCount.newLines) { - newLines += myCount.newLines; - } else { - newLines = undefined; - } - } - } else { - if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) { - newLines++; - } - if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) { - oldLines++; - } - } - }); - - return { oldLines: oldLines, newLines: newLines }; - } - - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports. /*istanbul ignore end*/structuredPatch = structuredPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch; - /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch; - - var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; - - /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - - /*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - if (!options) { - options = {}; - } - if (typeof options.context === 'undefined') { - options.context = 4; - } - - var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options); - diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier - - function contextLines(lines) { - return lines.map(function (entry) { - return ' ' + entry; - }); - } - - var hunks = []; - var oldRangeStart = 0, - newRangeStart = 0, - curRange = [], - oldLine = 1, - newLine = 1; - - /*istanbul ignore start*/var _loop = function _loop( /*istanbul ignore end*/i) { - var current = diff[i], - lines = current.lines || current.value.replace(/\n$/, '').split('\n'); - current.lines = lines; - - if (current.added || current.removed) { - /*istanbul ignore start*/var _curRange; - - /*istanbul ignore end*/ // If we have previous context, start with that - if (!oldRangeStart) { - var prev = diff[i - 1]; - oldRangeStart = oldLine; - newRangeStart = newLine; - - if (prev) { - curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; - oldRangeStart -= curRange.length; - newRangeStart -= curRange.length; - } - } - - // Output our changes - /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) { - return (current.added ? '+' : '-') + entry; - }))); - - // Track the updated file position - if (current.added) { - newLine += lines.length; - } else { - oldLine += lines.length; - } - } else { - // Identical context lines. Track line changes - if (oldRangeStart) { - // Close out any changes that have been output (or join overlapping) - if (lines.length <= options.context * 2 && i < diff.length - 2) { - /*istanbul ignore start*/var _curRange2; - - /*istanbul ignore end*/ // Overlapping - /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines))); - } else { - /*istanbul ignore start*/var _curRange3; - - /*istanbul ignore end*/ // end the range and output - var contextSize = Math.min(lines.length, options.context); - /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize)))); - - var hunk = { - oldStart: oldRangeStart, - oldLines: oldLine - oldRangeStart + contextSize, - newStart: newRangeStart, - newLines: newLine - newRangeStart + contextSize, - lines: curRange - }; - if (i >= diff.length - 2 && lines.length <= options.context) { - // EOF is inside this hunk - var oldEOFNewline = /\n$/.test(oldStr); - var newEOFNewline = /\n$/.test(newStr); - if (lines.length == 0 && !oldEOFNewline) { - // special case: old has no eol and no trailing context; no-nl can end up before adds - curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); - } else if (!oldEOFNewline || !newEOFNewline) { - curRange.push('\\ No newline at end of file'); - } - } - hunks.push(hunk); - - oldRangeStart = 0; - newRangeStart = 0; - curRange = []; - } - } - oldLine += lines.length; - newLine += lines.length; - } - }; - - for (var i = 0; i < diff.length; i++) { - /*istanbul ignore start*/_loop( /*istanbul ignore end*/i); - } - - return { - oldFileName: oldFileName, newFileName: newFileName, - oldHeader: oldHeader, newHeader: newHeader, - hunks: hunks - }; - } - - function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { - var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); - - var ret = []; - if (oldFileName == newFileName) { - ret.push('Index: ' + oldFileName); - } - ret.push('==================================================================='); - ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); - ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); - - for (var i = 0; i < diff.hunks.length; i++) { - var hunk = diff.hunks[i]; - ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); - ret.push.apply(ret, hunk.lines); - } - - return ret.join('\n') + '\n'; - } - - function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { - return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); - } - - - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/"use strict"; - - exports.__esModule = true; - exports. /*istanbul ignore end*/arrayEqual = arrayEqual; - /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith; - function arrayEqual(a, b) { - if (a.length !== b.length) { - return false; - } - - return arrayStartsWith(a, b); - } - - function arrayStartsWith(array, start) { - if (start.length > array.length) { - return false; - } - - for (var i = 0; i < start.length; i++) { - if (start[i] !== array[i]) { - return false; - } - } - - return true; - } - - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/"use strict"; - - exports.__esModule = true; - exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP; - // See: http://code.google.com/p/google-diff-match-patch/wiki/API - function convertChangesToDMP(changes) { - var ret = [], - change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, - operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; - for (var i = 0; i < changes.length; i++) { - change = changes[i]; - if (change.added) { - operation = 1; - } else if (change.removed) { - operation = -1; - } else { - operation = 0; - } - - ret.push([operation, change.value]); - } - return ret; - } - - - -/***/ }), -/* 17 */ -/***/ (function(module, exports) { - - /*istanbul ignore start*/'use strict'; - - exports.__esModule = true; - exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML; - function convertChangesToXML(changes) { - var ret = []; - for (var i = 0; i < changes.length; i++) { - var change = changes[i]; - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - - ret.push(escapeHTML(change.value)); - - if (change.added) { - ret.push(''); - } else if (change.removed) { - ret.push(''); - } - } - return ret.join(''); - } - - function escapeHTML(s) { - var n = s; - n = n.replace(/&/g, '&'); - n = n.replace(//g, '>'); - n = n.replace(/"/g, '"'); - - return n; - } - - - -/***/ }) -/******/ ]) -}); -; -},{}],46:[function(require,module,exports){ -'use strict'; - -var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; - -module.exports = function (str) { - if (typeof str !== 'string') { - throw new TypeError('Expected a string'); - } - - return str.replace(matchOperatorsRe, '\\$&'); -}; - -},{}],47:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var objectCreate = Object.create || objectCreatePolyfill -var objectKeys = Object.keys || objectKeysPolyfill -var bind = Function.prototype.bind || functionBindPolyfill - -function EventEmitter() { - if (!this._events || !Object.prototype.hasOwnProperty.call(this, '_events')) { - this._events = objectCreate(null); - this._eventsCount = 0; - } - - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -var defaultMaxListeners = 10; - -var hasDefineProperty; -try { - var o = {}; - if (Object.defineProperty) Object.defineProperty(o, 'x', { value: 0 }); - hasDefineProperty = o.x === 0; -} catch (err) { hasDefineProperty = false } -if (hasDefineProperty) { - Object.defineProperty(EventEmitter, 'defaultMaxListeners', { - enumerable: true, - get: function() { - return defaultMaxListeners; - }, - set: function(arg) { - // check whether the input is a positive number (whose value is zero or - // greater and not a NaN). - if (typeof arg !== 'number' || arg < 0 || arg !== arg) - throw new TypeError('"defaultMaxListeners" must be a positive number'); - defaultMaxListeners = arg; - } - }); -} else { - EventEmitter.defaultMaxListeners = defaultMaxListeners; -} - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) { - if (typeof n !== 'number' || n < 0 || isNaN(n)) - throw new TypeError('"n" argument must be a positive number'); - this._maxListeners = n; - return this; -}; - -function $getMaxListeners(that) { - if (that._maxListeners === undefined) - return EventEmitter.defaultMaxListeners; - return that._maxListeners; -} - -EventEmitter.prototype.getMaxListeners = function getMaxListeners() { - return $getMaxListeners(this); -}; - -// These standalone emit* functions are used to optimize calling of event -// handlers for fast cases because emit() itself often has a variable number of -// arguments and can be deoptimized because of that. These functions always have -// the same number of arguments and thus do not get deoptimized, so the code -// inside them can execute faster. -function emitNone(handler, isFn, self) { - if (isFn) - handler.call(self); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self); - } -} -function emitOne(handler, isFn, self, arg1) { - if (isFn) - handler.call(self, arg1); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1); - } -} -function emitTwo(handler, isFn, self, arg1, arg2) { - if (isFn) - handler.call(self, arg1, arg2); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1, arg2); - } -} -function emitThree(handler, isFn, self, arg1, arg2, arg3) { - if (isFn) - handler.call(self, arg1, arg2, arg3); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].call(self, arg1, arg2, arg3); - } -} - -function emitMany(handler, isFn, self, args) { - if (isFn) - handler.apply(self, args); - else { - var len = handler.length; - var listeners = arrayClone(handler, len); - for (var i = 0; i < len; ++i) - listeners[i].apply(self, args); - } -} - -EventEmitter.prototype.emit = function emit(type) { - var er, handler, len, args, i, events; - var doError = (type === 'error'); - - events = this._events; - if (events) - doError = (doError && events.error == null); - else if (!doError) - return false; - - // If there is no 'error' event listener then throw. - if (doError) { - if (arguments.length > 1) - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } else { - // At least give some kind of context to the user - var err = new Error('Unhandled "error" event. (' + er + ')'); - err.context = er; - throw err; - } - return false; - } - - handler = events[type]; - - if (!handler) - return false; - - var isFn = typeof handler === 'function'; - len = arguments.length; - switch (len) { - // fast cases - case 1: - emitNone(handler, isFn, this); - break; - case 2: - emitOne(handler, isFn, this, arguments[1]); - break; - case 3: - emitTwo(handler, isFn, this, arguments[1], arguments[2]); - break; - case 4: - emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]); - break; - // slower - default: - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - emitMany(handler, isFn, this, args); - } - - return true; -}; - -function _addListener(target, type, listener, prepend) { - var m; - var events; - var existing; - - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - - events = target._events; - if (!events) { - events = target._events = objectCreate(null); - target._eventsCount = 0; - } else { - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (events.newListener) { - target.emit('newListener', type, - listener.listener ? listener.listener : listener); - - // Re-assign `events` because a newListener handler could have caused the - // this._events to be assigned to a new object - events = target._events; - } - existing = events[type]; - } - - if (!existing) { - // Optimize the case of one listener. Don't need the extra array object. - existing = events[type] = listener; - ++target._eventsCount; - } else { - if (typeof existing === 'function') { - // Adding the second element, need to change to array. - existing = events[type] = - prepend ? [listener, existing] : [existing, listener]; - } else { - // If we've already got an array, just append. - if (prepend) { - existing.unshift(listener); - } else { - existing.push(listener); - } - } - - // Check for listener leak - if (!existing.warned) { - m = $getMaxListeners(target); - if (m && m > 0 && existing.length > m) { - existing.warned = true; - var w = new Error('Possible EventEmitter memory leak detected. ' + - existing.length + ' "' + String(type) + '" listeners ' + - 'added. Use emitter.setMaxListeners() to ' + - 'increase limit.'); - w.name = 'MaxListenersExceededWarning'; - w.emitter = target; - w.type = type; - w.count = existing.length; - if (typeof console === 'object' && console.warn) { - console.warn('%s: %s', w.name, w.message); - } - } - } - } - - return target; -} - -EventEmitter.prototype.addListener = function addListener(type, listener) { - return _addListener(this, type, listener, false); -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.prependListener = - function prependListener(type, listener) { - return _addListener(this, type, listener, true); - }; - -function onceWrapper() { - if (!this.fired) { - this.target.removeListener(this.type, this.wrapFn); - this.fired = true; - switch (arguments.length) { - case 0: - return this.listener.call(this.target); - case 1: - return this.listener.call(this.target, arguments[0]); - case 2: - return this.listener.call(this.target, arguments[0], arguments[1]); - case 3: - return this.listener.call(this.target, arguments[0], arguments[1], - arguments[2]); - default: - var args = new Array(arguments.length); - for (var i = 0; i < args.length; ++i) - args[i] = arguments[i]; - this.listener.apply(this.target, args); - } - } -} - -function _onceWrap(target, type, listener) { - var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener }; - var wrapped = bind.call(onceWrapper, state); - wrapped.listener = listener; - state.wrapFn = wrapped; - return wrapped; -} - -EventEmitter.prototype.once = function once(type, listener) { - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - this.on(type, _onceWrap(this, type, listener)); - return this; -}; - -EventEmitter.prototype.prependOnceListener = - function prependOnceListener(type, listener) { - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - this.prependListener(type, _onceWrap(this, type, listener)); - return this; - }; - -// Emits a 'removeListener' event if and only if the listener was removed. -EventEmitter.prototype.removeListener = - function removeListener(type, listener) { - var list, events, position, i, originalListener; - - if (typeof listener !== 'function') - throw new TypeError('"listener" argument must be a function'); - - events = this._events; - if (!events) - return this; - - list = events[type]; - if (!list) - return this; - - if (list === listener || list.listener === listener) { - if (--this._eventsCount === 0) - this._events = objectCreate(null); - else { - delete events[type]; - if (events.removeListener) - this.emit('removeListener', type, list.listener || listener); - } - } else if (typeof list !== 'function') { - position = -1; - - for (i = list.length - 1; i >= 0; i--) { - if (list[i] === listener || list[i].listener === listener) { - originalListener = list[i].listener; - position = i; - break; - } - } - - if (position < 0) - return this; - - if (position === 0) - list.shift(); - else - spliceOne(list, position); - - if (list.length === 1) - events[type] = list[0]; - - if (events.removeListener) - this.emit('removeListener', type, originalListener || listener); - } - - return this; - }; - -EventEmitter.prototype.removeAllListeners = - function removeAllListeners(type) { - var listeners, events, i; - - events = this._events; - if (!events) - return this; - - // not listening for removeListener, no need to emit - if (!events.removeListener) { - if (arguments.length === 0) { - this._events = objectCreate(null); - this._eventsCount = 0; - } else if (events[type]) { - if (--this._eventsCount === 0) - this._events = objectCreate(null); - else - delete events[type]; - } - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - var keys = objectKeys(events); - var key; - for (i = 0; i < keys.length; ++i) { - key = keys[i]; - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = objectCreate(null); - this._eventsCount = 0; - return this; - } - - listeners = events[type]; - - if (typeof listeners === 'function') { - this.removeListener(type, listeners); - } else if (listeners) { - // LIFO order - for (i = listeners.length - 1; i >= 0; i--) { - this.removeListener(type, listeners[i]); - } - } - - return this; - }; - -EventEmitter.prototype.listeners = function listeners(type) { - var evlistener; - var ret; - var events = this._events; - - if (!events) - ret = []; - else { - evlistener = events[type]; - if (!evlistener) - ret = []; - else if (typeof evlistener === 'function') - ret = [evlistener.listener || evlistener]; - else - ret = unwrapListeners(evlistener); - } - - return ret; -}; - -EventEmitter.listenerCount = function(emitter, type) { - if (typeof emitter.listenerCount === 'function') { - return emitter.listenerCount(type); - } else { - return listenerCount.call(emitter, type); - } -}; - -EventEmitter.prototype.listenerCount = listenerCount; -function listenerCount(type) { - var events = this._events; - - if (events) { - var evlistener = events[type]; - - if (typeof evlistener === 'function') { - return 1; - } else if (evlistener) { - return evlistener.length; - } - } - - return 0; -} - -EventEmitter.prototype.eventNames = function eventNames() { - return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; -}; - -// About 1.5x faster than the two-arg version of Array#splice(). -function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) - list[i] = list[k]; - list.pop(); -} - -function arrayClone(arr, n) { - var copy = new Array(n); - for (var i = 0; i < n; ++i) - copy[i] = arr[i]; - return copy; -} - -function unwrapListeners(arr) { - var ret = new Array(arr.length); - for (var i = 0; i < ret.length; ++i) { - ret[i] = arr[i].listener || arr[i]; - } - return ret; -} - -function objectCreatePolyfill(proto) { - var F = function() {}; - F.prototype = proto; - return new F; -} -function objectKeysPolyfill(obj) { - var keys = []; - for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) { - keys.push(k); - } - return k; -} -function functionBindPolyfill(context) { - var fn = this; - return function () { - return fn.apply(context, arguments); - }; -} - -},{}],48:[function(require,module,exports){ -(function (global){ -/*! https://mths.be/he v1.1.1 by @mathias | MIT license */ -;(function(root) { - - // Detect free variables `exports`. - var freeExports = typeof exports == 'object' && exports; - - // Detect free variable `module`. - var freeModule = typeof module == 'object' && module && - module.exports == freeExports && module; - - // Detect free variable `global`, from Node.js or Browserified code, - // and use it as `root`. - var freeGlobal = typeof global == 'object' && global; - if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { - root = freeGlobal; - } - - /*--------------------------------------------------------------------------*/ - - // All astral symbols. - var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - // All ASCII symbols (not just printable ASCII) except those listed in the - // first column of the overrides table. - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides - var regexAsciiWhitelist = /[\x01-\x7F]/g; - // All BMP symbols that are not ASCII newlines, printable ASCII symbols, or - // code points listed in the first column of the overrides table on - // https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides. - var regexBmpWhitelist = /[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g; - - var regexEncodeNonAscii = /<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g; - var encodeMap = {'\xAD':'shy','\u200C':'zwnj','\u200D':'zwj','\u200E':'lrm','\u2063':'ic','\u2062':'it','\u2061':'af','\u200F':'rlm','\u200B':'ZeroWidthSpace','\u2060':'NoBreak','\u0311':'DownBreve','\u20DB':'tdot','\u20DC':'DotDot','\t':'Tab','\n':'NewLine','\u2008':'puncsp','\u205F':'MediumSpace','\u2009':'thinsp','\u200A':'hairsp','\u2004':'emsp13','\u2002':'ensp','\u2005':'emsp14','\u2003':'emsp','\u2007':'numsp','\xA0':'nbsp','\u205F\u200A':'ThickSpace','\u203E':'oline','_':'lowbar','\u2010':'dash','\u2013':'ndash','\u2014':'mdash','\u2015':'horbar',',':'comma',';':'semi','\u204F':'bsemi',':':'colon','\u2A74':'Colone','!':'excl','\xA1':'iexcl','?':'quest','\xBF':'iquest','.':'period','\u2025':'nldr','\u2026':'mldr','\xB7':'middot','\'':'apos','\u2018':'lsquo','\u2019':'rsquo','\u201A':'sbquo','\u2039':'lsaquo','\u203A':'rsaquo','"':'quot','\u201C':'ldquo','\u201D':'rdquo','\u201E':'bdquo','\xAB':'laquo','\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\u2308':'lceil','\u2309':'rceil','\u230A':'lfloor','\u230B':'rfloor','\u2985':'lopar','\u2986':'ropar','\u298B':'lbrke','\u298C':'rbrke','\u298D':'lbrkslu','\u298E':'rbrksld','\u298F':'lbrksld','\u2990':'rbrkslu','\u2991':'langd','\u2992':'rangd','\u2993':'lparlt','\u2994':'rpargt','\u2995':'gtlPar','\u2996':'ltrPar','\u27E6':'lobrk','\u27E7':'robrk','\u27E8':'lang','\u27E9':'rang','\u27EA':'Lang','\u27EB':'Rang','\u27EC':'loang','\u27ED':'roang','\u2772':'lbbrk','\u2773':'rbbrk','\u2016':'Vert','\xA7':'sect','\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\u2030':'permil','\u2031':'pertenk','\u2020':'dagger','\u2021':'Dagger','\u2022':'bull','\u2043':'hybull','\u2032':'prime','\u2033':'Prime','\u2034':'tprime','\u2057':'qprime','\u2035':'bprime','\u2041':'caret','`':'grave','\xB4':'acute','\u02DC':'tilde','^':'Hat','\xAF':'macr','\u02D8':'breve','\u02D9':'dot','\xA8':'die','\u02DA':'ring','\u02DD':'dblac','\xB8':'cedil','\u02DB':'ogon','\u02C6':'circ','\u02C7':'caron','\xB0':'deg','\xA9':'copy','\xAE':'reg','\u2117':'copysr','\u2118':'wp','\u211E':'rx','\u2127':'mho','\u2129':'iiota','\u2190':'larr','\u219A':'nlarr','\u2192':'rarr','\u219B':'nrarr','\u2191':'uarr','\u2193':'darr','\u2194':'harr','\u21AE':'nharr','\u2195':'varr','\u2196':'nwarr','\u2197':'nearr','\u2198':'searr','\u2199':'swarr','\u219D':'rarrw','\u219D\u0338':'nrarrw','\u219E':'Larr','\u219F':'Uarr','\u21A0':'Rarr','\u21A1':'Darr','\u21A2':'larrtl','\u21A3':'rarrtl','\u21A4':'mapstoleft','\u21A5':'mapstoup','\u21A6':'map','\u21A7':'mapstodown','\u21A9':'larrhk','\u21AA':'rarrhk','\u21AB':'larrlp','\u21AC':'rarrlp','\u21AD':'harrw','\u21B0':'lsh','\u21B1':'rsh','\u21B2':'ldsh','\u21B3':'rdsh','\u21B5':'crarr','\u21B6':'cularr','\u21B7':'curarr','\u21BA':'olarr','\u21BB':'orarr','\u21BC':'lharu','\u21BD':'lhard','\u21BE':'uharr','\u21BF':'uharl','\u21C0':'rharu','\u21C1':'rhard','\u21C2':'dharr','\u21C3':'dharl','\u21C4':'rlarr','\u21C5':'udarr','\u21C6':'lrarr','\u21C7':'llarr','\u21C8':'uuarr','\u21C9':'rrarr','\u21CA':'ddarr','\u21CB':'lrhar','\u21CC':'rlhar','\u21D0':'lArr','\u21CD':'nlArr','\u21D1':'uArr','\u21D2':'rArr','\u21CF':'nrArr','\u21D3':'dArr','\u21D4':'iff','\u21CE':'nhArr','\u21D5':'vArr','\u21D6':'nwArr','\u21D7':'neArr','\u21D8':'seArr','\u21D9':'swArr','\u21DA':'lAarr','\u21DB':'rAarr','\u21DD':'zigrarr','\u21E4':'larrb','\u21E5':'rarrb','\u21F5':'duarr','\u21FD':'loarr','\u21FE':'roarr','\u21FF':'hoarr','\u2200':'forall','\u2201':'comp','\u2202':'part','\u2202\u0338':'npart','\u2203':'exist','\u2204':'nexist','\u2205':'empty','\u2207':'Del','\u2208':'in','\u2209':'notin','\u220B':'ni','\u220C':'notni','\u03F6':'bepsi','\u220F':'prod','\u2210':'coprod','\u2211':'sum','+':'plus','\xB1':'pm','\xF7':'div','\xD7':'times','<':'lt','\u226E':'nlt','<\u20D2':'nvlt','=':'equals','\u2260':'ne','=\u20E5':'bne','\u2A75':'Equal','>':'gt','\u226F':'ngt','>\u20D2':'nvgt','\xAC':'not','|':'vert','\xA6':'brvbar','\u2212':'minus','\u2213':'mp','\u2214':'plusdo','\u2044':'frasl','\u2216':'setmn','\u2217':'lowast','\u2218':'compfn','\u221A':'Sqrt','\u221D':'prop','\u221E':'infin','\u221F':'angrt','\u2220':'ang','\u2220\u20D2':'nang','\u2221':'angmsd','\u2222':'angsph','\u2223':'mid','\u2224':'nmid','\u2225':'par','\u2226':'npar','\u2227':'and','\u2228':'or','\u2229':'cap','\u2229\uFE00':'caps','\u222A':'cup','\u222A\uFE00':'cups','\u222B':'int','\u222C':'Int','\u222D':'tint','\u2A0C':'qint','\u222E':'oint','\u222F':'Conint','\u2230':'Cconint','\u2231':'cwint','\u2232':'cwconint','\u2233':'awconint','\u2234':'there4','\u2235':'becaus','\u2236':'ratio','\u2237':'Colon','\u2238':'minusd','\u223A':'mDDot','\u223B':'homtht','\u223C':'sim','\u2241':'nsim','\u223C\u20D2':'nvsim','\u223D':'bsim','\u223D\u0331':'race','\u223E':'ac','\u223E\u0333':'acE','\u223F':'acd','\u2240':'wr','\u2242':'esim','\u2242\u0338':'nesim','\u2243':'sime','\u2244':'nsime','\u2245':'cong','\u2247':'ncong','\u2246':'simne','\u2248':'ap','\u2249':'nap','\u224A':'ape','\u224B':'apid','\u224B\u0338':'napid','\u224C':'bcong','\u224D':'CupCap','\u226D':'NotCupCap','\u224D\u20D2':'nvap','\u224E':'bump','\u224E\u0338':'nbump','\u224F':'bumpe','\u224F\u0338':'nbumpe','\u2250':'doteq','\u2250\u0338':'nedot','\u2251':'eDot','\u2252':'efDot','\u2253':'erDot','\u2254':'colone','\u2255':'ecolon','\u2256':'ecir','\u2257':'cire','\u2259':'wedgeq','\u225A':'veeeq','\u225C':'trie','\u225F':'equest','\u2261':'equiv','\u2262':'nequiv','\u2261\u20E5':'bnequiv','\u2264':'le','\u2270':'nle','\u2264\u20D2':'nvle','\u2265':'ge','\u2271':'nge','\u2265\u20D2':'nvge','\u2266':'lE','\u2266\u0338':'nlE','\u2267':'gE','\u2267\u0338':'ngE','\u2268\uFE00':'lvnE','\u2268':'lnE','\u2269':'gnE','\u2269\uFE00':'gvnE','\u226A':'ll','\u226A\u0338':'nLtv','\u226A\u20D2':'nLt','\u226B':'gg','\u226B\u0338':'nGtv','\u226B\u20D2':'nGt','\u226C':'twixt','\u2272':'lsim','\u2274':'nlsim','\u2273':'gsim','\u2275':'ngsim','\u2276':'lg','\u2278':'ntlg','\u2277':'gl','\u2279':'ntgl','\u227A':'pr','\u2280':'npr','\u227B':'sc','\u2281':'nsc','\u227C':'prcue','\u22E0':'nprcue','\u227D':'sccue','\u22E1':'nsccue','\u227E':'prsim','\u227F':'scsim','\u227F\u0338':'NotSucceedsTilde','\u2282':'sub','\u2284':'nsub','\u2282\u20D2':'vnsub','\u2283':'sup','\u2285':'nsup','\u2283\u20D2':'vnsup','\u2286':'sube','\u2288':'nsube','\u2287':'supe','\u2289':'nsupe','\u228A\uFE00':'vsubne','\u228A':'subne','\u228B\uFE00':'vsupne','\u228B':'supne','\u228D':'cupdot','\u228E':'uplus','\u228F':'sqsub','\u228F\u0338':'NotSquareSubset','\u2290':'sqsup','\u2290\u0338':'NotSquareSuperset','\u2291':'sqsube','\u22E2':'nsqsube','\u2292':'sqsupe','\u22E3':'nsqsupe','\u2293':'sqcap','\u2293\uFE00':'sqcaps','\u2294':'sqcup','\u2294\uFE00':'sqcups','\u2295':'oplus','\u2296':'ominus','\u2297':'otimes','\u2298':'osol','\u2299':'odot','\u229A':'ocir','\u229B':'oast','\u229D':'odash','\u229E':'plusb','\u229F':'minusb','\u22A0':'timesb','\u22A1':'sdotb','\u22A2':'vdash','\u22AC':'nvdash','\u22A3':'dashv','\u22A4':'top','\u22A5':'bot','\u22A7':'models','\u22A8':'vDash','\u22AD':'nvDash','\u22A9':'Vdash','\u22AE':'nVdash','\u22AA':'Vvdash','\u22AB':'VDash','\u22AF':'nVDash','\u22B0':'prurel','\u22B2':'vltri','\u22EA':'nltri','\u22B3':'vrtri','\u22EB':'nrtri','\u22B4':'ltrie','\u22EC':'nltrie','\u22B4\u20D2':'nvltrie','\u22B5':'rtrie','\u22ED':'nrtrie','\u22B5\u20D2':'nvrtrie','\u22B6':'origof','\u22B7':'imof','\u22B8':'mumap','\u22B9':'hercon','\u22BA':'intcal','\u22BB':'veebar','\u22BD':'barvee','\u22BE':'angrtvb','\u22BF':'lrtri','\u22C0':'Wedge','\u22C1':'Vee','\u22C2':'xcap','\u22C3':'xcup','\u22C4':'diam','\u22C5':'sdot','\u22C6':'Star','\u22C7':'divonx','\u22C8':'bowtie','\u22C9':'ltimes','\u22CA':'rtimes','\u22CB':'lthree','\u22CC':'rthree','\u22CD':'bsime','\u22CE':'cuvee','\u22CF':'cuwed','\u22D0':'Sub','\u22D1':'Sup','\u22D2':'Cap','\u22D3':'Cup','\u22D4':'fork','\u22D5':'epar','\u22D6':'ltdot','\u22D7':'gtdot','\u22D8':'Ll','\u22D8\u0338':'nLl','\u22D9':'Gg','\u22D9\u0338':'nGg','\u22DA\uFE00':'lesg','\u22DA':'leg','\u22DB':'gel','\u22DB\uFE00':'gesl','\u22DE':'cuepr','\u22DF':'cuesc','\u22E6':'lnsim','\u22E7':'gnsim','\u22E8':'prnsim','\u22E9':'scnsim','\u22EE':'vellip','\u22EF':'ctdot','\u22F0':'utdot','\u22F1':'dtdot','\u22F2':'disin','\u22F3':'isinsv','\u22F4':'isins','\u22F5':'isindot','\u22F5\u0338':'notindot','\u22F6':'notinvc','\u22F7':'notinvb','\u22F9':'isinE','\u22F9\u0338':'notinE','\u22FA':'nisd','\u22FB':'xnis','\u22FC':'nis','\u22FD':'notnivc','\u22FE':'notnivb','\u2305':'barwed','\u2306':'Barwed','\u230C':'drcrop','\u230D':'dlcrop','\u230E':'urcrop','\u230F':'ulcrop','\u2310':'bnot','\u2312':'profline','\u2313':'profsurf','\u2315':'telrec','\u2316':'target','\u231C':'ulcorn','\u231D':'urcorn','\u231E':'dlcorn','\u231F':'drcorn','\u2322':'frown','\u2323':'smile','\u232D':'cylcty','\u232E':'profalar','\u2336':'topbot','\u233D':'ovbar','\u233F':'solbar','\u237C':'angzarr','\u23B0':'lmoust','\u23B1':'rmoust','\u23B4':'tbrk','\u23B5':'bbrk','\u23B6':'bbrktbrk','\u23DC':'OverParenthesis','\u23DD':'UnderParenthesis','\u23DE':'OverBrace','\u23DF':'UnderBrace','\u23E2':'trpezium','\u23E7':'elinters','\u2423':'blank','\u2500':'boxh','\u2502':'boxv','\u250C':'boxdr','\u2510':'boxdl','\u2514':'boxur','\u2518':'boxul','\u251C':'boxvr','\u2524':'boxvl','\u252C':'boxhd','\u2534':'boxhu','\u253C':'boxvh','\u2550':'boxH','\u2551':'boxV','\u2552':'boxdR','\u2553':'boxDr','\u2554':'boxDR','\u2555':'boxdL','\u2556':'boxDl','\u2557':'boxDL','\u2558':'boxuR','\u2559':'boxUr','\u255A':'boxUR','\u255B':'boxuL','\u255C':'boxUl','\u255D':'boxUL','\u255E':'boxvR','\u255F':'boxVr','\u2560':'boxVR','\u2561':'boxvL','\u2562':'boxVl','\u2563':'boxVL','\u2564':'boxHd','\u2565':'boxhD','\u2566':'boxHD','\u2567':'boxHu','\u2568':'boxhU','\u2569':'boxHU','\u256A':'boxvH','\u256B':'boxVh','\u256C':'boxVH','\u2580':'uhblk','\u2584':'lhblk','\u2588':'block','\u2591':'blk14','\u2592':'blk12','\u2593':'blk34','\u25A1':'squ','\u25AA':'squf','\u25AB':'EmptyVerySmallSquare','\u25AD':'rect','\u25AE':'marker','\u25B1':'fltns','\u25B3':'xutri','\u25B4':'utrif','\u25B5':'utri','\u25B8':'rtrif','\u25B9':'rtri','\u25BD':'xdtri','\u25BE':'dtrif','\u25BF':'dtri','\u25C2':'ltrif','\u25C3':'ltri','\u25CA':'loz','\u25CB':'cir','\u25EC':'tridot','\u25EF':'xcirc','\u25F8':'ultri','\u25F9':'urtri','\u25FA':'lltri','\u25FB':'EmptySmallSquare','\u25FC':'FilledSmallSquare','\u2605':'starf','\u2606':'star','\u260E':'phone','\u2640':'female','\u2642':'male','\u2660':'spades','\u2663':'clubs','\u2665':'hearts','\u2666':'diams','\u266A':'sung','\u2713':'check','\u2717':'cross','\u2720':'malt','\u2736':'sext','\u2758':'VerticalSeparator','\u27C8':'bsolhsub','\u27C9':'suphsol','\u27F5':'xlarr','\u27F6':'xrarr','\u27F7':'xharr','\u27F8':'xlArr','\u27F9':'xrArr','\u27FA':'xhArr','\u27FC':'xmap','\u27FF':'dzigrarr','\u2902':'nvlArr','\u2903':'nvrArr','\u2904':'nvHarr','\u2905':'Map','\u290C':'lbarr','\u290D':'rbarr','\u290E':'lBarr','\u290F':'rBarr','\u2910':'RBarr','\u2911':'DDotrahd','\u2912':'UpArrowBar','\u2913':'DownArrowBar','\u2916':'Rarrtl','\u2919':'latail','\u291A':'ratail','\u291B':'lAtail','\u291C':'rAtail','\u291D':'larrfs','\u291E':'rarrfs','\u291F':'larrbfs','\u2920':'rarrbfs','\u2923':'nwarhk','\u2924':'nearhk','\u2925':'searhk','\u2926':'swarhk','\u2927':'nwnear','\u2928':'toea','\u2929':'tosa','\u292A':'swnwar','\u2933':'rarrc','\u2933\u0338':'nrarrc','\u2935':'cudarrr','\u2936':'ldca','\u2937':'rdca','\u2938':'cudarrl','\u2939':'larrpl','\u293C':'curarrm','\u293D':'cularrp','\u2945':'rarrpl','\u2948':'harrcir','\u2949':'Uarrocir','\u294A':'lurdshar','\u294B':'ldrushar','\u294E':'LeftRightVector','\u294F':'RightUpDownVector','\u2950':'DownLeftRightVector','\u2951':'LeftUpDownVector','\u2952':'LeftVectorBar','\u2953':'RightVectorBar','\u2954':'RightUpVectorBar','\u2955':'RightDownVectorBar','\u2956':'DownLeftVectorBar','\u2957':'DownRightVectorBar','\u2958':'LeftUpVectorBar','\u2959':'LeftDownVectorBar','\u295A':'LeftTeeVector','\u295B':'RightTeeVector','\u295C':'RightUpTeeVector','\u295D':'RightDownTeeVector','\u295E':'DownLeftTeeVector','\u295F':'DownRightTeeVector','\u2960':'LeftUpTeeVector','\u2961':'LeftDownTeeVector','\u2962':'lHar','\u2963':'uHar','\u2964':'rHar','\u2965':'dHar','\u2966':'luruhar','\u2967':'ldrdhar','\u2968':'ruluhar','\u2969':'rdldhar','\u296A':'lharul','\u296B':'llhard','\u296C':'rharul','\u296D':'lrhard','\u296E':'udhar','\u296F':'duhar','\u2970':'RoundImplies','\u2971':'erarr','\u2972':'simrarr','\u2973':'larrsim','\u2974':'rarrsim','\u2975':'rarrap','\u2976':'ltlarr','\u2978':'gtrarr','\u2979':'subrarr','\u297B':'suplarr','\u297C':'lfisht','\u297D':'rfisht','\u297E':'ufisht','\u297F':'dfisht','\u299A':'vzigzag','\u299C':'vangrt','\u299D':'angrtvbd','\u29A4':'ange','\u29A5':'range','\u29A6':'dwangle','\u29A7':'uwangle','\u29A8':'angmsdaa','\u29A9':'angmsdab','\u29AA':'angmsdac','\u29AB':'angmsdad','\u29AC':'angmsdae','\u29AD':'angmsdaf','\u29AE':'angmsdag','\u29AF':'angmsdah','\u29B0':'bemptyv','\u29B1':'demptyv','\u29B2':'cemptyv','\u29B3':'raemptyv','\u29B4':'laemptyv','\u29B5':'ohbar','\u29B6':'omid','\u29B7':'opar','\u29B9':'operp','\u29BB':'olcross','\u29BC':'odsold','\u29BE':'olcir','\u29BF':'ofcir','\u29C0':'olt','\u29C1':'ogt','\u29C2':'cirscir','\u29C3':'cirE','\u29C4':'solb','\u29C5':'bsolb','\u29C9':'boxbox','\u29CD':'trisb','\u29CE':'rtriltri','\u29CF':'LeftTriangleBar','\u29CF\u0338':'NotLeftTriangleBar','\u29D0':'RightTriangleBar','\u29D0\u0338':'NotRightTriangleBar','\u29DC':'iinfin','\u29DD':'infintie','\u29DE':'nvinfin','\u29E3':'eparsl','\u29E4':'smeparsl','\u29E5':'eqvparsl','\u29EB':'lozf','\u29F4':'RuleDelayed','\u29F6':'dsol','\u2A00':'xodot','\u2A01':'xoplus','\u2A02':'xotime','\u2A04':'xuplus','\u2A06':'xsqcup','\u2A0D':'fpartint','\u2A10':'cirfnint','\u2A11':'awint','\u2A12':'rppolint','\u2A13':'scpolint','\u2A14':'npolint','\u2A15':'pointint','\u2A16':'quatint','\u2A17':'intlarhk','\u2A22':'pluscir','\u2A23':'plusacir','\u2A24':'simplus','\u2A25':'plusdu','\u2A26':'plussim','\u2A27':'plustwo','\u2A29':'mcomma','\u2A2A':'minusdu','\u2A2D':'loplus','\u2A2E':'roplus','\u2A2F':'Cross','\u2A30':'timesd','\u2A31':'timesbar','\u2A33':'smashp','\u2A34':'lotimes','\u2A35':'rotimes','\u2A36':'otimesas','\u2A37':'Otimes','\u2A38':'odiv','\u2A39':'triplus','\u2A3A':'triminus','\u2A3B':'tritime','\u2A3C':'iprod','\u2A3F':'amalg','\u2A40':'capdot','\u2A42':'ncup','\u2A43':'ncap','\u2A44':'capand','\u2A45':'cupor','\u2A46':'cupcap','\u2A47':'capcup','\u2A48':'cupbrcap','\u2A49':'capbrcup','\u2A4A':'cupcup','\u2A4B':'capcap','\u2A4C':'ccups','\u2A4D':'ccaps','\u2A50':'ccupssm','\u2A53':'And','\u2A54':'Or','\u2A55':'andand','\u2A56':'oror','\u2A57':'orslope','\u2A58':'andslope','\u2A5A':'andv','\u2A5B':'orv','\u2A5C':'andd','\u2A5D':'ord','\u2A5F':'wedbar','\u2A66':'sdote','\u2A6A':'simdot','\u2A6D':'congdot','\u2A6D\u0338':'ncongdot','\u2A6E':'easter','\u2A6F':'apacir','\u2A70':'apE','\u2A70\u0338':'napE','\u2A71':'eplus','\u2A72':'pluse','\u2A73':'Esim','\u2A77':'eDDot','\u2A78':'equivDD','\u2A79':'ltcir','\u2A7A':'gtcir','\u2A7B':'ltquest','\u2A7C':'gtquest','\u2A7D':'les','\u2A7D\u0338':'nles','\u2A7E':'ges','\u2A7E\u0338':'nges','\u2A7F':'lesdot','\u2A80':'gesdot','\u2A81':'lesdoto','\u2A82':'gesdoto','\u2A83':'lesdotor','\u2A84':'gesdotol','\u2A85':'lap','\u2A86':'gap','\u2A87':'lne','\u2A88':'gne','\u2A89':'lnap','\u2A8A':'gnap','\u2A8B':'lEg','\u2A8C':'gEl','\u2A8D':'lsime','\u2A8E':'gsime','\u2A8F':'lsimg','\u2A90':'gsiml','\u2A91':'lgE','\u2A92':'glE','\u2A93':'lesges','\u2A94':'gesles','\u2A95':'els','\u2A96':'egs','\u2A97':'elsdot','\u2A98':'egsdot','\u2A99':'el','\u2A9A':'eg','\u2A9D':'siml','\u2A9E':'simg','\u2A9F':'simlE','\u2AA0':'simgE','\u2AA1':'LessLess','\u2AA1\u0338':'NotNestedLessLess','\u2AA2':'GreaterGreater','\u2AA2\u0338':'NotNestedGreaterGreater','\u2AA4':'glj','\u2AA5':'gla','\u2AA6':'ltcc','\u2AA7':'gtcc','\u2AA8':'lescc','\u2AA9':'gescc','\u2AAA':'smt','\u2AAB':'lat','\u2AAC':'smte','\u2AAC\uFE00':'smtes','\u2AAD':'late','\u2AAD\uFE00':'lates','\u2AAE':'bumpE','\u2AAF':'pre','\u2AAF\u0338':'npre','\u2AB0':'sce','\u2AB0\u0338':'nsce','\u2AB3':'prE','\u2AB4':'scE','\u2AB5':'prnE','\u2AB6':'scnE','\u2AB7':'prap','\u2AB8':'scap','\u2AB9':'prnap','\u2ABA':'scnap','\u2ABB':'Pr','\u2ABC':'Sc','\u2ABD':'subdot','\u2ABE':'supdot','\u2ABF':'subplus','\u2AC0':'supplus','\u2AC1':'submult','\u2AC2':'supmult','\u2AC3':'subedot','\u2AC4':'supedot','\u2AC5':'subE','\u2AC5\u0338':'nsubE','\u2AC6':'supE','\u2AC6\u0338':'nsupE','\u2AC7':'subsim','\u2AC8':'supsim','\u2ACB\uFE00':'vsubnE','\u2ACB':'subnE','\u2ACC\uFE00':'vsupnE','\u2ACC':'supnE','\u2ACF':'csub','\u2AD0':'csup','\u2AD1':'csube','\u2AD2':'csupe','\u2AD3':'subsup','\u2AD4':'supsub','\u2AD5':'subsub','\u2AD6':'supsup','\u2AD7':'suphsub','\u2AD8':'supdsub','\u2AD9':'forkv','\u2ADA':'topfork','\u2ADB':'mlcp','\u2AE4':'Dashv','\u2AE6':'Vdashl','\u2AE7':'Barv','\u2AE8':'vBar','\u2AE9':'vBarv','\u2AEB':'Vbar','\u2AEC':'Not','\u2AED':'bNot','\u2AEE':'rnmid','\u2AEF':'cirmid','\u2AF0':'midcir','\u2AF1':'topcir','\u2AF2':'nhpar','\u2AF3':'parsim','\u2AFD':'parsl','\u2AFD\u20E5':'nparsl','\u266D':'flat','\u266E':'natur','\u266F':'sharp','\xA4':'curren','\xA2':'cent','$':'dollar','\xA3':'pound','\xA5':'yen','\u20AC':'euro','\xB9':'sup1','\xBD':'half','\u2153':'frac13','\xBC':'frac14','\u2155':'frac15','\u2159':'frac16','\u215B':'frac18','\xB2':'sup2','\u2154':'frac23','\u2156':'frac25','\xB3':'sup3','\xBE':'frac34','\u2157':'frac35','\u215C':'frac38','\u2158':'frac45','\u215A':'frac56','\u215D':'frac58','\u215E':'frac78','\uD835\uDCB6':'ascr','\uD835\uDD52':'aopf','\uD835\uDD1E':'afr','\uD835\uDD38':'Aopf','\uD835\uDD04':'Afr','\uD835\uDC9C':'Ascr','\xAA':'ordf','\xE1':'aacute','\xC1':'Aacute','\xE0':'agrave','\xC0':'Agrave','\u0103':'abreve','\u0102':'Abreve','\xE2':'acirc','\xC2':'Acirc','\xE5':'aring','\xC5':'angst','\xE4':'auml','\xC4':'Auml','\xE3':'atilde','\xC3':'Atilde','\u0105':'aogon','\u0104':'Aogon','\u0101':'amacr','\u0100':'Amacr','\xE6':'aelig','\xC6':'AElig','\uD835\uDCB7':'bscr','\uD835\uDD53':'bopf','\uD835\uDD1F':'bfr','\uD835\uDD39':'Bopf','\u212C':'Bscr','\uD835\uDD05':'Bfr','\uD835\uDD20':'cfr','\uD835\uDCB8':'cscr','\uD835\uDD54':'copf','\u212D':'Cfr','\uD835\uDC9E':'Cscr','\u2102':'Copf','\u0107':'cacute','\u0106':'Cacute','\u0109':'ccirc','\u0108':'Ccirc','\u010D':'ccaron','\u010C':'Ccaron','\u010B':'cdot','\u010A':'Cdot','\xE7':'ccedil','\xC7':'Ccedil','\u2105':'incare','\uD835\uDD21':'dfr','\u2146':'dd','\uD835\uDD55':'dopf','\uD835\uDCB9':'dscr','\uD835\uDC9F':'Dscr','\uD835\uDD07':'Dfr','\u2145':'DD','\uD835\uDD3B':'Dopf','\u010F':'dcaron','\u010E':'Dcaron','\u0111':'dstrok','\u0110':'Dstrok','\xF0':'eth','\xD0':'ETH','\u2147':'ee','\u212F':'escr','\uD835\uDD22':'efr','\uD835\uDD56':'eopf','\u2130':'Escr','\uD835\uDD08':'Efr','\uD835\uDD3C':'Eopf','\xE9':'eacute','\xC9':'Eacute','\xE8':'egrave','\xC8':'Egrave','\xEA':'ecirc','\xCA':'Ecirc','\u011B':'ecaron','\u011A':'Ecaron','\xEB':'euml','\xCB':'Euml','\u0117':'edot','\u0116':'Edot','\u0119':'eogon','\u0118':'Eogon','\u0113':'emacr','\u0112':'Emacr','\uD835\uDD23':'ffr','\uD835\uDD57':'fopf','\uD835\uDCBB':'fscr','\uD835\uDD09':'Ffr','\uD835\uDD3D':'Fopf','\u2131':'Fscr','\uFB00':'fflig','\uFB03':'ffilig','\uFB04':'ffllig','\uFB01':'filig','fj':'fjlig','\uFB02':'fllig','\u0192':'fnof','\u210A':'gscr','\uD835\uDD58':'gopf','\uD835\uDD24':'gfr','\uD835\uDCA2':'Gscr','\uD835\uDD3E':'Gopf','\uD835\uDD0A':'Gfr','\u01F5':'gacute','\u011F':'gbreve','\u011E':'Gbreve','\u011D':'gcirc','\u011C':'Gcirc','\u0121':'gdot','\u0120':'Gdot','\u0122':'Gcedil','\uD835\uDD25':'hfr','\u210E':'planckh','\uD835\uDCBD':'hscr','\uD835\uDD59':'hopf','\u210B':'Hscr','\u210C':'Hfr','\u210D':'Hopf','\u0125':'hcirc','\u0124':'Hcirc','\u210F':'hbar','\u0127':'hstrok','\u0126':'Hstrok','\uD835\uDD5A':'iopf','\uD835\uDD26':'ifr','\uD835\uDCBE':'iscr','\u2148':'ii','\uD835\uDD40':'Iopf','\u2110':'Iscr','\u2111':'Im','\xED':'iacute','\xCD':'Iacute','\xEC':'igrave','\xCC':'Igrave','\xEE':'icirc','\xCE':'Icirc','\xEF':'iuml','\xCF':'Iuml','\u0129':'itilde','\u0128':'Itilde','\u0130':'Idot','\u012F':'iogon','\u012E':'Iogon','\u012B':'imacr','\u012A':'Imacr','\u0133':'ijlig','\u0132':'IJlig','\u0131':'imath','\uD835\uDCBF':'jscr','\uD835\uDD5B':'jopf','\uD835\uDD27':'jfr','\uD835\uDCA5':'Jscr','\uD835\uDD0D':'Jfr','\uD835\uDD41':'Jopf','\u0135':'jcirc','\u0134':'Jcirc','\u0237':'jmath','\uD835\uDD5C':'kopf','\uD835\uDCC0':'kscr','\uD835\uDD28':'kfr','\uD835\uDCA6':'Kscr','\uD835\uDD42':'Kopf','\uD835\uDD0E':'Kfr','\u0137':'kcedil','\u0136':'Kcedil','\uD835\uDD29':'lfr','\uD835\uDCC1':'lscr','\u2113':'ell','\uD835\uDD5D':'lopf','\u2112':'Lscr','\uD835\uDD0F':'Lfr','\uD835\uDD43':'Lopf','\u013A':'lacute','\u0139':'Lacute','\u013E':'lcaron','\u013D':'Lcaron','\u013C':'lcedil','\u013B':'Lcedil','\u0142':'lstrok','\u0141':'Lstrok','\u0140':'lmidot','\u013F':'Lmidot','\uD835\uDD2A':'mfr','\uD835\uDD5E':'mopf','\uD835\uDCC2':'mscr','\uD835\uDD10':'Mfr','\uD835\uDD44':'Mopf','\u2133':'Mscr','\uD835\uDD2B':'nfr','\uD835\uDD5F':'nopf','\uD835\uDCC3':'nscr','\u2115':'Nopf','\uD835\uDCA9':'Nscr','\uD835\uDD11':'Nfr','\u0144':'nacute','\u0143':'Nacute','\u0148':'ncaron','\u0147':'Ncaron','\xF1':'ntilde','\xD1':'Ntilde','\u0146':'ncedil','\u0145':'Ncedil','\u2116':'numero','\u014B':'eng','\u014A':'ENG','\uD835\uDD60':'oopf','\uD835\uDD2C':'ofr','\u2134':'oscr','\uD835\uDCAA':'Oscr','\uD835\uDD12':'Ofr','\uD835\uDD46':'Oopf','\xBA':'ordm','\xF3':'oacute','\xD3':'Oacute','\xF2':'ograve','\xD2':'Ograve','\xF4':'ocirc','\xD4':'Ocirc','\xF6':'ouml','\xD6':'Ouml','\u0151':'odblac','\u0150':'Odblac','\xF5':'otilde','\xD5':'Otilde','\xF8':'oslash','\xD8':'Oslash','\u014D':'omacr','\u014C':'Omacr','\u0153':'oelig','\u0152':'OElig','\uD835\uDD2D':'pfr','\uD835\uDCC5':'pscr','\uD835\uDD61':'popf','\u2119':'Popf','\uD835\uDD13':'Pfr','\uD835\uDCAB':'Pscr','\uD835\uDD62':'qopf','\uD835\uDD2E':'qfr','\uD835\uDCC6':'qscr','\uD835\uDCAC':'Qscr','\uD835\uDD14':'Qfr','\u211A':'Qopf','\u0138':'kgreen','\uD835\uDD2F':'rfr','\uD835\uDD63':'ropf','\uD835\uDCC7':'rscr','\u211B':'Rscr','\u211C':'Re','\u211D':'Ropf','\u0155':'racute','\u0154':'Racute','\u0159':'rcaron','\u0158':'Rcaron','\u0157':'rcedil','\u0156':'Rcedil','\uD835\uDD64':'sopf','\uD835\uDCC8':'sscr','\uD835\uDD30':'sfr','\uD835\uDD4A':'Sopf','\uD835\uDD16':'Sfr','\uD835\uDCAE':'Sscr','\u24C8':'oS','\u015B':'sacute','\u015A':'Sacute','\u015D':'scirc','\u015C':'Scirc','\u0161':'scaron','\u0160':'Scaron','\u015F':'scedil','\u015E':'Scedil','\xDF':'szlig','\uD835\uDD31':'tfr','\uD835\uDCC9':'tscr','\uD835\uDD65':'topf','\uD835\uDCAF':'Tscr','\uD835\uDD17':'Tfr','\uD835\uDD4B':'Topf','\u0165':'tcaron','\u0164':'Tcaron','\u0163':'tcedil','\u0162':'Tcedil','\u2122':'trade','\u0167':'tstrok','\u0166':'Tstrok','\uD835\uDCCA':'uscr','\uD835\uDD66':'uopf','\uD835\uDD32':'ufr','\uD835\uDD4C':'Uopf','\uD835\uDD18':'Ufr','\uD835\uDCB0':'Uscr','\xFA':'uacute','\xDA':'Uacute','\xF9':'ugrave','\xD9':'Ugrave','\u016D':'ubreve','\u016C':'Ubreve','\xFB':'ucirc','\xDB':'Ucirc','\u016F':'uring','\u016E':'Uring','\xFC':'uuml','\xDC':'Uuml','\u0171':'udblac','\u0170':'Udblac','\u0169':'utilde','\u0168':'Utilde','\u0173':'uogon','\u0172':'Uogon','\u016B':'umacr','\u016A':'Umacr','\uD835\uDD33':'vfr','\uD835\uDD67':'vopf','\uD835\uDCCB':'vscr','\uD835\uDD19':'Vfr','\uD835\uDD4D':'Vopf','\uD835\uDCB1':'Vscr','\uD835\uDD68':'wopf','\uD835\uDCCC':'wscr','\uD835\uDD34':'wfr','\uD835\uDCB2':'Wscr','\uD835\uDD4E':'Wopf','\uD835\uDD1A':'Wfr','\u0175':'wcirc','\u0174':'Wcirc','\uD835\uDD35':'xfr','\uD835\uDCCD':'xscr','\uD835\uDD69':'xopf','\uD835\uDD4F':'Xopf','\uD835\uDD1B':'Xfr','\uD835\uDCB3':'Xscr','\uD835\uDD36':'yfr','\uD835\uDCCE':'yscr','\uD835\uDD6A':'yopf','\uD835\uDCB4':'Yscr','\uD835\uDD1C':'Yfr','\uD835\uDD50':'Yopf','\xFD':'yacute','\xDD':'Yacute','\u0177':'ycirc','\u0176':'Ycirc','\xFF':'yuml','\u0178':'Yuml','\uD835\uDCCF':'zscr','\uD835\uDD37':'zfr','\uD835\uDD6B':'zopf','\u2128':'Zfr','\u2124':'Zopf','\uD835\uDCB5':'Zscr','\u017A':'zacute','\u0179':'Zacute','\u017E':'zcaron','\u017D':'Zcaron','\u017C':'zdot','\u017B':'Zdot','\u01B5':'imped','\xFE':'thorn','\xDE':'THORN','\u0149':'napos','\u03B1':'alpha','\u0391':'Alpha','\u03B2':'beta','\u0392':'Beta','\u03B3':'gamma','\u0393':'Gamma','\u03B4':'delta','\u0394':'Delta','\u03B5':'epsi','\u03F5':'epsiv','\u0395':'Epsilon','\u03DD':'gammad','\u03DC':'Gammad','\u03B6':'zeta','\u0396':'Zeta','\u03B7':'eta','\u0397':'Eta','\u03B8':'theta','\u03D1':'thetav','\u0398':'Theta','\u03B9':'iota','\u0399':'Iota','\u03BA':'kappa','\u03F0':'kappav','\u039A':'Kappa','\u03BB':'lambda','\u039B':'Lambda','\u03BC':'mu','\xB5':'micro','\u039C':'Mu','\u03BD':'nu','\u039D':'Nu','\u03BE':'xi','\u039E':'Xi','\u03BF':'omicron','\u039F':'Omicron','\u03C0':'pi','\u03D6':'piv','\u03A0':'Pi','\u03C1':'rho','\u03F1':'rhov','\u03A1':'Rho','\u03C3':'sigma','\u03A3':'Sigma','\u03C2':'sigmaf','\u03C4':'tau','\u03A4':'Tau','\u03C5':'upsi','\u03A5':'Upsilon','\u03D2':'Upsi','\u03C6':'phi','\u03D5':'phiv','\u03A6':'Phi','\u03C7':'chi','\u03A7':'Chi','\u03C8':'psi','\u03A8':'Psi','\u03C9':'omega','\u03A9':'ohm','\u0430':'acy','\u0410':'Acy','\u0431':'bcy','\u0411':'Bcy','\u0432':'vcy','\u0412':'Vcy','\u0433':'gcy','\u0413':'Gcy','\u0453':'gjcy','\u0403':'GJcy','\u0434':'dcy','\u0414':'Dcy','\u0452':'djcy','\u0402':'DJcy','\u0435':'iecy','\u0415':'IEcy','\u0451':'iocy','\u0401':'IOcy','\u0454':'jukcy','\u0404':'Jukcy','\u0436':'zhcy','\u0416':'ZHcy','\u0437':'zcy','\u0417':'Zcy','\u0455':'dscy','\u0405':'DScy','\u0438':'icy','\u0418':'Icy','\u0456':'iukcy','\u0406':'Iukcy','\u0457':'yicy','\u0407':'YIcy','\u0439':'jcy','\u0419':'Jcy','\u0458':'jsercy','\u0408':'Jsercy','\u043A':'kcy','\u041A':'Kcy','\u045C':'kjcy','\u040C':'KJcy','\u043B':'lcy','\u041B':'Lcy','\u0459':'ljcy','\u0409':'LJcy','\u043C':'mcy','\u041C':'Mcy','\u043D':'ncy','\u041D':'Ncy','\u045A':'njcy','\u040A':'NJcy','\u043E':'ocy','\u041E':'Ocy','\u043F':'pcy','\u041F':'Pcy','\u0440':'rcy','\u0420':'Rcy','\u0441':'scy','\u0421':'Scy','\u0442':'tcy','\u0422':'Tcy','\u045B':'tshcy','\u040B':'TSHcy','\u0443':'ucy','\u0423':'Ucy','\u045E':'ubrcy','\u040E':'Ubrcy','\u0444':'fcy','\u0424':'Fcy','\u0445':'khcy','\u0425':'KHcy','\u0446':'tscy','\u0426':'TScy','\u0447':'chcy','\u0427':'CHcy','\u045F':'dzcy','\u040F':'DZcy','\u0448':'shcy','\u0428':'SHcy','\u0449':'shchcy','\u0429':'SHCHcy','\u044A':'hardcy','\u042A':'HARDcy','\u044B':'ycy','\u042B':'Ycy','\u044C':'softcy','\u042C':'SOFTcy','\u044D':'ecy','\u042D':'Ecy','\u044E':'yucy','\u042E':'YUcy','\u044F':'yacy','\u042F':'YAcy','\u2135':'aleph','\u2136':'beth','\u2137':'gimel','\u2138':'daleth'}; - - var regexEscape = /["&'<>`]/g; - var escapeMap = { - '"': '"', - '&': '&', - '\'': ''', - '<': '<', - // See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the - // following is not strictly necessary unless it’s part of a tag or an - // unquoted attribute value. We’re only escaping it to support those - // situations, and for XML support. - '>': '>', - // In Internet Explorer ≤ 8, the backtick character can be used - // to break out of (un)quoted attribute values or HTML comments. - // See http://html5sec.org/#102, http://html5sec.org/#108, and - // http://html5sec.org/#133. - '`': '`' - }; - - var regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/; - var regexInvalidRawCodePoint = /[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; - var regexDecode = /&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)([=a-zA-Z0-9])?/g; - var decodeMap = {'aacute':'\xE1','Aacute':'\xC1','abreve':'\u0103','Abreve':'\u0102','ac':'\u223E','acd':'\u223F','acE':'\u223E\u0333','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','acy':'\u0430','Acy':'\u0410','aelig':'\xE6','AElig':'\xC6','af':'\u2061','afr':'\uD835\uDD1E','Afr':'\uD835\uDD04','agrave':'\xE0','Agrave':'\xC0','alefsym':'\u2135','aleph':'\u2135','alpha':'\u03B1','Alpha':'\u0391','amacr':'\u0101','Amacr':'\u0100','amalg':'\u2A3F','amp':'&','AMP':'&','and':'\u2227','And':'\u2A53','andand':'\u2A55','andd':'\u2A5C','andslope':'\u2A58','andv':'\u2A5A','ang':'\u2220','ange':'\u29A4','angle':'\u2220','angmsd':'\u2221','angmsdaa':'\u29A8','angmsdab':'\u29A9','angmsdac':'\u29AA','angmsdad':'\u29AB','angmsdae':'\u29AC','angmsdaf':'\u29AD','angmsdag':'\u29AE','angmsdah':'\u29AF','angrt':'\u221F','angrtvb':'\u22BE','angrtvbd':'\u299D','angsph':'\u2222','angst':'\xC5','angzarr':'\u237C','aogon':'\u0105','Aogon':'\u0104','aopf':'\uD835\uDD52','Aopf':'\uD835\uDD38','ap':'\u2248','apacir':'\u2A6F','ape':'\u224A','apE':'\u2A70','apid':'\u224B','apos':'\'','ApplyFunction':'\u2061','approx':'\u2248','approxeq':'\u224A','aring':'\xE5','Aring':'\xC5','ascr':'\uD835\uDCB6','Ascr':'\uD835\uDC9C','Assign':'\u2254','ast':'*','asymp':'\u2248','asympeq':'\u224D','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','awconint':'\u2233','awint':'\u2A11','backcong':'\u224C','backepsilon':'\u03F6','backprime':'\u2035','backsim':'\u223D','backsimeq':'\u22CD','Backslash':'\u2216','Barv':'\u2AE7','barvee':'\u22BD','barwed':'\u2305','Barwed':'\u2306','barwedge':'\u2305','bbrk':'\u23B5','bbrktbrk':'\u23B6','bcong':'\u224C','bcy':'\u0431','Bcy':'\u0411','bdquo':'\u201E','becaus':'\u2235','because':'\u2235','Because':'\u2235','bemptyv':'\u29B0','bepsi':'\u03F6','bernou':'\u212C','Bernoullis':'\u212C','beta':'\u03B2','Beta':'\u0392','beth':'\u2136','between':'\u226C','bfr':'\uD835\uDD1F','Bfr':'\uD835\uDD05','bigcap':'\u22C2','bigcirc':'\u25EF','bigcup':'\u22C3','bigodot':'\u2A00','bigoplus':'\u2A01','bigotimes':'\u2A02','bigsqcup':'\u2A06','bigstar':'\u2605','bigtriangledown':'\u25BD','bigtriangleup':'\u25B3','biguplus':'\u2A04','bigvee':'\u22C1','bigwedge':'\u22C0','bkarow':'\u290D','blacklozenge':'\u29EB','blacksquare':'\u25AA','blacktriangle':'\u25B4','blacktriangledown':'\u25BE','blacktriangleleft':'\u25C2','blacktriangleright':'\u25B8','blank':'\u2423','blk12':'\u2592','blk14':'\u2591','blk34':'\u2593','block':'\u2588','bne':'=\u20E5','bnequiv':'\u2261\u20E5','bnot':'\u2310','bNot':'\u2AED','bopf':'\uD835\uDD53','Bopf':'\uD835\uDD39','bot':'\u22A5','bottom':'\u22A5','bowtie':'\u22C8','boxbox':'\u29C9','boxdl':'\u2510','boxdL':'\u2555','boxDl':'\u2556','boxDL':'\u2557','boxdr':'\u250C','boxdR':'\u2552','boxDr':'\u2553','boxDR':'\u2554','boxh':'\u2500','boxH':'\u2550','boxhd':'\u252C','boxhD':'\u2565','boxHd':'\u2564','boxHD':'\u2566','boxhu':'\u2534','boxhU':'\u2568','boxHu':'\u2567','boxHU':'\u2569','boxminus':'\u229F','boxplus':'\u229E','boxtimes':'\u22A0','boxul':'\u2518','boxuL':'\u255B','boxUl':'\u255C','boxUL':'\u255D','boxur':'\u2514','boxuR':'\u2558','boxUr':'\u2559','boxUR':'\u255A','boxv':'\u2502','boxV':'\u2551','boxvh':'\u253C','boxvH':'\u256A','boxVh':'\u256B','boxVH':'\u256C','boxvl':'\u2524','boxvL':'\u2561','boxVl':'\u2562','boxVL':'\u2563','boxvr':'\u251C','boxvR':'\u255E','boxVr':'\u255F','boxVR':'\u2560','bprime':'\u2035','breve':'\u02D8','Breve':'\u02D8','brvbar':'\xA6','bscr':'\uD835\uDCB7','Bscr':'\u212C','bsemi':'\u204F','bsim':'\u223D','bsime':'\u22CD','bsol':'\\','bsolb':'\u29C5','bsolhsub':'\u27C8','bull':'\u2022','bullet':'\u2022','bump':'\u224E','bumpe':'\u224F','bumpE':'\u2AAE','bumpeq':'\u224F','Bumpeq':'\u224E','cacute':'\u0107','Cacute':'\u0106','cap':'\u2229','Cap':'\u22D2','capand':'\u2A44','capbrcup':'\u2A49','capcap':'\u2A4B','capcup':'\u2A47','capdot':'\u2A40','CapitalDifferentialD':'\u2145','caps':'\u2229\uFE00','caret':'\u2041','caron':'\u02C7','Cayleys':'\u212D','ccaps':'\u2A4D','ccaron':'\u010D','Ccaron':'\u010C','ccedil':'\xE7','Ccedil':'\xC7','ccirc':'\u0109','Ccirc':'\u0108','Cconint':'\u2230','ccups':'\u2A4C','ccupssm':'\u2A50','cdot':'\u010B','Cdot':'\u010A','cedil':'\xB8','Cedilla':'\xB8','cemptyv':'\u29B2','cent':'\xA2','centerdot':'\xB7','CenterDot':'\xB7','cfr':'\uD835\uDD20','Cfr':'\u212D','chcy':'\u0447','CHcy':'\u0427','check':'\u2713','checkmark':'\u2713','chi':'\u03C7','Chi':'\u03A7','cir':'\u25CB','circ':'\u02C6','circeq':'\u2257','circlearrowleft':'\u21BA','circlearrowright':'\u21BB','circledast':'\u229B','circledcirc':'\u229A','circleddash':'\u229D','CircleDot':'\u2299','circledR':'\xAE','circledS':'\u24C8','CircleMinus':'\u2296','CirclePlus':'\u2295','CircleTimes':'\u2297','cire':'\u2257','cirE':'\u29C3','cirfnint':'\u2A10','cirmid':'\u2AEF','cirscir':'\u29C2','ClockwiseContourIntegral':'\u2232','CloseCurlyDoubleQuote':'\u201D','CloseCurlyQuote':'\u2019','clubs':'\u2663','clubsuit':'\u2663','colon':':','Colon':'\u2237','colone':'\u2254','Colone':'\u2A74','coloneq':'\u2254','comma':',','commat':'@','comp':'\u2201','compfn':'\u2218','complement':'\u2201','complexes':'\u2102','cong':'\u2245','congdot':'\u2A6D','Congruent':'\u2261','conint':'\u222E','Conint':'\u222F','ContourIntegral':'\u222E','copf':'\uD835\uDD54','Copf':'\u2102','coprod':'\u2210','Coproduct':'\u2210','copy':'\xA9','COPY':'\xA9','copysr':'\u2117','CounterClockwiseContourIntegral':'\u2233','crarr':'\u21B5','cross':'\u2717','Cross':'\u2A2F','cscr':'\uD835\uDCB8','Cscr':'\uD835\uDC9E','csub':'\u2ACF','csube':'\u2AD1','csup':'\u2AD0','csupe':'\u2AD2','ctdot':'\u22EF','cudarrl':'\u2938','cudarrr':'\u2935','cuepr':'\u22DE','cuesc':'\u22DF','cularr':'\u21B6','cularrp':'\u293D','cup':'\u222A','Cup':'\u22D3','cupbrcap':'\u2A48','cupcap':'\u2A46','CupCap':'\u224D','cupcup':'\u2A4A','cupdot':'\u228D','cupor':'\u2A45','cups':'\u222A\uFE00','curarr':'\u21B7','curarrm':'\u293C','curlyeqprec':'\u22DE','curlyeqsucc':'\u22DF','curlyvee':'\u22CE','curlywedge':'\u22CF','curren':'\xA4','curvearrowleft':'\u21B6','curvearrowright':'\u21B7','cuvee':'\u22CE','cuwed':'\u22CF','cwconint':'\u2232','cwint':'\u2231','cylcty':'\u232D','dagger':'\u2020','Dagger':'\u2021','daleth':'\u2138','darr':'\u2193','dArr':'\u21D3','Darr':'\u21A1','dash':'\u2010','dashv':'\u22A3','Dashv':'\u2AE4','dbkarow':'\u290F','dblac':'\u02DD','dcaron':'\u010F','Dcaron':'\u010E','dcy':'\u0434','Dcy':'\u0414','dd':'\u2146','DD':'\u2145','ddagger':'\u2021','ddarr':'\u21CA','DDotrahd':'\u2911','ddotseq':'\u2A77','deg':'\xB0','Del':'\u2207','delta':'\u03B4','Delta':'\u0394','demptyv':'\u29B1','dfisht':'\u297F','dfr':'\uD835\uDD21','Dfr':'\uD835\uDD07','dHar':'\u2965','dharl':'\u21C3','dharr':'\u21C2','DiacriticalAcute':'\xB4','DiacriticalDot':'\u02D9','DiacriticalDoubleAcute':'\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\u02DC','diam':'\u22C4','diamond':'\u22C4','Diamond':'\u22C4','diamondsuit':'\u2666','diams':'\u2666','die':'\xA8','DifferentialD':'\u2146','digamma':'\u03DD','disin':'\u22F2','div':'\xF7','divide':'\xF7','divideontimes':'\u22C7','divonx':'\u22C7','djcy':'\u0452','DJcy':'\u0402','dlcorn':'\u231E','dlcrop':'\u230D','dollar':'$','dopf':'\uD835\uDD55','Dopf':'\uD835\uDD3B','dot':'\u02D9','Dot':'\xA8','DotDot':'\u20DC','doteq':'\u2250','doteqdot':'\u2251','DotEqual':'\u2250','dotminus':'\u2238','dotplus':'\u2214','dotsquare':'\u22A1','doublebarwedge':'\u2306','DoubleContourIntegral':'\u222F','DoubleDot':'\xA8','DoubleDownArrow':'\u21D3','DoubleLeftArrow':'\u21D0','DoubleLeftRightArrow':'\u21D4','DoubleLeftTee':'\u2AE4','DoubleLongLeftArrow':'\u27F8','DoubleLongLeftRightArrow':'\u27FA','DoubleLongRightArrow':'\u27F9','DoubleRightArrow':'\u21D2','DoubleRightTee':'\u22A8','DoubleUpArrow':'\u21D1','DoubleUpDownArrow':'\u21D5','DoubleVerticalBar':'\u2225','downarrow':'\u2193','Downarrow':'\u21D3','DownArrow':'\u2193','DownArrowBar':'\u2913','DownArrowUpArrow':'\u21F5','DownBreve':'\u0311','downdownarrows':'\u21CA','downharpoonleft':'\u21C3','downharpoonright':'\u21C2','DownLeftRightVector':'\u2950','DownLeftTeeVector':'\u295E','DownLeftVector':'\u21BD','DownLeftVectorBar':'\u2956','DownRightTeeVector':'\u295F','DownRightVector':'\u21C1','DownRightVectorBar':'\u2957','DownTee':'\u22A4','DownTeeArrow':'\u21A7','drbkarow':'\u2910','drcorn':'\u231F','drcrop':'\u230C','dscr':'\uD835\uDCB9','Dscr':'\uD835\uDC9F','dscy':'\u0455','DScy':'\u0405','dsol':'\u29F6','dstrok':'\u0111','Dstrok':'\u0110','dtdot':'\u22F1','dtri':'\u25BF','dtrif':'\u25BE','duarr':'\u21F5','duhar':'\u296F','dwangle':'\u29A6','dzcy':'\u045F','DZcy':'\u040F','dzigrarr':'\u27FF','eacute':'\xE9','Eacute':'\xC9','easter':'\u2A6E','ecaron':'\u011B','Ecaron':'\u011A','ecir':'\u2256','ecirc':'\xEA','Ecirc':'\xCA','ecolon':'\u2255','ecy':'\u044D','Ecy':'\u042D','eDDot':'\u2A77','edot':'\u0117','eDot':'\u2251','Edot':'\u0116','ee':'\u2147','efDot':'\u2252','efr':'\uD835\uDD22','Efr':'\uD835\uDD08','eg':'\u2A9A','egrave':'\xE8','Egrave':'\xC8','egs':'\u2A96','egsdot':'\u2A98','el':'\u2A99','Element':'\u2208','elinters':'\u23E7','ell':'\u2113','els':'\u2A95','elsdot':'\u2A97','emacr':'\u0113','Emacr':'\u0112','empty':'\u2205','emptyset':'\u2205','EmptySmallSquare':'\u25FB','emptyv':'\u2205','EmptyVerySmallSquare':'\u25AB','emsp':'\u2003','emsp13':'\u2004','emsp14':'\u2005','eng':'\u014B','ENG':'\u014A','ensp':'\u2002','eogon':'\u0119','Eogon':'\u0118','eopf':'\uD835\uDD56','Eopf':'\uD835\uDD3C','epar':'\u22D5','eparsl':'\u29E3','eplus':'\u2A71','epsi':'\u03B5','epsilon':'\u03B5','Epsilon':'\u0395','epsiv':'\u03F5','eqcirc':'\u2256','eqcolon':'\u2255','eqsim':'\u2242','eqslantgtr':'\u2A96','eqslantless':'\u2A95','Equal':'\u2A75','equals':'=','EqualTilde':'\u2242','equest':'\u225F','Equilibrium':'\u21CC','equiv':'\u2261','equivDD':'\u2A78','eqvparsl':'\u29E5','erarr':'\u2971','erDot':'\u2253','escr':'\u212F','Escr':'\u2130','esdot':'\u2250','esim':'\u2242','Esim':'\u2A73','eta':'\u03B7','Eta':'\u0397','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','euro':'\u20AC','excl':'!','exist':'\u2203','Exists':'\u2203','expectation':'\u2130','exponentiale':'\u2147','ExponentialE':'\u2147','fallingdotseq':'\u2252','fcy':'\u0444','Fcy':'\u0424','female':'\u2640','ffilig':'\uFB03','fflig':'\uFB00','ffllig':'\uFB04','ffr':'\uD835\uDD23','Ffr':'\uD835\uDD09','filig':'\uFB01','FilledSmallSquare':'\u25FC','FilledVerySmallSquare':'\u25AA','fjlig':'fj','flat':'\u266D','fllig':'\uFB02','fltns':'\u25B1','fnof':'\u0192','fopf':'\uD835\uDD57','Fopf':'\uD835\uDD3D','forall':'\u2200','ForAll':'\u2200','fork':'\u22D4','forkv':'\u2AD9','Fouriertrf':'\u2131','fpartint':'\u2A0D','frac12':'\xBD','frac13':'\u2153','frac14':'\xBC','frac15':'\u2155','frac16':'\u2159','frac18':'\u215B','frac23':'\u2154','frac25':'\u2156','frac34':'\xBE','frac35':'\u2157','frac38':'\u215C','frac45':'\u2158','frac56':'\u215A','frac58':'\u215D','frac78':'\u215E','frasl':'\u2044','frown':'\u2322','fscr':'\uD835\uDCBB','Fscr':'\u2131','gacute':'\u01F5','gamma':'\u03B3','Gamma':'\u0393','gammad':'\u03DD','Gammad':'\u03DC','gap':'\u2A86','gbreve':'\u011F','Gbreve':'\u011E','Gcedil':'\u0122','gcirc':'\u011D','Gcirc':'\u011C','gcy':'\u0433','Gcy':'\u0413','gdot':'\u0121','Gdot':'\u0120','ge':'\u2265','gE':'\u2267','gel':'\u22DB','gEl':'\u2A8C','geq':'\u2265','geqq':'\u2267','geqslant':'\u2A7E','ges':'\u2A7E','gescc':'\u2AA9','gesdot':'\u2A80','gesdoto':'\u2A82','gesdotol':'\u2A84','gesl':'\u22DB\uFE00','gesles':'\u2A94','gfr':'\uD835\uDD24','Gfr':'\uD835\uDD0A','gg':'\u226B','Gg':'\u22D9','ggg':'\u22D9','gimel':'\u2137','gjcy':'\u0453','GJcy':'\u0403','gl':'\u2277','gla':'\u2AA5','glE':'\u2A92','glj':'\u2AA4','gnap':'\u2A8A','gnapprox':'\u2A8A','gne':'\u2A88','gnE':'\u2269','gneq':'\u2A88','gneqq':'\u2269','gnsim':'\u22E7','gopf':'\uD835\uDD58','Gopf':'\uD835\uDD3E','grave':'`','GreaterEqual':'\u2265','GreaterEqualLess':'\u22DB','GreaterFullEqual':'\u2267','GreaterGreater':'\u2AA2','GreaterLess':'\u2277','GreaterSlantEqual':'\u2A7E','GreaterTilde':'\u2273','gscr':'\u210A','Gscr':'\uD835\uDCA2','gsim':'\u2273','gsime':'\u2A8E','gsiml':'\u2A90','gt':'>','Gt':'\u226B','GT':'>','gtcc':'\u2AA7','gtcir':'\u2A7A','gtdot':'\u22D7','gtlPar':'\u2995','gtquest':'\u2A7C','gtrapprox':'\u2A86','gtrarr':'\u2978','gtrdot':'\u22D7','gtreqless':'\u22DB','gtreqqless':'\u2A8C','gtrless':'\u2277','gtrsim':'\u2273','gvertneqq':'\u2269\uFE00','gvnE':'\u2269\uFE00','Hacek':'\u02C7','hairsp':'\u200A','half':'\xBD','hamilt':'\u210B','hardcy':'\u044A','HARDcy':'\u042A','harr':'\u2194','hArr':'\u21D4','harrcir':'\u2948','harrw':'\u21AD','Hat':'^','hbar':'\u210F','hcirc':'\u0125','Hcirc':'\u0124','hearts':'\u2665','heartsuit':'\u2665','hellip':'\u2026','hercon':'\u22B9','hfr':'\uD835\uDD25','Hfr':'\u210C','HilbertSpace':'\u210B','hksearow':'\u2925','hkswarow':'\u2926','hoarr':'\u21FF','homtht':'\u223B','hookleftarrow':'\u21A9','hookrightarrow':'\u21AA','hopf':'\uD835\uDD59','Hopf':'\u210D','horbar':'\u2015','HorizontalLine':'\u2500','hscr':'\uD835\uDCBD','Hscr':'\u210B','hslash':'\u210F','hstrok':'\u0127','Hstrok':'\u0126','HumpDownHump':'\u224E','HumpEqual':'\u224F','hybull':'\u2043','hyphen':'\u2010','iacute':'\xED','Iacute':'\xCD','ic':'\u2063','icirc':'\xEE','Icirc':'\xCE','icy':'\u0438','Icy':'\u0418','Idot':'\u0130','iecy':'\u0435','IEcy':'\u0415','iexcl':'\xA1','iff':'\u21D4','ifr':'\uD835\uDD26','Ifr':'\u2111','igrave':'\xEC','Igrave':'\xCC','ii':'\u2148','iiiint':'\u2A0C','iiint':'\u222D','iinfin':'\u29DC','iiota':'\u2129','ijlig':'\u0133','IJlig':'\u0132','Im':'\u2111','imacr':'\u012B','Imacr':'\u012A','image':'\u2111','ImaginaryI':'\u2148','imagline':'\u2110','imagpart':'\u2111','imath':'\u0131','imof':'\u22B7','imped':'\u01B5','Implies':'\u21D2','in':'\u2208','incare':'\u2105','infin':'\u221E','infintie':'\u29DD','inodot':'\u0131','int':'\u222B','Int':'\u222C','intcal':'\u22BA','integers':'\u2124','Integral':'\u222B','intercal':'\u22BA','Intersection':'\u22C2','intlarhk':'\u2A17','intprod':'\u2A3C','InvisibleComma':'\u2063','InvisibleTimes':'\u2062','iocy':'\u0451','IOcy':'\u0401','iogon':'\u012F','Iogon':'\u012E','iopf':'\uD835\uDD5A','Iopf':'\uD835\uDD40','iota':'\u03B9','Iota':'\u0399','iprod':'\u2A3C','iquest':'\xBF','iscr':'\uD835\uDCBE','Iscr':'\u2110','isin':'\u2208','isindot':'\u22F5','isinE':'\u22F9','isins':'\u22F4','isinsv':'\u22F3','isinv':'\u2208','it':'\u2062','itilde':'\u0129','Itilde':'\u0128','iukcy':'\u0456','Iukcy':'\u0406','iuml':'\xEF','Iuml':'\xCF','jcirc':'\u0135','Jcirc':'\u0134','jcy':'\u0439','Jcy':'\u0419','jfr':'\uD835\uDD27','Jfr':'\uD835\uDD0D','jmath':'\u0237','jopf':'\uD835\uDD5B','Jopf':'\uD835\uDD41','jscr':'\uD835\uDCBF','Jscr':'\uD835\uDCA5','jsercy':'\u0458','Jsercy':'\u0408','jukcy':'\u0454','Jukcy':'\u0404','kappa':'\u03BA','Kappa':'\u039A','kappav':'\u03F0','kcedil':'\u0137','Kcedil':'\u0136','kcy':'\u043A','Kcy':'\u041A','kfr':'\uD835\uDD28','Kfr':'\uD835\uDD0E','kgreen':'\u0138','khcy':'\u0445','KHcy':'\u0425','kjcy':'\u045C','KJcy':'\u040C','kopf':'\uD835\uDD5C','Kopf':'\uD835\uDD42','kscr':'\uD835\uDCC0','Kscr':'\uD835\uDCA6','lAarr':'\u21DA','lacute':'\u013A','Lacute':'\u0139','laemptyv':'\u29B4','lagran':'\u2112','lambda':'\u03BB','Lambda':'\u039B','lang':'\u27E8','Lang':'\u27EA','langd':'\u2991','langle':'\u27E8','lap':'\u2A85','Laplacetrf':'\u2112','laquo':'\xAB','larr':'\u2190','lArr':'\u21D0','Larr':'\u219E','larrb':'\u21E4','larrbfs':'\u291F','larrfs':'\u291D','larrhk':'\u21A9','larrlp':'\u21AB','larrpl':'\u2939','larrsim':'\u2973','larrtl':'\u21A2','lat':'\u2AAB','latail':'\u2919','lAtail':'\u291B','late':'\u2AAD','lates':'\u2AAD\uFE00','lbarr':'\u290C','lBarr':'\u290E','lbbrk':'\u2772','lbrace':'{','lbrack':'[','lbrke':'\u298B','lbrksld':'\u298F','lbrkslu':'\u298D','lcaron':'\u013E','Lcaron':'\u013D','lcedil':'\u013C','Lcedil':'\u013B','lceil':'\u2308','lcub':'{','lcy':'\u043B','Lcy':'\u041B','ldca':'\u2936','ldquo':'\u201C','ldquor':'\u201E','ldrdhar':'\u2967','ldrushar':'\u294B','ldsh':'\u21B2','le':'\u2264','lE':'\u2266','LeftAngleBracket':'\u27E8','leftarrow':'\u2190','Leftarrow':'\u21D0','LeftArrow':'\u2190','LeftArrowBar':'\u21E4','LeftArrowRightArrow':'\u21C6','leftarrowtail':'\u21A2','LeftCeiling':'\u2308','LeftDoubleBracket':'\u27E6','LeftDownTeeVector':'\u2961','LeftDownVector':'\u21C3','LeftDownVectorBar':'\u2959','LeftFloor':'\u230A','leftharpoondown':'\u21BD','leftharpoonup':'\u21BC','leftleftarrows':'\u21C7','leftrightarrow':'\u2194','Leftrightarrow':'\u21D4','LeftRightArrow':'\u2194','leftrightarrows':'\u21C6','leftrightharpoons':'\u21CB','leftrightsquigarrow':'\u21AD','LeftRightVector':'\u294E','LeftTee':'\u22A3','LeftTeeArrow':'\u21A4','LeftTeeVector':'\u295A','leftthreetimes':'\u22CB','LeftTriangle':'\u22B2','LeftTriangleBar':'\u29CF','LeftTriangleEqual':'\u22B4','LeftUpDownVector':'\u2951','LeftUpTeeVector':'\u2960','LeftUpVector':'\u21BF','LeftUpVectorBar':'\u2958','LeftVector':'\u21BC','LeftVectorBar':'\u2952','leg':'\u22DA','lEg':'\u2A8B','leq':'\u2264','leqq':'\u2266','leqslant':'\u2A7D','les':'\u2A7D','lescc':'\u2AA8','lesdot':'\u2A7F','lesdoto':'\u2A81','lesdotor':'\u2A83','lesg':'\u22DA\uFE00','lesges':'\u2A93','lessapprox':'\u2A85','lessdot':'\u22D6','lesseqgtr':'\u22DA','lesseqqgtr':'\u2A8B','LessEqualGreater':'\u22DA','LessFullEqual':'\u2266','LessGreater':'\u2276','lessgtr':'\u2276','LessLess':'\u2AA1','lesssim':'\u2272','LessSlantEqual':'\u2A7D','LessTilde':'\u2272','lfisht':'\u297C','lfloor':'\u230A','lfr':'\uD835\uDD29','Lfr':'\uD835\uDD0F','lg':'\u2276','lgE':'\u2A91','lHar':'\u2962','lhard':'\u21BD','lharu':'\u21BC','lharul':'\u296A','lhblk':'\u2584','ljcy':'\u0459','LJcy':'\u0409','ll':'\u226A','Ll':'\u22D8','llarr':'\u21C7','llcorner':'\u231E','Lleftarrow':'\u21DA','llhard':'\u296B','lltri':'\u25FA','lmidot':'\u0140','Lmidot':'\u013F','lmoust':'\u23B0','lmoustache':'\u23B0','lnap':'\u2A89','lnapprox':'\u2A89','lne':'\u2A87','lnE':'\u2268','lneq':'\u2A87','lneqq':'\u2268','lnsim':'\u22E6','loang':'\u27EC','loarr':'\u21FD','lobrk':'\u27E6','longleftarrow':'\u27F5','Longleftarrow':'\u27F8','LongLeftArrow':'\u27F5','longleftrightarrow':'\u27F7','Longleftrightarrow':'\u27FA','LongLeftRightArrow':'\u27F7','longmapsto':'\u27FC','longrightarrow':'\u27F6','Longrightarrow':'\u27F9','LongRightArrow':'\u27F6','looparrowleft':'\u21AB','looparrowright':'\u21AC','lopar':'\u2985','lopf':'\uD835\uDD5D','Lopf':'\uD835\uDD43','loplus':'\u2A2D','lotimes':'\u2A34','lowast':'\u2217','lowbar':'_','LowerLeftArrow':'\u2199','LowerRightArrow':'\u2198','loz':'\u25CA','lozenge':'\u25CA','lozf':'\u29EB','lpar':'(','lparlt':'\u2993','lrarr':'\u21C6','lrcorner':'\u231F','lrhar':'\u21CB','lrhard':'\u296D','lrm':'\u200E','lrtri':'\u22BF','lsaquo':'\u2039','lscr':'\uD835\uDCC1','Lscr':'\u2112','lsh':'\u21B0','Lsh':'\u21B0','lsim':'\u2272','lsime':'\u2A8D','lsimg':'\u2A8F','lsqb':'[','lsquo':'\u2018','lsquor':'\u201A','lstrok':'\u0142','Lstrok':'\u0141','lt':'<','Lt':'\u226A','LT':'<','ltcc':'\u2AA6','ltcir':'\u2A79','ltdot':'\u22D6','lthree':'\u22CB','ltimes':'\u22C9','ltlarr':'\u2976','ltquest':'\u2A7B','ltri':'\u25C3','ltrie':'\u22B4','ltrif':'\u25C2','ltrPar':'\u2996','lurdshar':'\u294A','luruhar':'\u2966','lvertneqq':'\u2268\uFE00','lvnE':'\u2268\uFE00','macr':'\xAF','male':'\u2642','malt':'\u2720','maltese':'\u2720','map':'\u21A6','Map':'\u2905','mapsto':'\u21A6','mapstodown':'\u21A7','mapstoleft':'\u21A4','mapstoup':'\u21A5','marker':'\u25AE','mcomma':'\u2A29','mcy':'\u043C','Mcy':'\u041C','mdash':'\u2014','mDDot':'\u223A','measuredangle':'\u2221','MediumSpace':'\u205F','Mellintrf':'\u2133','mfr':'\uD835\uDD2A','Mfr':'\uD835\uDD10','mho':'\u2127','micro':'\xB5','mid':'\u2223','midast':'*','midcir':'\u2AF0','middot':'\xB7','minus':'\u2212','minusb':'\u229F','minusd':'\u2238','minusdu':'\u2A2A','MinusPlus':'\u2213','mlcp':'\u2ADB','mldr':'\u2026','mnplus':'\u2213','models':'\u22A7','mopf':'\uD835\uDD5E','Mopf':'\uD835\uDD44','mp':'\u2213','mscr':'\uD835\uDCC2','Mscr':'\u2133','mstpos':'\u223E','mu':'\u03BC','Mu':'\u039C','multimap':'\u22B8','mumap':'\u22B8','nabla':'\u2207','nacute':'\u0144','Nacute':'\u0143','nang':'\u2220\u20D2','nap':'\u2249','napE':'\u2A70\u0338','napid':'\u224B\u0338','napos':'\u0149','napprox':'\u2249','natur':'\u266E','natural':'\u266E','naturals':'\u2115','nbsp':'\xA0','nbump':'\u224E\u0338','nbumpe':'\u224F\u0338','ncap':'\u2A43','ncaron':'\u0148','Ncaron':'\u0147','ncedil':'\u0146','Ncedil':'\u0145','ncong':'\u2247','ncongdot':'\u2A6D\u0338','ncup':'\u2A42','ncy':'\u043D','Ncy':'\u041D','ndash':'\u2013','ne':'\u2260','nearhk':'\u2924','nearr':'\u2197','neArr':'\u21D7','nearrow':'\u2197','nedot':'\u2250\u0338','NegativeMediumSpace':'\u200B','NegativeThickSpace':'\u200B','NegativeThinSpace':'\u200B','NegativeVeryThinSpace':'\u200B','nequiv':'\u2262','nesear':'\u2928','nesim':'\u2242\u0338','NestedGreaterGreater':'\u226B','NestedLessLess':'\u226A','NewLine':'\n','nexist':'\u2204','nexists':'\u2204','nfr':'\uD835\uDD2B','Nfr':'\uD835\uDD11','nge':'\u2271','ngE':'\u2267\u0338','ngeq':'\u2271','ngeqq':'\u2267\u0338','ngeqslant':'\u2A7E\u0338','nges':'\u2A7E\u0338','nGg':'\u22D9\u0338','ngsim':'\u2275','ngt':'\u226F','nGt':'\u226B\u20D2','ngtr':'\u226F','nGtv':'\u226B\u0338','nharr':'\u21AE','nhArr':'\u21CE','nhpar':'\u2AF2','ni':'\u220B','nis':'\u22FC','nisd':'\u22FA','niv':'\u220B','njcy':'\u045A','NJcy':'\u040A','nlarr':'\u219A','nlArr':'\u21CD','nldr':'\u2025','nle':'\u2270','nlE':'\u2266\u0338','nleftarrow':'\u219A','nLeftarrow':'\u21CD','nleftrightarrow':'\u21AE','nLeftrightarrow':'\u21CE','nleq':'\u2270','nleqq':'\u2266\u0338','nleqslant':'\u2A7D\u0338','nles':'\u2A7D\u0338','nless':'\u226E','nLl':'\u22D8\u0338','nlsim':'\u2274','nlt':'\u226E','nLt':'\u226A\u20D2','nltri':'\u22EA','nltrie':'\u22EC','nLtv':'\u226A\u0338','nmid':'\u2224','NoBreak':'\u2060','NonBreakingSpace':'\xA0','nopf':'\uD835\uDD5F','Nopf':'\u2115','not':'\xAC','Not':'\u2AEC','NotCongruent':'\u2262','NotCupCap':'\u226D','NotDoubleVerticalBar':'\u2226','NotElement':'\u2209','NotEqual':'\u2260','NotEqualTilde':'\u2242\u0338','NotExists':'\u2204','NotGreater':'\u226F','NotGreaterEqual':'\u2271','NotGreaterFullEqual':'\u2267\u0338','NotGreaterGreater':'\u226B\u0338','NotGreaterLess':'\u2279','NotGreaterSlantEqual':'\u2A7E\u0338','NotGreaterTilde':'\u2275','NotHumpDownHump':'\u224E\u0338','NotHumpEqual':'\u224F\u0338','notin':'\u2209','notindot':'\u22F5\u0338','notinE':'\u22F9\u0338','notinva':'\u2209','notinvb':'\u22F7','notinvc':'\u22F6','NotLeftTriangle':'\u22EA','NotLeftTriangleBar':'\u29CF\u0338','NotLeftTriangleEqual':'\u22EC','NotLess':'\u226E','NotLessEqual':'\u2270','NotLessGreater':'\u2278','NotLessLess':'\u226A\u0338','NotLessSlantEqual':'\u2A7D\u0338','NotLessTilde':'\u2274','NotNestedGreaterGreater':'\u2AA2\u0338','NotNestedLessLess':'\u2AA1\u0338','notni':'\u220C','notniva':'\u220C','notnivb':'\u22FE','notnivc':'\u22FD','NotPrecedes':'\u2280','NotPrecedesEqual':'\u2AAF\u0338','NotPrecedesSlantEqual':'\u22E0','NotReverseElement':'\u220C','NotRightTriangle':'\u22EB','NotRightTriangleBar':'\u29D0\u0338','NotRightTriangleEqual':'\u22ED','NotSquareSubset':'\u228F\u0338','NotSquareSubsetEqual':'\u22E2','NotSquareSuperset':'\u2290\u0338','NotSquareSupersetEqual':'\u22E3','NotSubset':'\u2282\u20D2','NotSubsetEqual':'\u2288','NotSucceeds':'\u2281','NotSucceedsEqual':'\u2AB0\u0338','NotSucceedsSlantEqual':'\u22E1','NotSucceedsTilde':'\u227F\u0338','NotSuperset':'\u2283\u20D2','NotSupersetEqual':'\u2289','NotTilde':'\u2241','NotTildeEqual':'\u2244','NotTildeFullEqual':'\u2247','NotTildeTilde':'\u2249','NotVerticalBar':'\u2224','npar':'\u2226','nparallel':'\u2226','nparsl':'\u2AFD\u20E5','npart':'\u2202\u0338','npolint':'\u2A14','npr':'\u2280','nprcue':'\u22E0','npre':'\u2AAF\u0338','nprec':'\u2280','npreceq':'\u2AAF\u0338','nrarr':'\u219B','nrArr':'\u21CF','nrarrc':'\u2933\u0338','nrarrw':'\u219D\u0338','nrightarrow':'\u219B','nRightarrow':'\u21CF','nrtri':'\u22EB','nrtrie':'\u22ED','nsc':'\u2281','nsccue':'\u22E1','nsce':'\u2AB0\u0338','nscr':'\uD835\uDCC3','Nscr':'\uD835\uDCA9','nshortmid':'\u2224','nshortparallel':'\u2226','nsim':'\u2241','nsime':'\u2244','nsimeq':'\u2244','nsmid':'\u2224','nspar':'\u2226','nsqsube':'\u22E2','nsqsupe':'\u22E3','nsub':'\u2284','nsube':'\u2288','nsubE':'\u2AC5\u0338','nsubset':'\u2282\u20D2','nsubseteq':'\u2288','nsubseteqq':'\u2AC5\u0338','nsucc':'\u2281','nsucceq':'\u2AB0\u0338','nsup':'\u2285','nsupe':'\u2289','nsupE':'\u2AC6\u0338','nsupset':'\u2283\u20D2','nsupseteq':'\u2289','nsupseteqq':'\u2AC6\u0338','ntgl':'\u2279','ntilde':'\xF1','Ntilde':'\xD1','ntlg':'\u2278','ntriangleleft':'\u22EA','ntrianglelefteq':'\u22EC','ntriangleright':'\u22EB','ntrianglerighteq':'\u22ED','nu':'\u03BD','Nu':'\u039D','num':'#','numero':'\u2116','numsp':'\u2007','nvap':'\u224D\u20D2','nvdash':'\u22AC','nvDash':'\u22AD','nVdash':'\u22AE','nVDash':'\u22AF','nvge':'\u2265\u20D2','nvgt':'>\u20D2','nvHarr':'\u2904','nvinfin':'\u29DE','nvlArr':'\u2902','nvle':'\u2264\u20D2','nvlt':'<\u20D2','nvltrie':'\u22B4\u20D2','nvrArr':'\u2903','nvrtrie':'\u22B5\u20D2','nvsim':'\u223C\u20D2','nwarhk':'\u2923','nwarr':'\u2196','nwArr':'\u21D6','nwarrow':'\u2196','nwnear':'\u2927','oacute':'\xF3','Oacute':'\xD3','oast':'\u229B','ocir':'\u229A','ocirc':'\xF4','Ocirc':'\xD4','ocy':'\u043E','Ocy':'\u041E','odash':'\u229D','odblac':'\u0151','Odblac':'\u0150','odiv':'\u2A38','odot':'\u2299','odsold':'\u29BC','oelig':'\u0153','OElig':'\u0152','ofcir':'\u29BF','ofr':'\uD835\uDD2C','Ofr':'\uD835\uDD12','ogon':'\u02DB','ograve':'\xF2','Ograve':'\xD2','ogt':'\u29C1','ohbar':'\u29B5','ohm':'\u03A9','oint':'\u222E','olarr':'\u21BA','olcir':'\u29BE','olcross':'\u29BB','oline':'\u203E','olt':'\u29C0','omacr':'\u014D','Omacr':'\u014C','omega':'\u03C9','Omega':'\u03A9','omicron':'\u03BF','Omicron':'\u039F','omid':'\u29B6','ominus':'\u2296','oopf':'\uD835\uDD60','Oopf':'\uD835\uDD46','opar':'\u29B7','OpenCurlyDoubleQuote':'\u201C','OpenCurlyQuote':'\u2018','operp':'\u29B9','oplus':'\u2295','or':'\u2228','Or':'\u2A54','orarr':'\u21BB','ord':'\u2A5D','order':'\u2134','orderof':'\u2134','ordf':'\xAA','ordm':'\xBA','origof':'\u22B6','oror':'\u2A56','orslope':'\u2A57','orv':'\u2A5B','oS':'\u24C8','oscr':'\u2134','Oscr':'\uD835\uDCAA','oslash':'\xF8','Oslash':'\xD8','osol':'\u2298','otilde':'\xF5','Otilde':'\xD5','otimes':'\u2297','Otimes':'\u2A37','otimesas':'\u2A36','ouml':'\xF6','Ouml':'\xD6','ovbar':'\u233D','OverBar':'\u203E','OverBrace':'\u23DE','OverBracket':'\u23B4','OverParenthesis':'\u23DC','par':'\u2225','para':'\xB6','parallel':'\u2225','parsim':'\u2AF3','parsl':'\u2AFD','part':'\u2202','PartialD':'\u2202','pcy':'\u043F','Pcy':'\u041F','percnt':'%','period':'.','permil':'\u2030','perp':'\u22A5','pertenk':'\u2031','pfr':'\uD835\uDD2D','Pfr':'\uD835\uDD13','phi':'\u03C6','Phi':'\u03A6','phiv':'\u03D5','phmmat':'\u2133','phone':'\u260E','pi':'\u03C0','Pi':'\u03A0','pitchfork':'\u22D4','piv':'\u03D6','planck':'\u210F','planckh':'\u210E','plankv':'\u210F','plus':'+','plusacir':'\u2A23','plusb':'\u229E','pluscir':'\u2A22','plusdo':'\u2214','plusdu':'\u2A25','pluse':'\u2A72','PlusMinus':'\xB1','plusmn':'\xB1','plussim':'\u2A26','plustwo':'\u2A27','pm':'\xB1','Poincareplane':'\u210C','pointint':'\u2A15','popf':'\uD835\uDD61','Popf':'\u2119','pound':'\xA3','pr':'\u227A','Pr':'\u2ABB','prap':'\u2AB7','prcue':'\u227C','pre':'\u2AAF','prE':'\u2AB3','prec':'\u227A','precapprox':'\u2AB7','preccurlyeq':'\u227C','Precedes':'\u227A','PrecedesEqual':'\u2AAF','PrecedesSlantEqual':'\u227C','PrecedesTilde':'\u227E','preceq':'\u2AAF','precnapprox':'\u2AB9','precneqq':'\u2AB5','precnsim':'\u22E8','precsim':'\u227E','prime':'\u2032','Prime':'\u2033','primes':'\u2119','prnap':'\u2AB9','prnE':'\u2AB5','prnsim':'\u22E8','prod':'\u220F','Product':'\u220F','profalar':'\u232E','profline':'\u2312','profsurf':'\u2313','prop':'\u221D','Proportion':'\u2237','Proportional':'\u221D','propto':'\u221D','prsim':'\u227E','prurel':'\u22B0','pscr':'\uD835\uDCC5','Pscr':'\uD835\uDCAB','psi':'\u03C8','Psi':'\u03A8','puncsp':'\u2008','qfr':'\uD835\uDD2E','Qfr':'\uD835\uDD14','qint':'\u2A0C','qopf':'\uD835\uDD62','Qopf':'\u211A','qprime':'\u2057','qscr':'\uD835\uDCC6','Qscr':'\uD835\uDCAC','quaternions':'\u210D','quatint':'\u2A16','quest':'?','questeq':'\u225F','quot':'"','QUOT':'"','rAarr':'\u21DB','race':'\u223D\u0331','racute':'\u0155','Racute':'\u0154','radic':'\u221A','raemptyv':'\u29B3','rang':'\u27E9','Rang':'\u27EB','rangd':'\u2992','range':'\u29A5','rangle':'\u27E9','raquo':'\xBB','rarr':'\u2192','rArr':'\u21D2','Rarr':'\u21A0','rarrap':'\u2975','rarrb':'\u21E5','rarrbfs':'\u2920','rarrc':'\u2933','rarrfs':'\u291E','rarrhk':'\u21AA','rarrlp':'\u21AC','rarrpl':'\u2945','rarrsim':'\u2974','rarrtl':'\u21A3','Rarrtl':'\u2916','rarrw':'\u219D','ratail':'\u291A','rAtail':'\u291C','ratio':'\u2236','rationals':'\u211A','rbarr':'\u290D','rBarr':'\u290F','RBarr':'\u2910','rbbrk':'\u2773','rbrace':'}','rbrack':']','rbrke':'\u298C','rbrksld':'\u298E','rbrkslu':'\u2990','rcaron':'\u0159','Rcaron':'\u0158','rcedil':'\u0157','Rcedil':'\u0156','rceil':'\u2309','rcub':'}','rcy':'\u0440','Rcy':'\u0420','rdca':'\u2937','rdldhar':'\u2969','rdquo':'\u201D','rdquor':'\u201D','rdsh':'\u21B3','Re':'\u211C','real':'\u211C','realine':'\u211B','realpart':'\u211C','reals':'\u211D','rect':'\u25AD','reg':'\xAE','REG':'\xAE','ReverseElement':'\u220B','ReverseEquilibrium':'\u21CB','ReverseUpEquilibrium':'\u296F','rfisht':'\u297D','rfloor':'\u230B','rfr':'\uD835\uDD2F','Rfr':'\u211C','rHar':'\u2964','rhard':'\u21C1','rharu':'\u21C0','rharul':'\u296C','rho':'\u03C1','Rho':'\u03A1','rhov':'\u03F1','RightAngleBracket':'\u27E9','rightarrow':'\u2192','Rightarrow':'\u21D2','RightArrow':'\u2192','RightArrowBar':'\u21E5','RightArrowLeftArrow':'\u21C4','rightarrowtail':'\u21A3','RightCeiling':'\u2309','RightDoubleBracket':'\u27E7','RightDownTeeVector':'\u295D','RightDownVector':'\u21C2','RightDownVectorBar':'\u2955','RightFloor':'\u230B','rightharpoondown':'\u21C1','rightharpoonup':'\u21C0','rightleftarrows':'\u21C4','rightleftharpoons':'\u21CC','rightrightarrows':'\u21C9','rightsquigarrow':'\u219D','RightTee':'\u22A2','RightTeeArrow':'\u21A6','RightTeeVector':'\u295B','rightthreetimes':'\u22CC','RightTriangle':'\u22B3','RightTriangleBar':'\u29D0','RightTriangleEqual':'\u22B5','RightUpDownVector':'\u294F','RightUpTeeVector':'\u295C','RightUpVector':'\u21BE','RightUpVectorBar':'\u2954','RightVector':'\u21C0','RightVectorBar':'\u2953','ring':'\u02DA','risingdotseq':'\u2253','rlarr':'\u21C4','rlhar':'\u21CC','rlm':'\u200F','rmoust':'\u23B1','rmoustache':'\u23B1','rnmid':'\u2AEE','roang':'\u27ED','roarr':'\u21FE','robrk':'\u27E7','ropar':'\u2986','ropf':'\uD835\uDD63','Ropf':'\u211D','roplus':'\u2A2E','rotimes':'\u2A35','RoundImplies':'\u2970','rpar':')','rpargt':'\u2994','rppolint':'\u2A12','rrarr':'\u21C9','Rrightarrow':'\u21DB','rsaquo':'\u203A','rscr':'\uD835\uDCC7','Rscr':'\u211B','rsh':'\u21B1','Rsh':'\u21B1','rsqb':']','rsquo':'\u2019','rsquor':'\u2019','rthree':'\u22CC','rtimes':'\u22CA','rtri':'\u25B9','rtrie':'\u22B5','rtrif':'\u25B8','rtriltri':'\u29CE','RuleDelayed':'\u29F4','ruluhar':'\u2968','rx':'\u211E','sacute':'\u015B','Sacute':'\u015A','sbquo':'\u201A','sc':'\u227B','Sc':'\u2ABC','scap':'\u2AB8','scaron':'\u0161','Scaron':'\u0160','sccue':'\u227D','sce':'\u2AB0','scE':'\u2AB4','scedil':'\u015F','Scedil':'\u015E','scirc':'\u015D','Scirc':'\u015C','scnap':'\u2ABA','scnE':'\u2AB6','scnsim':'\u22E9','scpolint':'\u2A13','scsim':'\u227F','scy':'\u0441','Scy':'\u0421','sdot':'\u22C5','sdotb':'\u22A1','sdote':'\u2A66','searhk':'\u2925','searr':'\u2198','seArr':'\u21D8','searrow':'\u2198','sect':'\xA7','semi':';','seswar':'\u2929','setminus':'\u2216','setmn':'\u2216','sext':'\u2736','sfr':'\uD835\uDD30','Sfr':'\uD835\uDD16','sfrown':'\u2322','sharp':'\u266F','shchcy':'\u0449','SHCHcy':'\u0429','shcy':'\u0448','SHcy':'\u0428','ShortDownArrow':'\u2193','ShortLeftArrow':'\u2190','shortmid':'\u2223','shortparallel':'\u2225','ShortRightArrow':'\u2192','ShortUpArrow':'\u2191','shy':'\xAD','sigma':'\u03C3','Sigma':'\u03A3','sigmaf':'\u03C2','sigmav':'\u03C2','sim':'\u223C','simdot':'\u2A6A','sime':'\u2243','simeq':'\u2243','simg':'\u2A9E','simgE':'\u2AA0','siml':'\u2A9D','simlE':'\u2A9F','simne':'\u2246','simplus':'\u2A24','simrarr':'\u2972','slarr':'\u2190','SmallCircle':'\u2218','smallsetminus':'\u2216','smashp':'\u2A33','smeparsl':'\u29E4','smid':'\u2223','smile':'\u2323','smt':'\u2AAA','smte':'\u2AAC','smtes':'\u2AAC\uFE00','softcy':'\u044C','SOFTcy':'\u042C','sol':'/','solb':'\u29C4','solbar':'\u233F','sopf':'\uD835\uDD64','Sopf':'\uD835\uDD4A','spades':'\u2660','spadesuit':'\u2660','spar':'\u2225','sqcap':'\u2293','sqcaps':'\u2293\uFE00','sqcup':'\u2294','sqcups':'\u2294\uFE00','Sqrt':'\u221A','sqsub':'\u228F','sqsube':'\u2291','sqsubset':'\u228F','sqsubseteq':'\u2291','sqsup':'\u2290','sqsupe':'\u2292','sqsupset':'\u2290','sqsupseteq':'\u2292','squ':'\u25A1','square':'\u25A1','Square':'\u25A1','SquareIntersection':'\u2293','SquareSubset':'\u228F','SquareSubsetEqual':'\u2291','SquareSuperset':'\u2290','SquareSupersetEqual':'\u2292','SquareUnion':'\u2294','squarf':'\u25AA','squf':'\u25AA','srarr':'\u2192','sscr':'\uD835\uDCC8','Sscr':'\uD835\uDCAE','ssetmn':'\u2216','ssmile':'\u2323','sstarf':'\u22C6','star':'\u2606','Star':'\u22C6','starf':'\u2605','straightepsilon':'\u03F5','straightphi':'\u03D5','strns':'\xAF','sub':'\u2282','Sub':'\u22D0','subdot':'\u2ABD','sube':'\u2286','subE':'\u2AC5','subedot':'\u2AC3','submult':'\u2AC1','subne':'\u228A','subnE':'\u2ACB','subplus':'\u2ABF','subrarr':'\u2979','subset':'\u2282','Subset':'\u22D0','subseteq':'\u2286','subseteqq':'\u2AC5','SubsetEqual':'\u2286','subsetneq':'\u228A','subsetneqq':'\u2ACB','subsim':'\u2AC7','subsub':'\u2AD5','subsup':'\u2AD3','succ':'\u227B','succapprox':'\u2AB8','succcurlyeq':'\u227D','Succeeds':'\u227B','SucceedsEqual':'\u2AB0','SucceedsSlantEqual':'\u227D','SucceedsTilde':'\u227F','succeq':'\u2AB0','succnapprox':'\u2ABA','succneqq':'\u2AB6','succnsim':'\u22E9','succsim':'\u227F','SuchThat':'\u220B','sum':'\u2211','Sum':'\u2211','sung':'\u266A','sup':'\u2283','Sup':'\u22D1','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','supdot':'\u2ABE','supdsub':'\u2AD8','supe':'\u2287','supE':'\u2AC6','supedot':'\u2AC4','Superset':'\u2283','SupersetEqual':'\u2287','suphsol':'\u27C9','suphsub':'\u2AD7','suplarr':'\u297B','supmult':'\u2AC2','supne':'\u228B','supnE':'\u2ACC','supplus':'\u2AC0','supset':'\u2283','Supset':'\u22D1','supseteq':'\u2287','supseteqq':'\u2AC6','supsetneq':'\u228B','supsetneqq':'\u2ACC','supsim':'\u2AC8','supsub':'\u2AD4','supsup':'\u2AD6','swarhk':'\u2926','swarr':'\u2199','swArr':'\u21D9','swarrow':'\u2199','swnwar':'\u292A','szlig':'\xDF','Tab':'\t','target':'\u2316','tau':'\u03C4','Tau':'\u03A4','tbrk':'\u23B4','tcaron':'\u0165','Tcaron':'\u0164','tcedil':'\u0163','Tcedil':'\u0162','tcy':'\u0442','Tcy':'\u0422','tdot':'\u20DB','telrec':'\u2315','tfr':'\uD835\uDD31','Tfr':'\uD835\uDD17','there4':'\u2234','therefore':'\u2234','Therefore':'\u2234','theta':'\u03B8','Theta':'\u0398','thetasym':'\u03D1','thetav':'\u03D1','thickapprox':'\u2248','thicksim':'\u223C','ThickSpace':'\u205F\u200A','thinsp':'\u2009','ThinSpace':'\u2009','thkap':'\u2248','thksim':'\u223C','thorn':'\xFE','THORN':'\xDE','tilde':'\u02DC','Tilde':'\u223C','TildeEqual':'\u2243','TildeFullEqual':'\u2245','TildeTilde':'\u2248','times':'\xD7','timesb':'\u22A0','timesbar':'\u2A31','timesd':'\u2A30','tint':'\u222D','toea':'\u2928','top':'\u22A4','topbot':'\u2336','topcir':'\u2AF1','topf':'\uD835\uDD65','Topf':'\uD835\uDD4B','topfork':'\u2ADA','tosa':'\u2929','tprime':'\u2034','trade':'\u2122','TRADE':'\u2122','triangle':'\u25B5','triangledown':'\u25BF','triangleleft':'\u25C3','trianglelefteq':'\u22B4','triangleq':'\u225C','triangleright':'\u25B9','trianglerighteq':'\u22B5','tridot':'\u25EC','trie':'\u225C','triminus':'\u2A3A','TripleDot':'\u20DB','triplus':'\u2A39','trisb':'\u29CD','tritime':'\u2A3B','trpezium':'\u23E2','tscr':'\uD835\uDCC9','Tscr':'\uD835\uDCAF','tscy':'\u0446','TScy':'\u0426','tshcy':'\u045B','TSHcy':'\u040B','tstrok':'\u0167','Tstrok':'\u0166','twixt':'\u226C','twoheadleftarrow':'\u219E','twoheadrightarrow':'\u21A0','uacute':'\xFA','Uacute':'\xDA','uarr':'\u2191','uArr':'\u21D1','Uarr':'\u219F','Uarrocir':'\u2949','ubrcy':'\u045E','Ubrcy':'\u040E','ubreve':'\u016D','Ubreve':'\u016C','ucirc':'\xFB','Ucirc':'\xDB','ucy':'\u0443','Ucy':'\u0423','udarr':'\u21C5','udblac':'\u0171','Udblac':'\u0170','udhar':'\u296E','ufisht':'\u297E','ufr':'\uD835\uDD32','Ufr':'\uD835\uDD18','ugrave':'\xF9','Ugrave':'\xD9','uHar':'\u2963','uharl':'\u21BF','uharr':'\u21BE','uhblk':'\u2580','ulcorn':'\u231C','ulcorner':'\u231C','ulcrop':'\u230F','ultri':'\u25F8','umacr':'\u016B','Umacr':'\u016A','uml':'\xA8','UnderBar':'_','UnderBrace':'\u23DF','UnderBracket':'\u23B5','UnderParenthesis':'\u23DD','Union':'\u22C3','UnionPlus':'\u228E','uogon':'\u0173','Uogon':'\u0172','uopf':'\uD835\uDD66','Uopf':'\uD835\uDD4C','uparrow':'\u2191','Uparrow':'\u21D1','UpArrow':'\u2191','UpArrowBar':'\u2912','UpArrowDownArrow':'\u21C5','updownarrow':'\u2195','Updownarrow':'\u21D5','UpDownArrow':'\u2195','UpEquilibrium':'\u296E','upharpoonleft':'\u21BF','upharpoonright':'\u21BE','uplus':'\u228E','UpperLeftArrow':'\u2196','UpperRightArrow':'\u2197','upsi':'\u03C5','Upsi':'\u03D2','upsih':'\u03D2','upsilon':'\u03C5','Upsilon':'\u03A5','UpTee':'\u22A5','UpTeeArrow':'\u21A5','upuparrows':'\u21C8','urcorn':'\u231D','urcorner':'\u231D','urcrop':'\u230E','uring':'\u016F','Uring':'\u016E','urtri':'\u25F9','uscr':'\uD835\uDCCA','Uscr':'\uD835\uDCB0','utdot':'\u22F0','utilde':'\u0169','Utilde':'\u0168','utri':'\u25B5','utrif':'\u25B4','uuarr':'\u21C8','uuml':'\xFC','Uuml':'\xDC','uwangle':'\u29A7','vangrt':'\u299C','varepsilon':'\u03F5','varkappa':'\u03F0','varnothing':'\u2205','varphi':'\u03D5','varpi':'\u03D6','varpropto':'\u221D','varr':'\u2195','vArr':'\u21D5','varrho':'\u03F1','varsigma':'\u03C2','varsubsetneq':'\u228A\uFE00','varsubsetneqq':'\u2ACB\uFE00','varsupsetneq':'\u228B\uFE00','varsupsetneqq':'\u2ACC\uFE00','vartheta':'\u03D1','vartriangleleft':'\u22B2','vartriangleright':'\u22B3','vBar':'\u2AE8','Vbar':'\u2AEB','vBarv':'\u2AE9','vcy':'\u0432','Vcy':'\u0412','vdash':'\u22A2','vDash':'\u22A8','Vdash':'\u22A9','VDash':'\u22AB','Vdashl':'\u2AE6','vee':'\u2228','Vee':'\u22C1','veebar':'\u22BB','veeeq':'\u225A','vellip':'\u22EE','verbar':'|','Verbar':'\u2016','vert':'|','Vert':'\u2016','VerticalBar':'\u2223','VerticalLine':'|','VerticalSeparator':'\u2758','VerticalTilde':'\u2240','VeryThinSpace':'\u200A','vfr':'\uD835\uDD33','Vfr':'\uD835\uDD19','vltri':'\u22B2','vnsub':'\u2282\u20D2','vnsup':'\u2283\u20D2','vopf':'\uD835\uDD67','Vopf':'\uD835\uDD4D','vprop':'\u221D','vrtri':'\u22B3','vscr':'\uD835\uDCCB','Vscr':'\uD835\uDCB1','vsubne':'\u228A\uFE00','vsubnE':'\u2ACB\uFE00','vsupne':'\u228B\uFE00','vsupnE':'\u2ACC\uFE00','Vvdash':'\u22AA','vzigzag':'\u299A','wcirc':'\u0175','Wcirc':'\u0174','wedbar':'\u2A5F','wedge':'\u2227','Wedge':'\u22C0','wedgeq':'\u2259','weierp':'\u2118','wfr':'\uD835\uDD34','Wfr':'\uD835\uDD1A','wopf':'\uD835\uDD68','Wopf':'\uD835\uDD4E','wp':'\u2118','wr':'\u2240','wreath':'\u2240','wscr':'\uD835\uDCCC','Wscr':'\uD835\uDCB2','xcap':'\u22C2','xcirc':'\u25EF','xcup':'\u22C3','xdtri':'\u25BD','xfr':'\uD835\uDD35','Xfr':'\uD835\uDD1B','xharr':'\u27F7','xhArr':'\u27FA','xi':'\u03BE','Xi':'\u039E','xlarr':'\u27F5','xlArr':'\u27F8','xmap':'\u27FC','xnis':'\u22FB','xodot':'\u2A00','xopf':'\uD835\uDD69','Xopf':'\uD835\uDD4F','xoplus':'\u2A01','xotime':'\u2A02','xrarr':'\u27F6','xrArr':'\u27F9','xscr':'\uD835\uDCCD','Xscr':'\uD835\uDCB3','xsqcup':'\u2A06','xuplus':'\u2A04','xutri':'\u25B3','xvee':'\u22C1','xwedge':'\u22C0','yacute':'\xFD','Yacute':'\xDD','yacy':'\u044F','YAcy':'\u042F','ycirc':'\u0177','Ycirc':'\u0176','ycy':'\u044B','Ycy':'\u042B','yen':'\xA5','yfr':'\uD835\uDD36','Yfr':'\uD835\uDD1C','yicy':'\u0457','YIcy':'\u0407','yopf':'\uD835\uDD6A','Yopf':'\uD835\uDD50','yscr':'\uD835\uDCCE','Yscr':'\uD835\uDCB4','yucy':'\u044E','YUcy':'\u042E','yuml':'\xFF','Yuml':'\u0178','zacute':'\u017A','Zacute':'\u0179','zcaron':'\u017E','Zcaron':'\u017D','zcy':'\u0437','Zcy':'\u0417','zdot':'\u017C','Zdot':'\u017B','zeetrf':'\u2128','ZeroWidthSpace':'\u200B','zeta':'\u03B6','Zeta':'\u0396','zfr':'\uD835\uDD37','Zfr':'\u2128','zhcy':'\u0436','ZHcy':'\u0416','zigrarr':'\u21DD','zopf':'\uD835\uDD6B','Zopf':'\u2124','zscr':'\uD835\uDCCF','Zscr':'\uD835\uDCB5','zwj':'\u200D','zwnj':'\u200C'}; - var decodeMapLegacy = {'aacute':'\xE1','Aacute':'\xC1','acirc':'\xE2','Acirc':'\xC2','acute':'\xB4','aelig':'\xE6','AElig':'\xC6','agrave':'\xE0','Agrave':'\xC0','amp':'&','AMP':'&','aring':'\xE5','Aring':'\xC5','atilde':'\xE3','Atilde':'\xC3','auml':'\xE4','Auml':'\xC4','brvbar':'\xA6','ccedil':'\xE7','Ccedil':'\xC7','cedil':'\xB8','cent':'\xA2','copy':'\xA9','COPY':'\xA9','curren':'\xA4','deg':'\xB0','divide':'\xF7','eacute':'\xE9','Eacute':'\xC9','ecirc':'\xEA','Ecirc':'\xCA','egrave':'\xE8','Egrave':'\xC8','eth':'\xF0','ETH':'\xD0','euml':'\xEB','Euml':'\xCB','frac12':'\xBD','frac14':'\xBC','frac34':'\xBE','gt':'>','GT':'>','iacute':'\xED','Iacute':'\xCD','icirc':'\xEE','Icirc':'\xCE','iexcl':'\xA1','igrave':'\xEC','Igrave':'\xCC','iquest':'\xBF','iuml':'\xEF','Iuml':'\xCF','laquo':'\xAB','lt':'<','LT':'<','macr':'\xAF','micro':'\xB5','middot':'\xB7','nbsp':'\xA0','not':'\xAC','ntilde':'\xF1','Ntilde':'\xD1','oacute':'\xF3','Oacute':'\xD3','ocirc':'\xF4','Ocirc':'\xD4','ograve':'\xF2','Ograve':'\xD2','ordf':'\xAA','ordm':'\xBA','oslash':'\xF8','Oslash':'\xD8','otilde':'\xF5','Otilde':'\xD5','ouml':'\xF6','Ouml':'\xD6','para':'\xB6','plusmn':'\xB1','pound':'\xA3','quot':'"','QUOT':'"','raquo':'\xBB','reg':'\xAE','REG':'\xAE','sect':'\xA7','shy':'\xAD','sup1':'\xB9','sup2':'\xB2','sup3':'\xB3','szlig':'\xDF','thorn':'\xFE','THORN':'\xDE','times':'\xD7','uacute':'\xFA','Uacute':'\xDA','ucirc':'\xFB','Ucirc':'\xDB','ugrave':'\xF9','Ugrave':'\xD9','uml':'\xA8','uuml':'\xFC','Uuml':'\xDC','yacute':'\xFD','Yacute':'\xDD','yen':'\xA5','yuml':'\xFF'}; - var decodeMapNumeric = {'0':'\uFFFD','128':'\u20AC','130':'\u201A','131':'\u0192','132':'\u201E','133':'\u2026','134':'\u2020','135':'\u2021','136':'\u02C6','137':'\u2030','138':'\u0160','139':'\u2039','140':'\u0152','142':'\u017D','145':'\u2018','146':'\u2019','147':'\u201C','148':'\u201D','149':'\u2022','150':'\u2013','151':'\u2014','152':'\u02DC','153':'\u2122','154':'\u0161','155':'\u203A','156':'\u0153','158':'\u017E','159':'\u0178'}; - var invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]; - - /*--------------------------------------------------------------------------*/ - - var stringFromCharCode = String.fromCharCode; - - var object = {}; - var hasOwnProperty = object.hasOwnProperty; - var has = function(object, propertyName) { - return hasOwnProperty.call(object, propertyName); - }; - - var contains = function(array, value) { - var index = -1; - var length = array.length; - while (++index < length) { - if (array[index] == value) { - return true; - } - } - return false; - }; - - var merge = function(options, defaults) { - if (!options) { - return defaults; - } - var result = {}; - var key; - for (key in defaults) { - // A `hasOwnProperty` check is not needed here, since only recognized - // option names are used anyway. Any others are ignored. - result[key] = has(options, key) ? options[key] : defaults[key]; - } - return result; - }; - - // Modified version of `ucs2encode`; see https://mths.be/punycode. - var codePointToSymbol = function(codePoint, strict) { - var output = ''; - if ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) { - // See issue #4: - // “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is - // greater than 0x10FFFF, then this is a parse error. Return a U+FFFD - // REPLACEMENT CHARACTER.” - if (strict) { - parseError('character reference outside the permissible Unicode range'); - } - return '\uFFFD'; - } - if (has(decodeMapNumeric, codePoint)) { - if (strict) { - parseError('disallowed character reference'); - } - return decodeMapNumeric[codePoint]; - } - if (strict && contains(invalidReferenceCodePoints, codePoint)) { - parseError('disallowed character reference'); - } - if (codePoint > 0xFFFF) { - codePoint -= 0x10000; - output += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800); - codePoint = 0xDC00 | codePoint & 0x3FF; - } - output += stringFromCharCode(codePoint); - return output; - }; - - var hexEscape = function(codePoint) { - return '&#x' + codePoint.toString(16).toUpperCase() + ';'; - }; - - var decEscape = function(codePoint) { - return '&#' + codePoint + ';'; - }; - - var parseError = function(message) { - throw Error('Parse error: ' + message); - }; - - /*--------------------------------------------------------------------------*/ - - var encode = function(string, options) { - options = merge(options, encode.options); - var strict = options.strict; - if (strict && regexInvalidRawCodePoint.test(string)) { - parseError('forbidden code point'); - } - var encodeEverything = options.encodeEverything; - var useNamedReferences = options.useNamedReferences; - var allowUnsafeSymbols = options.allowUnsafeSymbols; - var escapeCodePoint = options.decimal ? decEscape : hexEscape; - - var escapeBmpSymbol = function(symbol) { - return escapeCodePoint(symbol.charCodeAt(0)); - }; - - if (encodeEverything) { - // Encode ASCII symbols. - string = string.replace(regexAsciiWhitelist, function(symbol) { - // Use named references if requested & possible. - if (useNamedReferences && has(encodeMap, symbol)) { - return '&' + encodeMap[symbol] + ';'; - } - return escapeBmpSymbol(symbol); - }); - // Shorten a few escapes that represent two symbols, of which at least one - // is within the ASCII range. - if (useNamedReferences) { - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒') - .replace(/fj/g, 'fj'); - } - // Encode non-ASCII symbols. - if (useNamedReferences) { - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } - // Note: any remaining non-ASCII symbols are handled outside of the `if`. - } else if (useNamedReferences) { - // Apply named character references. - // Encode `<>"'&` using named character references. - if (!allowUnsafeSymbols) { - string = string.replace(regexEscape, function(string) { - return '&' + encodeMap[string] + ';'; // no need to check `has()` here - }); - } - // Shorten escapes that represent two symbols, of which at least one is - // `<>"'&`. - string = string - .replace(/>\u20D2/g, '>⃒') - .replace(/<\u20D2/g, '<⃒'); - // Encode non-ASCII symbols that can be replaced with a named reference. - string = string.replace(regexEncodeNonAscii, function(string) { - // Note: there is no need to check `has(encodeMap, string)` here. - return '&' + encodeMap[string] + ';'; - }); - } else if (!allowUnsafeSymbols) { - // Encode `<>"'&` using hexadecimal escapes, now that they’re not handled - // using named character references. - string = string.replace(regexEscape, escapeBmpSymbol); - } - return string - // Encode astral symbols. - .replace(regexAstralSymbols, function($0) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae - var high = $0.charCodeAt(0); - var low = $0.charCodeAt(1); - var codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000; - return escapeCodePoint(codePoint); - }) - // Encode any remaining BMP symbols that are not printable ASCII symbols - // using a hexadecimal escape. - .replace(regexBmpWhitelist, escapeBmpSymbol); - }; - // Expose default options (so they can be overridden globally). - encode.options = { - 'allowUnsafeSymbols': false, - 'encodeEverything': false, - 'strict': false, - 'useNamedReferences': false, - 'decimal' : false - }; - - var decode = function(html, options) { - options = merge(options, decode.options); - var strict = options.strict; - if (strict && regexInvalidEntity.test(html)) { - parseError('malformed character reference'); - } - return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { - var codePoint; - var semicolon; - var decDigits; - var hexDigits; - var reference; - var next; - if ($1) { - // Decode decimal escapes, e.g. `𝌆`. - decDigits = $1; - semicolon = $2; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(decDigits, 10); - return codePointToSymbol(codePoint, strict); - } - if ($3) { - // Decode hexadecimal escapes, e.g. `𝌆`. - hexDigits = $3; - semicolon = $4; - if (strict && !semicolon) { - parseError('character reference was not terminated by a semicolon'); - } - codePoint = parseInt(hexDigits, 16); - return codePointToSymbol(codePoint, strict); - } - if ($5) { - // Decode named character references with trailing `;`, e.g. `©`. - reference = $5; - if (has(decodeMap, reference)) { - return decodeMap[reference]; - } else { - // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - return $0; - } - } - // If we’re still here, it’s a legacy reference for sure. No need for an - // extra `if` check. - // Decode named character references without trailing `;`, e.g. `&` - // This is only a parse error if it gets converted to `&`, or if it is - // followed by `=` in an attribute context. - reference = $6; - next = $7; - if (next && options.isAttributeValue) { - if (strict && next == '=') { - parseError('`&` did not start a character reference'); - } - return $0; - } else { - if (strict) { - parseError( - 'named character reference was not terminated by a semicolon' - ); - } - // Note: there is no need to check `has(decodeMapLegacy, reference)`. - return decodeMapLegacy[reference] + (next || ''); - } - }); - }; - // Expose default options (so they can be overridden globally). - decode.options = { - 'isAttributeValue': false, - 'strict': false - }; - - var escape = function(string) { - return string.replace(regexEscape, function($0) { - // Note: there is no need to check `has(escapeMap, $0)` here. - return escapeMap[$0]; - }); - }; - - /*--------------------------------------------------------------------------*/ - - var he = { - 'version': '1.1.1', - 'encode': encode, - 'decode': decode, - 'escape': escape, - 'unescape': decode - }; - - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - false - ) { - define(function() { - return he; - }); - } else if (freeExports && !freeExports.nodeType) { - if (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = he; - } else { // in Narwhal or RingoJS v0.7.0- - for (var key in he) { - has(he, key) && (freeExports[key] = he[key]); - } - } - } else { // in Rhino or a web browser - root.he = he; - } - -}(this)); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],49:[function(require,module,exports){ -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = ((value * c) - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - -},{}],50:[function(require,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],51:[function(require,module,exports){ -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) -} - -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} - -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} - -},{}],52:[function(require,module,exports){ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - -},{}],53:[function(require,module,exports){ -(function (process){ -var path = require('path'); -var fs = require('fs'); -var _0777 = parseInt('0777', 8); - -module.exports = mkdirP.mkdirp = mkdirP.mkdirP = mkdirP; - -function mkdirP (p, opts, f, made) { - if (typeof opts === 'function') { - f = opts; - opts = {}; - } - else if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - var cb = f || function () {}; - p = path.resolve(p); - - xfs.mkdir(p, mode, function (er) { - if (!er) { - made = made || p; - return cb(null, made); - } - switch (er.code) { - case 'ENOENT': - mkdirP(path.dirname(p), opts, function (er, made) { - if (er) cb(er, made); - else mkdirP(p, opts, cb, made); - }); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - xfs.stat(p, function (er2, stat) { - // if the stat fails, then that's super weird. - // let the original error be the failure reason. - if (er2 || !stat.isDirectory()) cb(er, made) - else cb(null, made); - }); - break; - } - }); -} - -mkdirP.sync = function sync (p, opts, made) { - if (!opts || typeof opts !== 'object') { - opts = { mode: opts }; - } - - var mode = opts.mode; - var xfs = opts.fs || fs; - - if (mode === undefined) { - mode = _0777 & (~process.umask()); - } - if (!made) made = null; - - p = path.resolve(p); - - try { - xfs.mkdirSync(p, mode); - made = made || p; - } - catch (err0) { - switch (err0.code) { - case 'ENOENT' : - made = sync(path.dirname(p), opts, made); - sync(p, opts, made); - break; - - // In the case of any other error, just see if there's a dir - // there already. If so, then hooray! If not, then something - // is borked. - default: - var stat; - try { - stat = xfs.statSync(p); - } - catch (err1) { - throw err0; - } - if (!stat.isDirectory()) throw err0; - break; - } - } - - return made; -}; - -}).call(this,require('_process')) -},{"_process":56,"fs":40,"path":40}],54:[function(require,module,exports){ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isNaN(val) === false) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtShort(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - return plural(ms, d, 'day') || - plural(ms, h, 'hour') || - plural(ms, m, 'minute') || - plural(ms, s, 'second') || - ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) { - return; - } - if (ms < n * 1.5) { - return Math.floor(ms / n) + ' ' + name; - } - return Math.ceil(ms / n) + ' ' + name + 's'; -} - -},{}],55:[function(require,module,exports){ -(function (process){ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = { nextTick: nextTick }; -} else { - module.exports = process -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} - - -}).call(this,require('_process')) -},{"_process":56}],56:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],57:[function(require,module,exports){ -module.exports = require('./lib/_stream_duplex.js'); - -},{"./lib/_stream_duplex.js":58}],58:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -{ - // avoid scope creep, the keys array can then be collected - var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; - } -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._writableState.highWaterMark; - } -}); - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - pna.nextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -Object.defineProperty(Duplex.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -Duplex.prototype._destroy = function (err, cb) { - this.push(null); - this.end(); - - pna.nextTick(cb, err); -}; -},{"./_stream_readable":60,"./_stream_writable":62,"core-util-is":42,"inherits":50,"process-nextick-args":55}],59:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; -},{"./_stream_transform":61,"core-util-is":42,"inherits":50}],60:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -module.exports = Readable; - -/**/ -var isArray = require('isarray'); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = require('events').EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ - -var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var BufferList = require('./internal/streams/BufferList'); -var destroyImpl = require('./internal/streams/destroy'); -var StringDecoder; - -util.inherits(Readable, Stream); - -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); - - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; -} - -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var readableHwm = options.readableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); - -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - this.push(null); - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); - } else if (state.ended) { - stream.emit('error', new Error('stream.push() after EOF')); - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - } - } - - return needMoreData(state); -} - -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} - -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - pna.nextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { hasUnpiped: false }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this, unpipeInfo); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - pna.nextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - pna.nextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var _this = this; - - var state = this._readableState; - var paused = false; - - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) _this.push(chunk); - } - - _this.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = _this.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - this._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return this; -}; - -Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._readableState.highWaterMark; - } -}); - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - pna.nextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":58,"./internal/streams/BufferList":63,"./internal/streams/destroy":64,"./internal/streams/stream":65,"_process":56,"core-util-is":42,"events":47,"inherits":50,"isarray":52,"process-nextick-args":55,"safe-buffer":70,"string_decoder/":72,"util":38}],61:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function afterTransform(er, data) { - var ts = this._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) { - return this.emit('error', new Error('write callback called multiple times')); - } - - ts.writechunk = null; - ts.writecb = null; - - if (data != null) // single equals check for both `null` and `undefined` - this.push(data); - - cb(er); - - var rs = this._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - this._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = { - afterTransform: afterTransform.bind(this), - needTransform: false, - transforming: false, - writecb: null, - writechunk: null, - writeencoding: null - }; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.on('prefinish', prefinish); -} - -function prefinish() { - var _this = this; - - if (typeof this._flush === 'function') { - this._flush(function (er, data) { - done(_this, er, data); - }); - } else { - done(this, null, null); - } -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -Transform.prototype._destroy = function (err, cb) { - var _this2 = this; - - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - _this2.emit('close'); - }); -}; - -function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); - - if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} -},{"./_stream_duplex":58,"core-util-is":42,"inherits":50}],62:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ - -var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} - -/**/ - -var destroyImpl = require('./internal/streams/destroy'); - -util.inherits(Writable, Stream); - -function nop() {} - -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // Duplex streams are both readable and writable, but share - // the same options object. - // However, some cases require setting options to different - // values for the readable and the writable sides of the duplex stream. - // These options can be provided separately as readableXXX and writableXXX. - var isDuplex = stream instanceof Duplex; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var writableHwm = options.writableHighWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - - if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - if (this !== Writable) return false; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - - if (typeof options.final === 'function') this._final = options.final; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - pna.nextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - pna.nextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { - // making it explicit this property is not enumerable - // because otherwise some prototype manipulation in - // userland will fail - enumerable: false, - get: function () { - return this._writableState.highWaterMark; - } -}); - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - pna.nextTick(cb, er); - // this can emit finish, and it will always happen - // after error - pna.nextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - state.bufferedRequestCount = 0; - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - state.bufferedRequestCount--; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - stream.emit('error', err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function') { - state.pendingcb++; - state.finalCalled = true; - pna.nextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) pna.nextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } -} - -Object.defineProperty(Writable.prototype, 'destroyed', { - get: function () { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); - -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - this.end(); - cb(err); -}; -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":58,"./internal/streams/destroy":64,"./internal/streams/stream":65,"_process":56,"core-util-is":42,"inherits":50,"process-nextick-args":55,"safe-buffer":70,"util-deprecate":73}],63:[function(require,module,exports){ -'use strict'; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Buffer = require('safe-buffer').Buffer; -var util = require('util'); - -function copyBuffer(src, target, offset) { - src.copy(target, offset); -} - -module.exports = function () { - function BufferList() { - _classCallCheck(this, BufferList); - - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function push(v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function unshift(v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function clear() { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - - return BufferList; -}(); - -if (util && util.inspect && util.inspect.custom) { - module.exports.prototype[util.inspect.custom] = function () { - var obj = util.inspect({ length: this.length }); - return this.constructor.name + ' ' + obj; - }; -} -},{"safe-buffer":70,"util":38}],64:[function(require,module,exports){ -'use strict'; - -/**/ - -var pna = require('process-nextick-args'); -/**/ - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - pna.nextTick(emitErrorNT, this, err); - } - return this; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - - this._destroy(err || null, function (err) { - if (!cb && err) { - pna.nextTick(emitErrorNT, _this, err); - if (_this._writableState) { - _this._writableState.errorEmitted = true; - } - } else if (cb) { - cb(err); - } - }); - - return this; -} - -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} - -function emitErrorNT(self, err) { - self.emit('error', err); -} - -module.exports = { - destroy: destroy, - undestroy: undestroy -}; -},{"process-nextick-args":55}],65:[function(require,module,exports){ -module.exports = require('events').EventEmitter; - -},{"events":47}],66:[function(require,module,exports){ -module.exports = require('./readable').PassThrough - -},{"./readable":67}],67:[function(require,module,exports){ -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); - -},{"./lib/_stream_duplex.js":58,"./lib/_stream_passthrough.js":59,"./lib/_stream_readable.js":60,"./lib/_stream_transform.js":61,"./lib/_stream_writable.js":62}],68:[function(require,module,exports){ -module.exports = require('./readable').Transform - -},{"./readable":67}],69:[function(require,module,exports){ -module.exports = require('./lib/_stream_writable.js'); - -},{"./lib/_stream_writable.js":62}],70:[function(require,module,exports){ -/* eslint-disable node/no-deprecated-api */ -var buffer = require('buffer') -var Buffer = buffer.Buffer - -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] - } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} - -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} - -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) - -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) -} - -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf -} - -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) -} - -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) -} - -},{"buffer":41}],71:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -module.exports = Stream; - -var EE = require('events').EventEmitter; -var inherits = require('inherits'); - -inherits(Stream, EE); -Stream.Readable = require('readable-stream/readable.js'); -Stream.Writable = require('readable-stream/writable.js'); -Stream.Duplex = require('readable-stream/duplex.js'); -Stream.Transform = require('readable-stream/transform.js'); -Stream.PassThrough = require('readable-stream/passthrough.js'); - -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; - - - -// old-style streams. Note that the pipe method (the only relevant -// part of this class) is overridden in the Readable class. - -function Stream() { - EE.call(this); -} - -Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; - -},{"events":47,"inherits":50,"readable-stream/duplex.js":57,"readable-stream/passthrough.js":66,"readable-stream/readable.js":67,"readable-stream/transform.js":68,"readable-stream/writable.js":69}],72:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -/**/ - -var Buffer = require('safe-buffer').Buffer; -/**/ - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': - return true; - default: - return false; - } -}; - -function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } -}; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.StringDecoder = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); -} - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; -}; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. If an invalid byte is detected, -2 is returned. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return byte >> 6 === 0x02 ? -1 : -2; -} - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i || nb === -2) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; -} - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'; - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'; - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'; - } - } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character is added when ending on a partial -// character. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'; - return r; -} - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; -} - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); -} - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; -} - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); -} - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; -} -},{"safe-buffer":70}],73:[function(require,module,exports){ -(function (global){ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; - } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],74:[function(require,module,exports){ -arguments[4][50][0].apply(exports,arguments) -},{"dup":50}],75:[function(require,module,exports){ -module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; -} -},{}],76:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var formatRegExp = /%[sdj%]/g; -exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; -}; - - -// Mark that a method should not be used. -// Returns a modified function which warns once by default. -// If --no-deprecation is set, then it is a no-op. -exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -}; - - -var debugs = {}; -var debugEnviron; -exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; -}; - - -/** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ -/* legacy: obj, showHidden, depth, colors*/ -function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); -} -exports.inspect = inspect; - - -// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics -inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] -}; - -// Don't use 'blue' not visible on cmd.exe -inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' -}; - - -function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } -} - - -function stylizeNoColor(str, styleType) { - return str; -} - - -function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; -} - - -function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); -} - - -function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); -} - - -function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; -} - - -function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; -} - - -function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; -} - - -function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; -} - - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. -function isArray(ar) { - return Array.isArray(ar); -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = require('./support/isBuffer'); - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - - -function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); -} - - -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - -// 26 Feb 16:19:34 -function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); -} - - -// log is just a thin wrapper to console.log that prepends a timestamp -exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); -}; - - -/** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ -exports.inherits = require('inherits'); - -exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; -}; - -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":75,"_process":56,"inherits":74}]},{},[1]); diff --git a/multiplatform-crypto-delegated/node_modules/mocha/package.json b/multiplatform-crypto-delegated/node_modules/mocha/package.json deleted file mode 100644 index 8a78a84..0000000 --- a/multiplatform-crypto-delegated/node_modules/mocha/package.json +++ /dev/null @@ -1,1848 +0,0 @@ -{ - "_from": "mocha@5.2.0", - "_id": "mocha@5.2.0", - "_inBundle": false, - "_integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "_location": "/mocha", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "mocha@5.2.0", - "name": "mocha", - "escapedName": "mocha", - "rawSpec": "5.2.0", - "saveSpec": null, - "fetchSpec": "5.2.0" - }, - "_requiredBy": [ - "#DEV:/" - ], - "_resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "_shasum": "6d8ae508f59167f940f2b5b3c4a612ae50c90ae6", - "_spec": "mocha@5.2.0", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm", - "author": { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - "bin": { - "mocha": "./bin/mocha", - "_mocha": "./bin/_mocha" - }, - "browser": { - "growl": "./lib/browser/growl.js", - "tty": "./lib/browser/tty.js", - "./index.js": "./browser-entry.js", - "fs": false, - "glob": false, - "path": false, - "supports-color": false - }, - "bugs": { - "url": "https://github.com/mochajs/mocha/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "38elements", - "email": "mh19820223@gmail.com" - }, - { - "name": "Aaron Brady", - "email": "aaron@mori.com" - }, - { - "name": "Aaron Hamid", - "email": "aaron.hamid@gmail.com" - }, - { - "name": "Aaron Heckmann", - "email": "aaron.heckmann+github@gmail.com" - }, - { - "name": "Aaron Krause", - "email": "aaronjkrause@gmail.com" - }, - { - "name": "Aaron Petcoff", - "email": "hello@aaronpetcoff.me" - }, - { - "name": "abrkn", - "email": "a@abrkn.com" - }, - { - "name": "Adam Crabtree", - "email": "adam.crabtree@redrobotlabs.com" - }, - { - "name": "Adam Gruber", - "email": "talknmime@gmail.com" - }, - { - "name": "Adrian Ludwig", - "email": "me@adrianludwig.pl" - }, - { - "name": "Ahmad Bamieh", - "email": "ahmadbamieh@gmail.com" - }, - { - "name": "airportyh", - "email": "airportyh@gmail.com" - }, - { - "name": "Ajay Kodali", - "email": "ajay.kodali@citrix.com" - }, - { - "name": "Al Scott", - "email": "al.scott@atomicobject.com" - }, - { - "name": "Alex Bainter", - "email": "metalex9@users.noreply.github.com" - }, - { - "name": "Alexander Early", - "email": "alexander.early@gmail.com" - }, - { - "name": "Alexander Shepelin", - "email": "Brightcor@gmail.com" - }, - { - "name": "Alhadis", - "email": "gardnerjohng@gmail.com" - }, - { - "name": "amsul", - "email": "reach@amsul.ca" - }, - { - "name": "Anders Olsen Sandvik", - "email": "Andersos@users.noreply.github.com" - }, - { - "name": "Andreas Brekken", - "email": "andreas@opuno.com" - }, - { - "name": "Andreas Lind Petersen", - "email": "andreas@one.com" - }, - { - "name": "Andrew Krawchyk", - "email": "903716+akrawchyk@users.noreply.github.com" - }, - { - "name": "Andrew Nesbitt", - "email": "andrewnez@gmail.com" - }, - { - "name": "Andrey Popp", - "email": "8mayday@gmail.com" - }, - { - "name": "Andrii Shumada", - "email": "eagleeyes91@gmail.com" - }, - { - "name": "andy matthews", - "email": "andy@commadelimited.com" - }, - { - "name": "Angelica Valenta", - "email": "angelicavalenta@gmail.com" - }, - { - "name": "Anis Safine", - "email": "anis.safine.ext@francetv.fr" - }, - { - "name": "Anish Karandikar", - "email": "anishkny@gmail.com" - }, - { - "name": "Anthony", - "email": "keppi@o2.pl" - }, - { - "name": "Anton", - "email": "anton.redfox@gmail.com" - }, - { - "name": "anton", - "email": "anton.valickij@gmail.com" - }, - { - "name": "APerson", - "email": "danielhglus@gmail.com" - }, - { - "name": "Arian Stolwijk", - "email": "arian@aryweb.nl" - }, - { - "name": "Ariel Mashraki", - "email": "ariel@mashraki.co.il" - }, - { - "name": "Arnaud Brousseau", - "email": "arnaud.brousseau@gmail.com" - }, - { - "name": "Artem Govorov", - "email": "artem.govorov@gmail.com" - }, - { - "name": "Atsuya Takagi", - "email": "asoftonight@gmail.com" - }, - { - "name": "Attila Domokos", - "email": "adomokos@gmail.com" - }, - { - "name": "Austin Birch", - "email": "mraustinbirch@gmail.com" - }, - { - "name": "Avi Vahl", - "email": "avi.vahl@wix.com" - }, - { - "name": "badunk", - "email": "baduncaduncan@gmail.com" - }, - { - "name": "Bamieh", - "email": "ahmadbamieh@gmail.com" - }, - { - "name": "Ben Bradley", - "email": "ben@bradleyit.com" - }, - { - "name": "Ben Harris", - "email": "benhdev@gmail.com" - }, - { - "name": "Ben Hutchison", - "email": "ben@aldaviva.com" - }, - { - "name": "Ben Lindsey", - "email": "ben.lindsey@vungle.com" - }, - { - "name": "Ben Noordhuis", - "email": "info@bnoordhuis.nl" - }, - { - "name": "Ben Vinegar", - "email": "ben@benv.ca" - }, - { - "name": "Benjamin Eidelman", - "email": "beneidel@gmail.com" - }, - { - "name": "Benjie Gillam", - "email": "benjie@jemjie.com" - }, - { - "name": "Benoit Larroque", - "email": "zeta.ben@gmail.com" - }, - { - "name": "Benoît Zugmeyer", - "email": "bzugmeyer@gmail.com" - }, - { - "name": "Benson Trent", - "email": "bensontrent@gmail.com" - }, - { - "name": "Berker Peksag", - "email": "berker.peksag@gmail.com" - }, - { - "name": "berni", - "email": "berni@extensa.pl" - }, - { - "name": "Bjørge Næss", - "email": "bjoerge@origo.no" - }, - { - "name": "Brendan Nee", - "email": "brendan.nee@gmail.com" - }, - { - "name": "Brian Beck", - "email": "exogen@gmail.com" - }, - { - "name": "Brian Lalor", - "email": "blalor@bravo5.org" - }, - { - "name": "Brian M. Carlson", - "email": "brian.m.carlson@gmail.com" - }, - { - "name": "Brian Moore", - "email": "guardbionic-github@yahoo.com" - }, - { - "name": "Bryan Donovan", - "email": "bdondo@gmail.com" - }, - { - "name": "Buck Doyle", - "email": "b@chromatin.ca" - }, - { - "name": "C. Scott Ananian", - "email": "cscott@cscott.net" - }, - { - "name": "Callum Macrae", - "email": "callum@macr.ae" - }, - { - "name": "Can Oztokmak", - "email": "can@zeplin.io" - }, - { - "name": "Capacitor Set", - "email": "CapacitorSet@users.noreply.github.com" - }, - { - "name": "Casey Foster", - "email": "casey@caseywebdev.com" - }, - { - "name": "Charles Lowell", - "email": "cowboyd@frontside.io" - }, - { - "name": "Charles Merriam", - "email": "charles.merriam@gmail.com" - }, - { - "name": "Charlie Rudolph", - "email": "charles.w.rudolph@gmail.com" - }, - { - "name": "Chris", - "email": "chrisleck@users.noreply.github.com" - }, - { - "name": "Chris Buckley", - "email": "chris@cmbuckley.co.uk" - }, - { - "name": "Chris Lamb", - "email": "chris@chris-lamb.co.uk" - }, - { - "name": "Christian", - "email": "me@rndm.de" - }, - { - "name": "Christoffer Hallas", - "email": "christoffer.hallas@gmail.com" - }, - { - "name": "Christoph Neuroth", - "email": "christoph.neuroth@gmail.com" - }, - { - "name": "Christopher Hiller", - "email": "boneskull@boneskull.com" - }, - { - "name": "ChrisWren", - "email": "cthewren@gmail.com" - }, - { - "name": "claudyus", - "email": "claudyus@HEX.(none)", - "url": "none" - }, - { - "name": "Connor Dunn", - "email": "connorhd@gmail.com" - }, - { - "name": "Corey Butler", - "email": "corey@coreybutler.com" - }, - { - "name": "Cory Thomas", - "email": "cory.thomas@bazaarvoice.com" - }, - { - "name": "Craig Taub", - "email": "craigtaub@gmail.com" - }, - { - "name": "Cube", - "email": "maty21@gmail.com" - }, - { - "name": "Daniel Ruf", - "email": "daniel@daniel-ruf.de" - }, - { - "name": "Daniel St. Jules", - "email": "danielst.jules@gmail.com" - }, - { - "name": "Daniel Stockman", - "email": "daniel.stockman@gmail.com" - }, - { - "name": "Darryl Pogue", - "email": "dvpdiner2@gmail.com" - }, - { - "name": "Dave McKenna", - "email": "davemckenna01@gmail.com" - }, - { - "name": "David da Silva Contín", - "email": "dasilvacontin@gmail.com" - }, - { - "name": "David Henderson", - "email": "david.henderson@triggeredmessaging.com" - }, - { - "name": "David M. Lee", - "email": "leedm777@yahoo.com" - }, - { - "name": "David Neubauer", - "email": "davidneub@gmail.com" - }, - { - "name": "DavNej", - "email": "davnej.dev@gmail.com" - }, - { - "name": "Denis Bardadym", - "email": "bardadymchik@gmail.com" - }, - { - "name": "Devin Weaver", - "email": "suki@tritarget.org" - }, - { - "name": "dfberry", - "email": "dinaberry@outlook.com" - }, - { - "name": "Di Wu", - "email": "dwu@palantir.com" - }, - { - "name": "Dina Berry", - "email": "dfberry@users.noreply.github.com" - }, - { - "name": "Diogo Monteiro", - "email": "diogo.gmt@gmail.com" - }, - { - "name": "Dmitriy Simushev", - "email": "simushevds@gmail.com" - }, - { - "name": "Dmitry Shirokov", - "email": "deadrunk@gmail.com" - }, - { - "name": "Dmitry Sorin", - "email": "info@staypositive.ru" - }, - { - "name": "Domenic Denicola", - "email": "domenic@domenicdenicola.com" - }, - { - "name": "Dominic Barnes", - "email": "dominic@dbarnes.info" - }, - { - "name": "Dominique Quatravaux", - "email": "dominique@quatravaux.org" - }, - { - "name": "Douglas Christopher Wilson", - "email": "doug@somethingdoug.com" - }, - { - "name": "Duncan Beevers", - "email": "duncan@dweebd.com" - }, - { - "name": "eiji.ienaga", - "email": "eiji.ienaga@gmail.com" - }, - { - "name": "elergy", - "email": "elergy@yandex-team.ru" - }, - { - "name": "Eli Skeggs", - "email": "skeggse@users.noreply.github.com" - }, - { - "name": "ELLIOTTCABLE", - "email": "me@ell.io" - }, - { - "name": "Emanuele", - "email": "my.burning@gmail.com" - }, - { - "name": "Enric Pallerols", - "email": "enric@pallerols.cat" - }, - { - "name": "Erik Eng", - "email": "mail@ptz0n.se" - }, - { - "name": "Eugene Tiutiunnyk", - "email": "eugene.tiutiunnyk@lookout.com" - }, - { - "name": "Fabio M. Costa", - "email": "fabiomcosta@gmail.com" - }, - { - "name": "Fagner Brack", - "email": "github3@fagnermartins.com" - }, - { - "name": "FARKAS Máté", - "email": "mate.farkas@virtual-call-center.eu" - }, - { - "name": "fcrisci", - "email": "fabio.crisci@amadeus.com" - }, - { - "name": "Fede Ramirez", - "email": "i@2fd.me" - }, - { - "name": "Fedor Indutny", - "email": "fedor.indutny@gmail.com" - }, - { - "name": "fengmk2", - "email": "fengmk2@gmail.com" - }, - { - "name": "Florian Margaine", - "email": "florian@margaine.com" - }, - { - "name": "FND", - "email": "FND@users.noreply.github.com" - }, - { - "name": "fool2fish", - "email": "fool2fish@gmail.com" - }, - { - "name": "Forbes Lindesay", - "email": "forbes@lindesay.co.uk" - }, - { - "name": "Frank Leon Rose", - "email": "frankleonrose@gmail.com" - }, - { - "name": "Frederico Silva", - "email": "frederico.silva@gmail.com" - }, - { - "name": "Fredrik Enestad", - "email": "fredrik@devloop.se" - }, - { - "name": "Fredrik Lindin", - "email": "fredriklindin@gmail.com" - }, - { - "name": "Fumiaki MATSUSHIMA", - "email": "mtsmfm@gmail.com" - }, - { - "name": "Gabriel Silk", - "email": "gabesilk@gmail.com" - }, - { - "name": "Gareth Aye", - "email": "gaye@mozilla.com" - }, - { - "name": "Gareth Murphy", - "email": "gareth.cpm@gmail.com" - }, - { - "name": "Gavin Mogan", - "email": "GavinM@airg.com" - }, - { - "name": "gaye", - "email": "gaye@mozilla.com" - }, - { - "name": "gigadude", - "email": "gigadude@users.noreply.github.com" - }, - { - "name": "Giovanni Bassi", - "email": "giggio@giggio.net" - }, - { - "name": "Glen Huang", - "email": "curvedmark@gmail.com" - }, - { - "name": "Glen Mailer", - "email": "glenjamin@gmail.com" - }, - { - "name": "grasGendarme", - "email": "me@grasgendar.me" - }, - { - "name": "Greg Perkins", - "email": "gregperkins@alum.mit.edu" - }, - { - "name": "Guangcong Luo", - "email": "guangcongluo@gmail.com" - }, - { - "name": "Guillermo Rauch", - "email": "rauchg@gmail.com" - }, - { - "name": "Guy Arye", - "email": "arye.guy@gmail.com" - }, - { - "name": "Gyandeep Singh", - "email": "gyandeeps@gmail.com" - }, - { - "name": "Harish", - "email": "hyeluri@gmail.com" - }, - { - "name": "Harry Brundage", - "email": "harry.brundage@gmail.com" - }, - { - "name": "Harry Sarson", - "email": "harry.sarson@hotmail.co.uk" - }, - { - "name": "Harry Wolff", - "email": "hswolff@users.noreply.github.com" - }, - { - "name": "Herman Junge", - "email": "herman@geekli.st" - }, - { - "name": "hokaccha", - "email": "k.hokamura@gmail.com" - }, - { - "name": "Honza Javorek", - "email": "mail@honzajavorek.cz" - }, - { - "name": "Hugo Giraudel", - "email": "hugo.giraudel@gmail.com" - }, - { - "name": "Ian Storm Taylor", - "email": "ian@ianstormtaylor.com" - }, - { - "name": "Ian W. Remmel", - "email": "design@ianwremmel.com" - }, - { - "name": "Ian Young", - "email": "ian.greenleaf@gmail.com" - }, - { - "name": "Ian Zamojc", - "email": "ian@thesecretlocation.net" - }, - { - "name": "Igwe Kalu", - "email": "igwe.kalu@live.com" - }, - { - "name": "ImgBot", - "email": "31427850+ImgBotApp@users.noreply.github.com" - }, - { - "name": "inxorable", - "email": "inxorable@codewren.ch" - }, - { - "name": "Ivan", - "email": "ivan@kinvey.com" - }, - { - "name": "Jaakko Salonen", - "email": "jaakko.salonen@iki.fi" - }, - { - "name": "Jacob Wejendorp", - "email": "jacob@wejendorp.dk" - }, - { - "name": "Jake Craige", - "email": "james.craige@gmail.com" - }, - { - "name": "Jake Marsh", - "email": "jakemmarsh@gmail.com" - }, - { - "name": "Jakob Krigovsky", - "email": "jakob@krigovsky.com" - }, - { - "name": "Jakub Nešetřil", - "email": "jakub@apiary.io" - }, - { - "name": "James Bowes", - "email": "jbowes@repl.ca" - }, - { - "name": "James Carr", - "email": "james.r.carr@gmail.com" - }, - { - "name": "James G. Kim", - "email": "jgkim@jayg.org" - }, - { - "name": "James Lal", - "email": "james@lightsofapollo.com" - }, - { - "name": "James Nylen", - "email": "jnylen@gmail.com" - }, - { - "name": "Jan Kopriva", - "email": "jan.kopriva@gooddata.com" - }, - { - "name": "Jan Krems", - "email": "jan.krems@groupon.com" - }, - { - "name": "Jan Lehnardt", - "email": "jan@apache.org" - }, - { - "name": "Jason Barry", - "email": "jay@jcbarry.com" - }, - { - "name": "Jason Lai", - "email": "jason@getpebble.com" - }, - { - "name": "Jason Leyba", - "email": "jmleyba@gmail.com" - }, - { - "name": "Javier Aranda", - "email": "javierav@javierav.com" - }, - { - "name": "Jean Ponchon", - "email": "gelule@gmail.com" - }, - { - "name": "Jeff Kunkle", - "email": "jeff.kunkle@nearinfinity.com" - }, - { - "name": "Jeff Schilling", - "email": "jeff.schilling@q2ebanking.com" - }, - { - "name": "JeongHoon Byun", - "email": "outsideris@gmail.com", - "url": "aka Outsider" - }, - { - "name": "Jérémie Astori", - "email": "jeremie@astori.fr" - }, - { - "name": "Jeremy Martin", - "email": "jmar777@gmail.com" - }, - { - "name": "Jerry Muzsik", - "email": "jerrymuzsik@icloud.com" - }, - { - "name": "Jesse Dailey", - "email": "jesse.dailey@gmail.com" - }, - { - "name": "jimenglish81", - "email": "jimenglish81@gmail.com" - }, - { - "name": "Jimmy Cuadra", - "email": "jimmy@jimmycuadra.com" - }, - { - "name": "Jo Liss", - "email": "joliss42@gmail.com" - }, - { - "name": "Joao Moreno", - "email": "mail@joaomoreno.com" - }, - { - "name": "Joel Kemp", - "email": "mrjoelkemp@gmail.com" - }, - { - "name": "Joey Cozza", - "email": "joey@grow.com" - }, - { - "name": "John Doty", - "email": "jrhdoty@gmail.com" - }, - { - "name": "John Firebaugh", - "email": "john.firebaugh@gmail.com" - }, - { - "name": "John Reeves", - "email": "github@jonnyreeves.co.uk" - }, - { - "name": "Johnathon Sanders", - "email": "outdooricon@gmail.com" - }, - { - "name": "Jon Surrell", - "email": "jon.surrell@automattic.com" - }, - { - "name": "Jonas Dohse", - "email": "jonas@mbr-targeting.com" - }, - { - "name": "Jonas Westerlund", - "email": "jonas.westerlund@me.com" - }, - { - "name": "Jonathan Creamer", - "email": "matrixhasyou2k4@gmail.com" - }, - { - "name": "Jonathan Delgado", - "email": "jdelgado@rewip.com" - }, - { - "name": "Jonathan Kim", - "email": "jkimbo@gmail.com" - }, - { - "name": "Jonathan Ong", - "email": "jonathanrichardong@gmail.com" - }, - { - "name": "Jonathan Park", - "email": "jpark@daptiv.com" - }, - { - "name": "Jonathan Rajavuori", - "email": "jrajav@gmail.com" - }, - { - "name": "Jordan Sexton", - "email": "jordan@jordansexton.com" - }, - { - "name": "Joseph Lin", - "email": "josephlin55555@gmail.com" - }, - { - "name": "Josh Eversmann", - "email": "josh.eversmann@gmail.com" - }, - { - "name": "Josh Lory", - "email": "josh.lory@code.org" - }, - { - "name": "Josh Soref", - "email": "jsoref@users.noreply.github.com" - }, - { - "name": "Joshua Appelman", - "email": "jappelman@xebia.com" - }, - { - "name": "Joshua Krall", - "email": "joshuakrall@pobox.com" - }, - { - "name": "JP Bochi", - "email": "jpbochi@gmail.com" - }, - { - "name": "jsdevel", - "email": "js.developer.undefined@gmail.com" - }, - { - "name": "Julien Wajsberg", - "email": "felash@gmail.com" - }, - { - "name": "Jupp Müller", - "email": "jupp0r@gmail.com" - }, - { - "name": "Jussi Virtanen", - "email": "jussi.k.virtanen@gmail.com" - }, - { - "name": "Justin DuJardin", - "email": "justin.dujardin@sococo.com" - }, - { - "name": "Juzer Ali", - "email": "er.juzerali@gmail.com" - }, - { - "name": "Katie Gengler", - "email": "katiegengler@gmail.com" - }, - { - "name": "kavun", - "email": "kevin.a.reed@gmail.com" - }, - { - "name": "Kazuhito Hokamura", - "email": "k.hokamura@gmail.com" - }, - { - "name": "Keith Cirkel", - "email": "github@keithcirkel.co.uk" - }, - { - "name": "Kelong Wang", - "email": "buaawkl@gmail.com" - }, - { - "name": "Kent C. Dodds", - "email": "kent+github@doddsfamily.us" - }, - { - "name": "Kevin Burke", - "email": "kev@inburke.com" - }, - { - "name": "Kevin Conway", - "email": "kevinjacobconway@gmail.com" - }, - { - "name": "Kevin Kirsche", - "email": "Kev.Kirsche+GitHub@gmail.com" - }, - { - "name": "Kevin Partington", - "email": "platinum.azure@kernelpanicstudios.com" - }, - { - "name": "Kevin Wang", - "email": "kevin@fossa.io" - }, - { - "name": "Kirill Korolyov", - "email": "kirill.korolyov@gmail.com" - }, - { - "name": "klaemo", - "email": "klaemo@fastmail.fm" - }, - { - "name": "Koen Punt", - "email": "koen@koenpunt.nl" - }, - { - "name": "Konstantin Käfer", - "email": "github@kkaefer.com" - }, - { - "name": "Kris Rasmussen", - "email": "kristopher.rasmussen@gmail.com" - }, - { - "name": "Kunal Nagpal", - "email": "kunagpal@users.noreply.github.com" - }, - { - "name": "Kyle Mitchell", - "email": "kyle@kemitchell.com" - }, - { - "name": "lakmeer", - "email": "lakmeerkravid@gmail.com" - }, - { - "name": "Lane Kelly", - "email": "lanekelly16@gmail.com" - }, - { - "name": "László Bácsi", - "email": "lackac@lackac.hu" - }, - { - "name": "Laurence Rowe", - "email": "lrowe@netflix.com" - }, - { - "name": "Liam Newman", - "email": "bitwiseman@gmail.com" - }, - { - "name": "Linus Unnebäck", - "email": "linus@folkdatorn.se" - }, - { - "name": "lodr", - "email": "salva@unoyunodiez.com" - }, - { - "name": "Long Ho", - "email": "longlho@users.noreply.github.com" - }, - { - "name": "Maciej Małecki", - "email": "maciej.malecki@notimplemented.org" - }, - { - "name": "Mal Graty", - "email": "mal.graty@googlemail.com" - }, - { - "name": "Marais Rossouw", - "email": "me@maraisr.com" - }, - { - "name": "Marc Kuo", - "email": "kuomarc2@gmail.com" - }, - { - "name": "Marcello Bastea-Forte", - "email": "marcello@cellosoft.com" - }, - { - "name": "Mark Banner", - "email": "standard8@mozilla.com" - }, - { - "name": "Markus Tacker", - "email": "m@coderbyheart.com" - }, - { - "name": "Martin Marko", - "email": "marcus@gratex.com" - }, - { - "name": "Mathieu Desvé", - "email": "mathieudesve@MacBook-Pro-de-Mathieu.local" - }, - { - "name": "Matija Marohnić", - "email": "matija.marohnic@gmail.com" - }, - { - "name": "Matt Bierner", - "email": "mattbierner@gmail.com" - }, - { - "name": "Matt Giles", - "email": "matt.giles@cerner.com" - }, - { - "name": "Matt Robenolt", - "email": "matt@ydekproductions.com" - }, - { - "name": "Matt Smith", - "email": "matthewgarysmith@gmail.com" - }, - { - "name": "Matthew Shanley", - "email": "matthewshanley@littlesecretsrecords.com" - }, - { - "name": "Mattias Tidlund", - "email": "mattias.tidlund@learningwell.se" - }, - { - "name": "Max Goodman", - "email": "c@chromakode.com" - }, - { - "name": "Maximilian Antoni", - "email": "mail@maxantoni.de" - }, - { - "name": "Merrick Christensen", - "email": "merrick.christensen@gmail.com" - }, - { - "name": "Michael Demmer", - "email": "demmer@jut.io" - }, - { - "name": "Michael Jackson", - "email": "mjijackson@gmail.com" - }, - { - "name": "Michael Olson", - "email": "mwolson@member.fsf.org" - }, - { - "name": "Michael Riley", - "email": "michael.riley@autodesk.com" - }, - { - "name": "Michael Schoonmaker", - "email": "michael.r.schoonmaker@gmail.com" - }, - { - "name": "Michal Charemza", - "email": "michalcharemza@gmail.com" - }, - { - "name": "Michiel de Jong", - "email": "michiel@unhosted.org" - }, - { - "name": "Mick Brooks", - "email": "mick.brooks@sinking.in" - }, - { - "name": "Mike Pennisi", - "email": "mike@mikepennisi.com" - }, - { - "name": "Mislav Marohnić", - "email": "mislav.marohnic@gmail.com" - }, - { - "name": "monowerker", - "email": "monowerker@gmail.com" - }, - { - "name": "Moshe Kolodny", - "email": "mkolodny@integralads.com" - }, - { - "name": "mrShturman", - "email": "mrshturman@gmail.com" - }, - { - "name": "Nathan Alderson", - "email": "nathan.alderson@adtran.com" - }, - { - "name": "Nathan Black", - "email": "nathan@nathanblack.org" - }, - { - "name": "Nathan Bowser", - "email": "nathan.bowser@spiderstrategies.com" - }, - { - "name": "Nathan Houle", - "email": "nathan@nathanhoule.com" - }, - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net" - }, - { - "name": "nexdrew", - "email": "andrew.goode@nextraq.com" - }, - { - "name": "Nick Fitzgerald", - "email": "fitzgen@gmail.com" - }, - { - "name": "Nicolas Girault", - "email": "nic.girault@gmail.com" - }, - { - "name": "Nicolo Taddei", - "email": "taddei.uk@gmail.com" - }, - { - "name": "Nik Nyby", - "email": "nnyby@columbia.edu" - }, - { - "name": "Nikolaos Georgiou", - "email": "Nikolaos.Georgiou@gmail.com" - }, - { - "name": "nishigori", - "email": "Takuya_Nishigori@voyagegroup.com" - }, - { - "name": "Noshir Patel", - "email": "nosh@blackpiano.com" - }, - { - "name": "not-an-aardvark", - "email": "not-an-aardvark@users.noreply.github.com" - }, - { - "name": "OlegTsyba", - "email": "oleg.tsyba.ua@gmail.com" - }, - { - "name": "olsonpm", - "email": "olsonpm@users.noreply.github.com" - }, - { - "name": "omardelarosa", - "email": "thedelarosa@gmail.com" - }, - { - "name": "Oscar Godson", - "email": "oscargodson@outlook.com" - }, - { - "name": "Outsider", - "email": "outsideris@gmail.com" - }, - { - "name": "oveddan", - "email": "stangogh@gmail.com" - }, - { - "name": "Panu Horsmalahti", - "email": "panu.horsmalahti@iki.fi" - }, - { - "name": "Parker Moore", - "email": "parkrmoore@gmail.com" - }, - { - "name": "Pat Finnigan", - "email": "patrick.k.finnigan@gmail.com" - }, - { - "name": "Paul Armstrong", - "email": "paul@paularmstrongdesigns.com" - }, - { - "name": "Paul Miller", - "email": "paul@paulmillr.com" - }, - { - "name": "Pavel Zubkou", - "email": "pavel.zubkou@gmail.com" - }, - { - "name": "Pete Hawkins", - "email": "pete@petes-imac.frontinternal.net" - }, - { - "name": "Peter Müller", - "email": "munter@fumle.dk" - }, - { - "name": "Peter Rust", - "email": "peter@cornerstonenw.com" - }, - { - "name": "Phil Sung", - "email": "psung@dnanexus.com" - }, - { - "name": "Philip M. White", - "email": "philip@mailworks.org" - }, - { - "name": "PoppinL", - "email": "poppinlp@gmail.com" - }, - { - "name": "Poprádi Árpád", - "email": "popradi.arpad11@gmail.com" - }, - { - "name": "Prayag Verma", - "email": "prayag.verma@gmail.com" - }, - { - "name": "qiuzuhui", - "email": "qiuzuhui@users.noreply.github.com" - }, - { - "name": "Quang Van", - "email": "quangvvv@gmail.com" - }, - { - "name": "Quanlong He", - "email": "kyan.ql.he@gmail.com" - }, - { - "name": "R56", - "email": "rviskus@gmail.com" - }, - { - "name": "Raynos", - "email": "raynos2@gmail.com" - }, - { - "name": "Refael Ackermann", - "email": "refael@empeeric.com" - }, - { - "name": "Rich Trott", - "email": "rtrott@gmail.com" - }, - { - "name": "Richard Dingwall", - "email": "rdingwall@gmail.com" - }, - { - "name": "Richard Knop", - "email": "RichardKnop@users.noreply.github.com" - }, - { - "name": "Rico Sta. Cruz", - "email": "rstacruz@users.noreply.github.com" - }, - { - "name": "rmacklin", - "email": "richard.github@nrm.com" - }, - { - "name": "Rob Loach", - "email": "robloach@gmail.com" - }, - { - "name": "Rob Raux", - "email": "rraux@peachworks.com" - }, - { - "name": "Rob Wu", - "email": "rob@robwu.nl" - }, - { - "name": "Robert Rossmann", - "email": "rr.rossmann@me.com" - }, - { - "name": "Romain Prieto", - "email": "romain.prieto@gmail.com" - }, - { - "name": "Roman Neuhauser", - "email": "rneuhauser@suse.cz" - }, - { - "name": "Roman Shtylman", - "email": "shtylman@gmail.com" - }, - { - "name": "Ross Warren", - "email": "rosswarren4@gmail.com" - }, - { - "name": "rotemdan", - "email": "rotemdan@gmail.com" - }, - { - "name": "Russ Bradberry", - "email": "devdazed@me.com" - }, - { - "name": "Russell Munson", - "email": "rmunson@github.com" - }, - { - "name": "Rustem Mustafin", - "email": "mustafin.rustem@gmail.com" - }, - { - "name": "Ryan Hubbard", - "email": "ryanmhubbard@gmail.com" - }, - { - "name": "Ryan Shaw", - "email": "ryan.shaw@min.vc" - }, - { - "name": "Ryan Tablada", - "email": "ryan.tablada@gmail.com" - }, - { - "name": "Ryunosuke SATO", - "email": "tricknotes.rs@gmail.com" - }, - { - "name": "ryym", - "email": "ryym.64@gmail.com" - }, - { - "name": "Salehen Shovon Rahman", - "email": "salehen.rahman@gmail.com" - }, - { - "name": "Sam Mussell", - "email": "smussell@gmail.com" - }, - { - "name": "samuel goldszmidt", - "email": "samuel.goldszmidt@gmail.com" - }, - { - "name": "sarehag", - "email": "joakim.sarehag@gmail.com" - }, - { - "name": "Sasha Koss", - "email": "koss@nocorp.me" - }, - { - "name": "Scott Kao", - "email": "Scottkao85@users.noreply.github.com" - }, - { - "name": "Scott Santucci", - "email": "ScottFreeCode@users.noreply.github.com" - }, - { - "name": "ScottFreeCode", - "email": "ScottFreeCode@users.noreply.github.com" - }, - { - "name": "Sean Lang", - "email": "slang800@gmail.com" - }, - { - "name": "Sebastian Van Sande", - "email": "sebastian@vansande.org" - }, - { - "name": "sebv", - "email": "seb.vincent@gmail.com" - }, - { - "name": "Seiya Konno", - "email": "nulltask@gmail.com" - }, - { - "name": "Sergey Simonchik", - "email": "sergey.simonchik@jetbrains.com" - }, - { - "name": "Sergio Santoro", - "email": "santoro.srg@gmail.com" - }, - { - "name": "Shaine Hatch", - "email": "shaine@squidtree.com" - }, - { - "name": "Shawn Krisman", - "email": "telaviv@github" - }, - { - "name": "Shinnosuke Watanabe", - "email": "snnskwtnb@gmail.com" - }, - { - "name": "silentcloud", - "email": "rjmuqiang@gmail.com" - }, - { - "name": "Silvio Massari", - "email": "silvio.massari@auth0.com" - }, - { - "name": "Simon Gaeremynck", - "email": "gaeremyncks@gmail.com" - }, - { - "name": "Simon Goumaz", - "email": "simon@attentif.ch" - }, - { - "name": "simov", - "email": "simeonvelichkov@gmail.com" - }, - { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "Slobodan Mišković", - "email": "slobodan@miskovic.ca" - }, - { - "name": "slyg", - "email": "syl.faucherand@gmail.com" - }, - { - "name": "Soel", - "email": "shachar.soel@sap.com" - }, - { - "name": "solodynamo", - "email": "bittuf3@gmail.com" - }, - { - "name": "Sorin Iclanzan", - "email": "sorin@iclanzan.com" - }, - { - "name": "Standa Opichal", - "email": "opichals@gmail.com" - }, - { - "name": "startswithaj", - "email": "jake.mc@icloud.com" - }, - { - "name": "Stephen Mathieson", - "email": "smath23@gmail.com" - }, - { - "name": "Steve Mason", - "email": "stevem@brandwatch.com" - }, - { - "name": "Stewart Taylor", - "email": "stewart.taylor1@gmail.com" - }, - { - "name": "Stone", - "email": "baoshi.li@adleida.com" - }, - { - "name": "Sulabh Bista", - "email": "sul4bh@gmail.com" - }, - { - "name": "Sune Simonsen", - "email": "sune@we-knowhow.dk" - }, - { - "name": "Tapiwa Kelvin", - "email": "tapiwa@munzwa.tk" - }, - { - "name": "Ted Yavuzkurt", - "email": "hello@TedY.io" - }, - { - "name": "Teddy Zeenny", - "email": "teddyzeenny@gmail.com" - }, - { - "name": "tgautier@yahoo.com", - "email": "tgautier@gmail.com" - }, - { - "name": "Thedark1337", - "email": "thedark1337@thedark1337.com" - }, - { - "name": "Thomas Broadley", - "email": "buriedunderbooks@hotmail.com" - }, - { - "name": "Thomas Grainger", - "email": "tagrain@gmail.com" - }, - { - "name": "Thomas Vantuycom", - "email": "thomasvantuycom@protonmail.com" - }, - { - "name": "Tim Ehat", - "email": "timehat@gmail.com" - }, - { - "name": "Timo Tijhof", - "email": "krinklemail@gmail.com" - }, - { - "name": "Timothy Gu", - "email": "timothygu99@gmail.com" - }, - { - "name": "Tingan Ho", - "email": "tingan87@gmail.com" - }, - { - "name": "tmont", - "email": "tommy.mont@gmail.com" - }, - { - "name": "Tobias Bieniek", - "email": "tobias.bieniek@gmail.com" - }, - { - "name": "Todd Agulnick", - "email": "tagulnick@onjack.com" - }, - { - "name": "Tom Coquereau", - "email": "tom@thau.me" - }, - { - "name": "Tom Hughes", - "email": "tom@compton.nu" - }, - { - "name": "Tomer Eskenazi", - "email": "tomer.eskenazi@ironsrc.com" - }, - { - "name": "traleig1", - "email": "darkphoenix739@gmail.com" - }, - { - "name": "Travis Jeffery", - "email": "tj@travisjeffery.com" - }, - { - "name": "tripu", - "email": "t@tripu.info" - }, - { - "name": "Tyson Tate", - "email": "tyson@tysontate.com" - }, - { - "name": "Vadim Nikitin", - "email": "vnikiti@ncsu.edu" - }, - { - "name": "Valentin Agachi", - "email": "github-com@agachi.name" - }, - { - "name": "Valeri Karpov", - "email": "val@karpov.io" - }, - { - "name": "Victor", - "email": "victor@turo.com" - }, - { - "name": "Victor Costan", - "email": "costan@gmail.com" - }, - { - "name": "Ville Saukkonen", - "email": "villesau@users.noreply.github.com" - }, - { - "name": "Vivek Ganesan", - "email": "caliberoviv@gmail.com" - }, - { - "name": "vlad", - "email": "iamvlad@gmail.com" - }, - { - "name": "Vlad Magdalin", - "email": "vlad@webflow.com" - }, - { - "name": "Volker Buzek", - "email": "volker.buzek@sap.com" - }, - { - "name": "Wil Moore III", - "email": "wil.moore@wilmoore.com" - }, - { - "name": "Will Langstroth", - "email": "will@langstroth.com" - }, - { - "name": "wsw", - "email": "wsw0108@gmail.com" - }, - { - "name": "Xavier Antoviaque", - "email": "xavier@antoviaque.org" - }, - { - "name": "Xavier Damman", - "email": "xdamman@gmail.com" - }, - { - "name": "XhmikosR", - "email": "xhmikosr@users.sourceforge.net" - }, - { - "name": "Yanis Wang", - "email": "yanis.wang@gmail.com" - }, - { - "name": "yehiyam", - "email": "yehiyam@users.noreply.github.com" - }, - { - "name": "Yoshiya Hinosawa", - "email": "hinosawa@waku-2.com" - }, - { - "name": "Yuest Wang", - "email": "yuestwang@gmail.com" - }, - { - "name": "yuitest", - "email": "yuitest@cjhat.net" - }, - { - "name": "zhiyelee", - "email": "zhiyelee@gmail.com" - }, - { - "name": "Zsolt Takács", - "email": "zsolt@takacs.cc" - }, - { - "name": "现充", - "email": "qixiang.cqx@alibaba-inc.com" - } - ], - "dependencies": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "deprecated": false, - "description": "simple, flexible, fun test framework", - "devDependencies": { - "@mocha/docdash": "^1.0.1", - "assetgraph-builder": "^6.2.0", - "browserify": "^16.2.2", - "chai": "^4.1.2", - "coffee-script": "^1.10.0", - "coveralls": "^3.0.1", - "cross-spawn": "^6.0.5", - "eslint": "^4.19.1", - "eslint-config-prettier": "^2.9.0", - "eslint-config-semistandard": "^12.0.1", - "eslint-config-standard": "^11.0.0", - "eslint-plugin-import": "^2.11.0", - "eslint-plugin-node": "^6.0.1", - "eslint-plugin-prettier": "^2.6.0", - "eslint-plugin-promise": "^3.7.0", - "eslint-plugin-standard": "^3.0.1", - "husky": "^0.14.3", - "jsdoc": "^3.5.5", - "karma": "^2.0.2", - "karma-browserify": "^5.0.5", - "karma-chrome-launcher": "^2.0.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.4", - "karma-sauce-launcher": "^1.2.0", - "lint-staged": "^7.1.0", - "markdown-toc": "^1.2.0", - "markdownlint-cli": "^0.8.1", - "nps": "^5.7.1", - "nyc": "^11.7.3", - "prettier-eslint-cli": "^4.7.1", - "rimraf": "^2.5.2", - "svgo": "^1.0.5", - "through2": "^2.0.1", - "unexpected": "^10.37.7", - "watchify": "^3.7.0" - }, - "engines": { - "node": ">= 4.0.0" - }, - "files": [ - "bin", - "images", - "lib", - "index.js", - "mocha.css", - "mocha.js", - "browser-entry.js" - ], - "homepage": "https://mochajs.org", - "keywords": [ - "mocha", - "test", - "bdd", - "tdd", - "tap" - ], - "license": "MIT", - "logo": "https://cldup.com/S9uQ-cOLYz.svg", - "name": "mocha", - "prettier": { - "singleQuote": true, - "bracketSpacing": false - }, - "repository": { - "type": "git", - "url": "git+https://github.com/mochajs/mocha.git" - }, - "scripts": { - "precommit": "lint-staged", - "prepublishOnly": "nps test clean build", - "start": "nps", - "test": "nps test" - }, - "version": "5.2.0" -} diff --git a/multiplatform-crypto-delegated/node_modules/ms/index.js b/multiplatform-crypto-delegated/node_modules/ms/index.js deleted file mode 100644 index 6a522b1..0000000 --- a/multiplatform-crypto-delegated/node_modules/ms/index.js +++ /dev/null @@ -1,152 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isNaN(val) === false) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtShort(ms) { - if (ms >= d) { - return Math.round(ms / d) + 'd'; - } - if (ms >= h) { - return Math.round(ms / h) + 'h'; - } - if (ms >= m) { - return Math.round(ms / m) + 'm'; - } - if (ms >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - return plural(ms, d, 'day') || - plural(ms, h, 'hour') || - plural(ms, m, 'minute') || - plural(ms, s, 'second') || - ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, n, name) { - if (ms < n) { - return; - } - if (ms < n * 1.5) { - return Math.floor(ms / n) + ' ' + name; - } - return Math.ceil(ms / n) + ' ' + name + 's'; -} diff --git a/multiplatform-crypto-delegated/node_modules/ms/license.md b/multiplatform-crypto-delegated/node_modules/ms/license.md deleted file mode 100644 index 69b6125..0000000 --- a/multiplatform-crypto-delegated/node_modules/ms/license.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Zeit, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/ms/package.json b/multiplatform-crypto-delegated/node_modules/ms/package.json deleted file mode 100644 index 3bda19e..0000000 --- a/multiplatform-crypto-delegated/node_modules/ms/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_from": "ms@2.0.0", - "_id": "ms@2.0.0", - "_inBundle": false, - "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "_location": "/ms", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "ms@2.0.0", - "name": "ms", - "escapedName": "ms", - "rawSpec": "2.0.0", - "saveSpec": null, - "fetchSpec": "2.0.0" - }, - "_requiredBy": [ - "/debug" - ], - "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", - "_spec": "ms@2.0.0", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/debug", - "bugs": { - "url": "https://github.com/zeit/ms/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Tiny milisecond conversion utility", - "devDependencies": { - "eslint": "3.19.0", - "expect.js": "0.3.1", - "husky": "0.13.3", - "lint-staged": "3.4.1", - "mocha": "3.4.1" - }, - "eslintConfig": { - "extends": "eslint:recommended", - "env": { - "node": true, - "es6": true - } - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/zeit/ms#readme", - "license": "MIT", - "lint-staged": { - "*.js": [ - "npm run lint", - "prettier --single-quote --write", - "git add" - ] - }, - "main": "./index", - "name": "ms", - "repository": { - "type": "git", - "url": "git+https://github.com/zeit/ms.git" - }, - "scripts": { - "lint": "eslint lib/* bin/*", - "precommit": "lint-staged", - "test": "mocha tests.js" - }, - "version": "2.0.0" -} diff --git a/multiplatform-crypto-delegated/node_modules/ms/readme.md b/multiplatform-crypto-delegated/node_modules/ms/readme.md deleted file mode 100644 index 84a9974..0000000 --- a/multiplatform-crypto-delegated/node_modules/ms/readme.md +++ /dev/null @@ -1,51 +0,0 @@ -# ms - -[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) -[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/) - -Use this package to easily convert various time formats to milliseconds. - -## Examples - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('1y') // 31557600000 -ms('100') // 100 -``` - -### Convert from milliseconds - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(ms('10 hours')) // "10h" -``` - -### Time format written-out - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -## Features - -- Works both in [node](https://nodejs.org) and in the browser. -- If a number is supplied to `ms`, a string with a unit is returned. -- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`). -- If you pass a string with a number and a valid unit, the number of equivalent ms is returned. - -## Caught a bug? - -1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device -2. Link the package to the global module directory: `npm link` -3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms! - -As always, you can run the tests using: `npm test` diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js deleted file mode 100644 index 9b1fb12..0000000 --- a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js +++ /dev/null @@ -1,3132 +0,0 @@ -(function (_, Kotlin, $module$bignum) { - 'use strict'; - var $$importsForInline$$ = _.$$importsForInline$$ || (_.$$importsForInline$$ = {}); - var Kind_OBJECT = Kotlin.Kind.OBJECT; - var chunked = Kotlin.kotlin.collections.chunked_ba2ldo$; - var joinToString = Kotlin.kotlin.collections.joinToString_fmv235$; - var println = Kotlin.kotlin.io.println_s8jyv4$; - var toString = Kotlin.kotlin.text.toString_aogav3$; - var toString_0 = Kotlin.kotlin.text.toString_hc3rh$; - var defineInlineFunction = Kotlin.defineInlineFunction; - var wrapFunction = Kotlin.wrapFunction; - var RuntimeException_init = Kotlin.kotlin.RuntimeException_init_pdl1vj$; - var chunked_0 = Kotlin.kotlin.text.chunked_94bcnn$; - var toUByte = Kotlin.kotlin.text.toUByte_6ic1pp$; - var UInt = Kotlin.kotlin.UInt; - var joinToString_0 = Kotlin.kotlin.collections.joinToString_cgipc5$; - var toString_1 = Kotlin.kotlin.text.toString_dqglrj$; - var ArrayList_init = Kotlin.kotlin.collections.ArrayList_init_ww73n8$; - var ULong_init = Kotlin.kotlin.ULong; - var UByte_init = Kotlin.kotlin.UByte; - var toByte = Kotlin.toByte; - var copyToArray = Kotlin.kotlin.collections.copyToArray; - var collectionSizeOrDefault = Kotlin.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var uintCompare = Kotlin.kotlin.uintCompare_vux9f0$; - var Kind_INTERFACE = Kotlin.Kind.INTERFACE; - var encodeToByteArray = Kotlin.kotlin.text.encodeToByteArray_pdl1vz$; - var toList = Kotlin.kotlin.collections.toList_7wnvza$; - var toBigInteger = $module$bignum.com.ionspin.kotlin.bignum.integer.toBigInteger_s8ev3n$; - var toList_0 = Kotlin.kotlin.collections.toList_us0mfu$; - var IllegalStateException_init = Kotlin.kotlin.IllegalStateException_init_pdl1vj$; - var until = Kotlin.kotlin.ranges.until_dqglrj$; - var BigInteger = $module$bignum.com.ionspin.kotlin.bignum.integer.BigInteger; - var Kind_CLASS = Kotlin.Kind.CLASS; - var Array_0 = Array; - var L255 = Kotlin.Long.fromInt(255); - var emptyList = Kotlin.kotlin.collections.emptyList_287e2$; - var slice = Kotlin.kotlin.collections.slice_l0m14x$; - var arrayCopy = Kotlin.kotlin.collections.arrayCopy; - var ArrayList_init_0 = Kotlin.kotlin.collections.ArrayList_init_287e2$; - var addAll = Kotlin.kotlin.collections.addAll_ipc267$; - var copyOfRange = Kotlin.kotlin.collections.copyOfRange_5f8l3u$; - var UByteArray = Kotlin.kotlin.UByteArray; - var flatten = Kotlin.kotlin.collections.flatten_yrqxlj$; - var get_indices = Kotlin.kotlin.collections.get_indices_m7z4lg$; - var println_0 = Kotlin.kotlin.io.println; - var uintDivide = Kotlin.kotlin.uintDivide_oqfnby$; - var uintRemainder = Kotlin.kotlin.uintRemainder_oqfnby$; - var reversed = Kotlin.kotlin.collections.reversed_7wnvza$; - var last = Kotlin.kotlin.collections.last_2p1efm$; - var last_0 = Kotlin.kotlin.collections.last_us0mfu$; - var dropLast = Kotlin.kotlin.collections.dropLast_8ujjk8$; - var dropLast_0 = Kotlin.kotlin.collections.dropLast_yzln2o$; - var reversed_0 = Kotlin.kotlin.collections.reversed_us0mfu$; - var List = Kotlin.kotlin.collections.List; - var throwCCE = Kotlin.throwCCE; - var toTypedArray = Kotlin.kotlin.collections.toTypedArray_o5f02i$; - var contentEquals = Kotlin.arrayEquals; - var contentHashCode = Kotlin.arrayHashCode; - var ModularBigInteger = $module$bignum.com.ionspin.kotlin.bignum.modular.ModularBigInteger; - var Endianness = $module$bignum.com.ionspin.kotlin.bignum.Endianness; - var Enum = Kotlin.kotlin.Enum; - var throwISE = Kotlin.throwISE; - AesKey$Aes128Key.prototype = Object.create(AesKey.prototype); - AesKey$Aes128Key.prototype.constructor = AesKey$Aes128Key; - AesKey$Aes192Key.prototype = Object.create(AesKey.prototype); - AesKey$Aes192Key.prototype.constructor = AesKey$Aes192Key; - AesKey$Aes256Key.prototype = Object.create(AesKey.prototype); - AesKey$Aes256Key.prototype.constructor = AesKey$Aes256Key; - Mode.prototype = Object.create(Enum.prototype); - Mode.prototype.constructor = Mode; - function Config() { - Config_instance = this; - this.DEBUG = false; - } - Config.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Config', - interfaces: [] - }; - var Config_instance = null; - function Config_getInstance() { - if (Config_instance === null) { - new Config(); - } - return Config_instance; - } - function hexColumsPrint$lambda$lambda(it) { - return it.toUpperCase(); - } - function hexColumsPrint($receiver) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(toString_1(item, 16)); - } - var printout = chunked(destination, 16); - var tmp$_0; - tmp$_0 = printout.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - println(joinToString(element, ' ', void 0, void 0, void 0, void 0, hexColumsPrint$lambda$lambda)); - } - } - function hexColumsPrint$lambda$lambda_0(it) { - return it.toUpperCase(); - } - function hexColumsPrint_0($receiver) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(toString(item, 16)); - } - var printout = chunked(destination, 16); - var tmp$_0; - tmp$_0 = printout.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - println(joinToString(element, ' ', void 0, void 0, void 0, void 0, hexColumsPrint$lambda$lambda_0)); - } - } - function hexColumsPrint$lambda$lambda_1(it) { - return it.toUpperCase(); - } - function hexColumsPrint_1($receiver) { - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(toString_0(item, 16)); - } - var printout = chunked(destination, 3); - var tmp$_0; - tmp$_0 = printout.iterator(); - while (tmp$_0.hasNext()) { - var element = tmp$_0.next(); - println(joinToString(element, ' ', void 0, void 0, void 0, void 0, hexColumsPrint$lambda$lambda_1)); - } - } - var chunked_1 = defineInlineFunction('multiplatform-crypto.com.ionspin.kotlin.crypto.chunked_r20n03$', wrapFunction(function () { - var emptyList = Kotlin.kotlin.collections.emptyList_287e2$; - var wrapFunction = Kotlin.wrapFunction; - var until = Kotlin.kotlin.ranges.until_dqglrj$; - var slice = Kotlin.kotlin.collections.slice_l0m14x$; - var ArrayList_init = Kotlin.kotlin.collections.ArrayList_init_ww73n8$; - var collectionSizeOrDefault = Kotlin.kotlin.collections.collectionSizeOrDefault_ba2ldo$; - var copyToArray = Kotlin.kotlin.collections.copyToArray; - var chunked$lambda = wrapFunction(function () { - var copyToArray = Kotlin.kotlin.collections.copyToArray; - return function (it) { - return copyToArray(it); - }; - }); - return function (T_0, isT, $receiver, sliceSize) { - var last = $receiver.length % sliceSize; - var hasLast = last !== 0; - var numberOfSlices = $receiver.length / sliceSize | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice($receiver, until(Kotlin.imul(i, sliceSize), Kotlin.imul(i + 1 | 0, sliceSize)))); - } - if (hasLast) { - result.add_11rb$(slice($receiver, until(Kotlin.imul(numberOfSlices, sliceSize), $receiver.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - return copyToArray(destination); - }; - })); - function rotateRight($receiver, places) { - var tmp$ = new UInt($receiver.data >>> places); - var bitCount = 32 - places | 0; - var other = new UInt($receiver.data << bitCount); - return new UInt(tmp$.data ^ other.data); - } - function rotateRight_0($receiver, places) { - var tmp$ = new ULong_init($receiver.data.shiftRightUnsigned(places)); - var bitCount = 64 - places | 0; - var other = new ULong_init($receiver.data.shiftLeft(bitCount)); - return new ULong_init(tmp$.data.xor(other.data)); - } - function xor($receiver, other) { - if ($receiver.length !== other.length) { - throw RuntimeException_init('Operands of different sizes are not supported yet'); - } - var $receiver_0 = $receiver.slice(); - var destination = ArrayList_init($receiver_0.length); - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver_0.length; ++tmp$) { - var item = $receiver_0[tmp$]; - var tmp$_1 = destination.add_11rb$; - var other_0 = other[tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0]; - tmp$_1.call(destination, new UByte_init(toByte(item.data ^ other_0.data))); - } - return copyToArray(destination); - } - function hexStringToUByteArray($receiver) { - var $receiver_0 = chunked_0($receiver, 2); - var destination = ArrayList_init(collectionSizeOrDefault($receiver_0, 10)); - var tmp$; - tmp$ = $receiver_0.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(toUByte(item, 16)); - } - return copyToArray(destination); - } - function toHexString$lambda(it) { - var other = new UInt(15); - if (uintCompare((new UInt(it.data & 255)).data, other.data) <= 0) { - return '0' + toString(it, 16); - } - else { - return toString(it, 16); - } - } - function toHexString($receiver) { - return joinToString_0($receiver, '', void 0, void 0, void 0, void 0, toHexString$lambda); - } - function Hash() { - } - Hash.$metadata$ = { - kind: Kind_INTERFACE, - simpleName: 'Hash', - interfaces: [] - }; - function UpdatableHash() { - } - UpdatableHash.$metadata$ = { - kind: Kind_INTERFACE, - simpleName: 'UpdatableHash', - interfaces: [Hash] - }; - function StatelessHash() { - } - StatelessHash.prototype.digest_5pksov$ = function (inputString, key, hashLength, callback$default) { - if (key === void 0) - key = null; - if (hashLength === void 0) - hashLength = this.MAX_HASH_BYTES; - return callback$default ? callback$default(inputString, key, hashLength) : this.digest_5pksov$$default(inputString, key, hashLength); - }; - StatelessHash.prototype.digest_o2z9gi$ = function (inputMessage, key, hashLength, callback$default) { - if (inputMessage === void 0) { - inputMessage = []; - } - if (key === void 0) { - key = []; - } - if (hashLength === void 0) - hashLength = this.MAX_HASH_BYTES; - return callback$default ? callback$default(inputMessage, key, hashLength) : this.digest_o2z9gi$$default(inputMessage, key, hashLength); - }; - StatelessHash.$metadata$ = { - kind: Kind_INTERFACE, - simpleName: 'StatelessHash', - interfaces: [Hash] - }; - var chunked$lambda = wrapFunction(function () { - var copyToArray = Kotlin.kotlin.collections.copyToArray; - return function (it) { - return copyToArray(it); - }; - }); - function Blake2b(key, hashLength) { - Blake2b$Companion_getInstance(); - if (key === void 0) - key = null; - if (hashLength === void 0) - hashLength = 64; - this.key = key; - this.hashLength = hashLength; - this.MAX_HASH_BYTES_b5cfdo$_0 = Blake2b$Companion_getInstance().MAX_HASH_BYTES; - this.h = Blake2b$Companion_getInstance().iv_0.slice(); - this.counter = BigInteger.Companion.ZERO; - this.bufferCounter = 0; - var array = Array_0(128); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = new UByte_init(0); - } - this.buffer = array; - var tmp$_0, tmp$_1, tmp$_2, tmp$_3; - var $this = this.h[0]; - var other = new ULong_init(Kotlin.Long.fromInt(16842752)); - tmp$_3 = new ULong_init($this.data.xor(other.data)); - tmp$_2 = (tmp$_1 = (tmp$_0 = this.key) != null ? new ULong_init((new ULong_init(Kotlin.Long.fromInt(tmp$_0.length))).data.shiftLeft(8)) : null) != null ? tmp$_1 : new ULong_init(Kotlin.Long.ZERO); - var tmp$_4 = this.h; - var tmp$_5 = new ULong_init(tmp$_3.data.xor(tmp$_2.data)); - var $receiver = this.hashLength; - var other_0 = new ULong_init(Kotlin.Long.fromInt($receiver)); - tmp$_4[0] = new ULong_init(tmp$_5.data.xor(other_0.data)); - var $receiver_0 = this.key; - var tmp$_6 = $receiver_0 == null; - if (!tmp$_6) { - tmp$_6 = $receiver_0.length === 0; - } - if (!tmp$_6) { - this.appendToBuffer_0(Blake2b$Companion_getInstance().padToBlock_0(this.key), this.bufferCounter); - } - } - function Blake2b$Companion() { - Blake2b$Companion_instance = this; - this.BITS_IN_WORD = 64; - this.ROUNDS_IN_COMPRESS = 12; - this.BLOCK_BYTES = 128; - this.MAX_HASH_BYTES_kbpvc6$_0 = 64; - this.MIN_HASH_BYTES = 1; - this.MAX_KEY_BYTES = 64; - this.MIN_KEY_BYTES = 0; - this.MAX_INPUT_BYTES = toBigInteger(2).shl_za3lpa$(128); - this.sigma_0 = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3], [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4], [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8], [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13], [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9], [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11], [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10], [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5], [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0]]; - this.iv_0 = [new ULong_init(new Kotlin.Long(-205731576, 1779033703)), new ULong_init(new Kotlin.Long(-2067093701, -1150833019)), new ULong_init(new Kotlin.Long(-23791573, 1013904242)), new ULong_init(new Kotlin.Long(1595750129, -1521486534)), new ULong_init(new Kotlin.Long(-1377402159, 1359893119)), new ULong_init(new Kotlin.Long(725511199, -1694144372)), new ULong_init(new Kotlin.Long(-79577749, 528734635)), new ULong_init(new Kotlin.Long(327033209, 1541459225))]; - this.R1 = 32; - this.R2 = 24; - this.R3 = 16; - this.R4 = 63; - } - Object.defineProperty(Blake2b$Companion.prototype, 'MAX_HASH_BYTES', { - get: function () { - return this.MAX_HASH_BYTES_kbpvc6$_0; - } - }); - Blake2b$Companion.prototype.mixRound_r29y2p$ = function (input, message, round) { - var v = input; - var selectedSigma = this.sigma_0[round % 10]; - v = this.mix_0(v, 0, 4, 8, 12, message[selectedSigma[0]], message[selectedSigma[1]]); - v = this.mix_0(v, 1, 5, 9, 13, message[selectedSigma[2]], message[selectedSigma[3]]); - v = this.mix_0(v, 2, 6, 10, 14, message[selectedSigma[4]], message[selectedSigma[5]]); - v = this.mix_0(v, 3, 7, 11, 15, message[selectedSigma[6]], message[selectedSigma[7]]); - v = this.mix_0(v, 0, 5, 10, 15, message[selectedSigma[8]], message[selectedSigma[9]]); - v = this.mix_0(v, 1, 6, 11, 12, message[selectedSigma[10]], message[selectedSigma[11]]); - v = this.mix_0(v, 2, 7, 8, 13, message[selectedSigma[12]], message[selectedSigma[13]]); - v = this.mix_0(v, 3, 4, 9, 14, message[selectedSigma[14]], message[selectedSigma[15]]); - return v; - }; - Blake2b$Companion.prototype.mix_0 = function (v, a, b, c, d, x, y) { - var $this = v[a]; - var other = v[b]; - v[a] = new ULong_init((new ULong_init($this.data.add(other.data))).data.add(x.data)); - var $this_0 = v[d]; - var other_0 = v[a]; - v[d] = rotateRight_0(new ULong_init($this_0.data.xor(other_0.data)), 32); - var $this_1 = v[c]; - var other_1 = v[d]; - v[c] = new ULong_init($this_1.data.add(other_1.data)); - var $this_2 = v[b]; - var other_2 = v[c]; - v[b] = rotateRight_0(new ULong_init($this_2.data.xor(other_2.data)), 24); - var $this_3 = v[a]; - var other_3 = v[b]; - v[a] = new ULong_init((new ULong_init($this_3.data.add(other_3.data))).data.add(y.data)); - var $this_4 = v[d]; - var other_4 = v[a]; - v[d] = rotateRight_0(new ULong_init($this_4.data.xor(other_4.data)), 16); - var $this_5 = v[c]; - var other_5 = v[d]; - v[c] = new ULong_init($this_5.data.add(other_5.data)); - var $this_6 = v[b]; - var other_6 = v[c]; - v[b] = rotateRight_0(new ULong_init($this_6.data.xor(other_6.data)), 63); - return v; - }; - function Blake2b$Companion$compress$lambda$lambda(it) { - return it.toUpperCase(); - } - Blake2b$Companion.prototype.compress_c1cv33$ = function (h, input, offsetCounter, finalBlock) { - var array = Array_0(16); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var init$result; - if (i >= 0 && i <= 7) { - init$result = h[i]; - } - else { - init$result = this.iv_0[i - 8 | 0]; - } - array[i] = init$result; - } - var v = array; - var array_0 = Array_0(16); - var tmp$_0; - tmp$_0 = array_0.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_0; i_0++) { - array_0[i_0] = new ULong_init(Kotlin.Long.ZERO); - } - var tmp$_1, tmp$_0_0; - var index = 0; - var accumulator = array_0; - for (tmp$_1 = 0; tmp$_1 !== input.length; ++tmp$_1) { - var element = input[tmp$_1]; - var index_0 = (tmp$_0_0 = index, index = tmp$_0_0 + 1 | 0, tmp$_0_0); - var acc = accumulator; - var slot = index_0 / 8 | 0; - var position = index_0 % 8; - var tmp$_2 = acc[slot]; - var $this = new ULong_init(Kotlin.Long.fromInt(element.data).and(L255)); - var bitCount = position * 8 | 0; - var other = new ULong_init($this.data.shiftLeft(bitCount)); - acc[slot] = new ULong_init(tmp$_2.data.add(other.data)); - accumulator = acc; - } - var m = accumulator; - if (Config_getInstance().DEBUG) { - var destination = ArrayList_init(m.length); - var tmp$_3; - for (tmp$_3 = 0; tmp$_3 !== m.length; ++tmp$_3) { - var item = m[tmp$_3]; - destination.add_11rb$(toString_0(item, 16)); - } - var printout = chunked(destination, 4); - var tmp$_4; - tmp$_4 = printout.iterator(); - while (tmp$_4.hasNext()) { - var element_0 = tmp$_4.next(); - println(joinToString(element_0, ' ', void 0, void 0, void 0, void 0, Blake2b$Companion$compress$lambda$lambda)); - } - println('Offset ' + offsetCounter); - } - var $this_0 = v[12]; - var other_0 = offsetCounter.ulongValue_6taknv$(); - v[12] = new ULong_init($this_0.data.xor(other_0.data)); - var $this_1 = v[13]; - var other_1 = offsetCounter.shr_za3lpa$(64).ulongValue_6taknv$(); - v[13] = new ULong_init($this_1.data.xor(other_1.data)); - if (finalBlock) { - v[14] = new ULong_init(v[14].data.inv()); - } - for (var i_1 = 0; i_1 < 12; i_1++) { - this.mixRound_r29y2p$(v, m, i_1); - } - for (var i_2 = 0; i_2 <= 7; i_2++) { - var $this_2 = h[i_2]; - var other_2 = v[i_2]; - var $this_3 = new ULong_init($this_2.data.xor(other_2.data)); - var other_3 = v[i_2 + 8 | 0]; - h[i_2] = new ULong_init($this_3.data.xor(other_3.data)); - } - return h; - }; - Blake2b$Companion.prototype.digest_5pksov$$default = function (inputString, key, hashLength) { - var tmp$; - var $receiver = encodeToByteArray(inputString); - var destination = ArrayList_init($receiver.length); - var tmp$_0; - for (tmp$_0 = 0; tmp$_0 !== $receiver.length; ++tmp$_0) { - var item = $receiver[tmp$_0]; - destination.add_11rb$(new UByte_init(item)); - } - var array = copyToArray(toList(destination)); - var tmp$_1; - if (key != null) { - var $receiver_0 = encodeToByteArray(key); - var destination_0 = ArrayList_init($receiver_0.length); - var tmp$_2; - for (tmp$_2 = 0; tmp$_2 !== $receiver_0.length; ++tmp$_2) { - var item_0 = $receiver_0[tmp$_2]; - destination_0.add_11rb$(new UByte_init(item_0)); - } - tmp$_1 = copyToArray(destination_0); - } - else - tmp$_1 = null; - var keyBytes = (tmp$ = tmp$_1) != null ? tmp$ : []; - return this.digest_o2z9gi$(array, keyBytes); - }; - Blake2b$Companion.prototype.digest_o2z9gi$$default = function (inputMessage, key, hashLength) { - var tmp$, tmp$_0, tmp$_1, tmp$_2; - var last = inputMessage.length % 128; - var hasLast = last !== 0; - var numberOfSlices = inputMessage.length / 128 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(inputMessage, until(Kotlin.imul(i, 128), Kotlin.imul(i + 1 | 0, 128)))); - } - if (hasLast) { - result.add_11rb$(slice(inputMessage, until(Kotlin.imul(numberOfSlices, 128), inputMessage.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$_3; - tmp$_3 = result.iterator(); - while (tmp$_3.hasNext()) { - var item = tmp$_3.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunkedMessage = copyToArray(destination); - var h = this.iv_0.slice(); - var $this = h[0]; - var other = new ULong_init(Kotlin.Long.fromInt(16842752)); - var tmp$_4 = new ULong_init($this.data.xor(other.data)); - var other_0 = new ULong_init((new ULong_init(Kotlin.Long.fromInt(key.length))).data.shiftLeft(8)); - var tmp$_5 = new ULong_init(tmp$_4.data.xor(other_0.data)); - var other_1 = new ULong_init(Kotlin.Long.fromInt(hashLength)); - h[0] = new ULong_init(tmp$_5.data.xor(other_1.data)); - if (key.length === 0) { - if (chunkedMessage.length === 0) { - var array = Array_0(1); - var tmp$_6; - tmp$_6 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_6; i_0++) { - var array_0 = Array_0(128); - var tmp$_7; - tmp$_7 = array_0.length - 1 | 0; - for (var i_1 = 0; i_1 <= tmp$_7; i_1++) { - array_0[i_1] = new UByte_init(0); - } - array[i_0] = array_0; - } - tmp$ = array; - } - else { - tmp$ = chunkedMessage; - } - } - else { - tmp$ = [this.padToBlock_0(key)].concat(chunkedMessage); - } - var message = tmp$; - if (message.length > 1) { - tmp$_0 = message.length - 1 | 0; - for (var i_2 = 0; i_2 < tmp$_0; i_2++) { - var $receiver = this.compress_c1cv33$(h, message[i_2], toBigInteger((i_2 + 1 | 0) * 128 | 0), false); - arrayCopy($receiver, h, 0, 0, $receiver.length); - } - } - switch (message.length) { - case 0: - tmp$_1 = 0; - break; - case 1: - tmp$_1 = message[message.length - 1 | 0].length; - break; - default:tmp$_1 = ((message.length - 1 | 0) * 128 | 0) + message[message.length - 1 | 0].length | 0; - break; - } - var lastSize = tmp$_1; - if (!(message.length === 0)) { - tmp$_2 = this.padToBlock_0(message[message.length - 1 | 0]); - } - else { - var array_1 = Array_0(16); - var tmp$_8; - tmp$_8 = array_1.length - 1 | 0; - for (var i_3 = 0; i_3 <= tmp$_8; i_3++) { - array_1[i_3] = new UByte_init(0); - } - tmp$_2 = array_1; - } - var lastBlockPadded = tmp$_2; - var $receiver_0 = this.compress_c1cv33$(h, lastBlockPadded, toBigInteger(lastSize), true); - arrayCopy($receiver_0, h, 0, 0, $receiver_0.length); - return this.formatResult_0(h); - }; - Blake2b$Companion.prototype.formatResult_0 = function (h) { - var destination = ArrayList_init(h.length); - var tmp$; - for (tmp$ = 0; tmp$ !== h.length; ++tmp$) { - var item = h[tmp$]; - var tmp$_0 = destination.add_11rb$; - var other = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_1 = new UByte_init(toByte((new ULong_init(item.data.and(other.data))).data.toInt())); - var $this = new ULong_init(item.data.shiftRightUnsigned(8)); - var other_0 = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_2 = new UByte_init(toByte((new ULong_init($this.data.and(other_0.data))).data.toInt())); - var $this_0 = new ULong_init(item.data.shiftRightUnsigned(16)); - var other_1 = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_3 = new UByte_init(toByte((new ULong_init($this_0.data.and(other_1.data))).data.toInt())); - var $this_1 = new ULong_init(item.data.shiftRightUnsigned(24)); - var other_2 = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_4 = new UByte_init(toByte((new ULong_init($this_1.data.and(other_2.data))).data.toInt())); - var $this_2 = new ULong_init(item.data.shiftRightUnsigned(32)); - var other_3 = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_5 = new UByte_init(toByte((new ULong_init($this_2.data.and(other_3.data))).data.toInt())); - var $this_3 = new ULong_init(item.data.shiftRightUnsigned(40)); - var other_4 = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_6 = new UByte_init(toByte((new ULong_init($this_3.data.and(other_4.data))).data.toInt())); - var $this_4 = new ULong_init(item.data.shiftRightUnsigned(48)); - var other_5 = new ULong_init(Kotlin.Long.fromInt(255)); - var tmp$_7 = new UByte_init(toByte((new ULong_init($this_4.data.and(other_5.data))).data.toInt())); - var $this_5 = new ULong_init(item.data.shiftRightUnsigned(56)); - var other_6 = new ULong_init(Kotlin.Long.fromInt(255)); - tmp$_0.call(destination, [tmp$_1, tmp$_2, tmp$_3, tmp$_4, tmp$_5, tmp$_6, tmp$_7, new UByte_init(toByte((new ULong_init($this_5.data.and(other_6.data))).data.toInt()))]); - } - var destination_0 = ArrayList_init_0(); - var tmp$_8; - tmp$_8 = destination.iterator(); - while (tmp$_8.hasNext()) { - var element = tmp$_8.next(); - var list = toList_0(element); - addAll(destination_0, list); - } - return copyToArray(destination_0); - }; - Blake2b$Companion.prototype.padToBlock_0 = function (unpadded) { - if (unpadded.length === 128) { - return unpadded; - } - if (unpadded.length > 128) { - throw IllegalStateException_init('Block larger than 128 bytes'); - } - var array = Array_0(128); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var init$result; - if (0 <= i && i < unpadded.length) { - init$result = unpadded[i]; - } - else { - init$result = new UByte_init(0); - } - array[i] = init$result; - } - return array; - }; - Blake2b$Companion.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Companion', - interfaces: [StatelessHash] - }; - var Blake2b$Companion_instance = null; - function Blake2b$Companion_getInstance() { - if (Blake2b$Companion_instance === null) { - new Blake2b$Companion(); - } - return Blake2b$Companion_instance; - } - Object.defineProperty(Blake2b.prototype, 'MAX_HASH_BYTES', { - get: function () { - return this.MAX_HASH_BYTES_b5cfdo$_0; - } - }); - Blake2b.prototype.update_ummv9a$ = function (data) { - if (data.length === 0) { - throw RuntimeException_init('Updating with empty array is not allowed. If you need empty hash, just call digest without updating'); - } - if ((this.bufferCounter + data.length | 0) < 128) - this.appendToBuffer_0(data, this.bufferCounter); - else if ((this.bufferCounter + data.length | 0) >= 128) { - var last = data.length % 128; - var hasLast = last !== 0; - var numberOfSlices = data.length / 128 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(data, until(Kotlin.imul(i, 128), Kotlin.imul(i + 1 | 0, 128)))); - } - if (hasLast) { - result.add_11rb$(slice(data, until(Kotlin.imul(numberOfSlices, 128), data.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunked = copyToArray(destination); - var tmp$_0; - for (tmp$_0 = 0; tmp$_0 !== chunked.length; ++tmp$_0) { - var element = chunked[tmp$_0]; - if ((this.bufferCounter + element.length | 0) < 128) { - this.appendToBuffer_0(element, this.bufferCounter); - } - else { - arrayCopy(element, this.buffer, this.bufferCounter, 0, 128 - this.bufferCounter | 0); - this.counter = this.counter.plus_za3lpa$(128); - this.consumeBlock_0(this.buffer); - var array = Array_0(128); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_1; i_0++) { - var init$result; - var tmp$_2; - tmp$_2 = element.length - (128 - this.bufferCounter) | 0; - if (0 <= i_0 && i_0 < tmp$_2) { - init$result = element[i_0 + (128 - this.bufferCounter) | 0]; - } - else { - init$result = new UByte_init(0); - } - array[i_0] = init$result; - } - this.buffer = array; - this.bufferCounter = element.length - (128 - this.bufferCounter) | 0; - } - } - } - }; - Blake2b.prototype.update_61zpoe$ = function (data) { - var $receiver = encodeToByteArray(data); - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(new UByte_init(item)); - } - this.update_ummv9a$(copyToArray(destination)); - }; - Blake2b.prototype.appendToBuffer_0 = function (array, start) { - arrayCopy(array, this.buffer, start, 0, array.length); - this.bufferCounter = this.bufferCounter + array.length | 0; - }; - Blake2b.prototype.consumeBlock_0 = function (block) { - this.h = Blake2b$Companion_getInstance().compress_c1cv33$(this.h, block, this.counter, false); - }; - Blake2b.prototype.digest = function () { - var lastBlockPadded = Blake2b$Companion_getInstance().padToBlock_0(this.buffer); - this.counter = this.counter.plus_za3lpa$(this.bufferCounter); - Blake2b$Companion_getInstance().compress_c1cv33$(this.h, lastBlockPadded, this.counter, true); - var result = Blake2b$Companion_getInstance().formatResult_0(this.h); - this.reset_0(); - return result; - }; - Blake2b.prototype.digestString = function () { - var $receiver = this.digest(); - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(toString(item, 16)); - } - return joinToString(destination, ''); - }; - Blake2b.prototype.reset_0 = function () { - this.h = Blake2b$Companion_getInstance().iv_0.slice(); - this.counter = BigInteger.Companion.ZERO; - this.bufferCounter = 0; - var array = Array_0(128); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = new UByte_init(0); - } - this.buffer = array; - }; - Blake2b.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Blake2b', - interfaces: [UpdatableHash] - }; - function Blake2b_init(key, requestedHashLenght, $this) { - if (requestedHashLenght === void 0) - requestedHashLenght = 64; - $this = $this || Object.create(Blake2b.prototype); - var tmp$, tmp$_0, tmp$_1; - var tmp$_2; - if ((tmp$ = key != null ? encodeToByteArray(key) : null) != null) { - var destination = ArrayList_init(tmp$.length); - var tmp$_3; - for (tmp$_3 = 0; tmp$_3 !== tmp$.length; ++tmp$_3) { - var item = tmp$[tmp$_3]; - destination.add_11rb$(new UByte_init(item)); - } - tmp$_2 = destination; - } - else - tmp$_2 = null; - Blake2b.call($this, (tmp$_1 = (tmp$_0 = tmp$_2) != null ? copyToArray(tmp$_0) : null) != null ? tmp$_1 : [], requestedHashLenght); - return $this; - } - var chunked$lambda_0 = wrapFunction(function () { - var copyToArray = Kotlin.kotlin.collections.copyToArray; - return function (it) { - return copyToArray(it); - }; - }); - function Sha256() { - Sha256$Companion_getInstance(); - this.MAX_HASH_BYTES_mqxonl$_0 = 32; - this.h = Sha256$Companion_getInstance().iv.slice(); - this.counter = 0; - this.bufferCounter = 0; - var array = Array_0(64); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = new UByte_init(0); - } - this.buffer = array; - } - Object.defineProperty(Sha256.prototype, 'MAX_HASH_BYTES', { - get: function () { - return this.MAX_HASH_BYTES_mqxonl$_0; - } - }); - function Sha256$Companion() { - Sha256$Companion_instance = this; - this.BLOCK_SIZE = 512; - this.BLOCK_SIZE_IN_BYTES = 64; - this.UINT_MASK = new UInt(-1); - this.BYTE_MASK_FROM_ULONG = new ULong_init(Kotlin.Long.fromInt(255)); - this.BYTE_MASK_FROM_UINT = new UInt(255); - this.MAX_HASH_BYTES_at6ood$_0 = 32; - this.iv = [new UInt(1779033703), new UInt(-1150833019), new UInt(1013904242), new UInt(-1521486534), new UInt(1359893119), new UInt(-1694144372), new UInt(528734635), new UInt(1541459225)]; - this.k = [new UInt(1116352408), new UInt(1899447441), new UInt(-1245643825), new UInt(-373957723), new UInt(961987163), new UInt(1508970993), new UInt(-1841331548), new UInt(-1424204075), new UInt(-670586216), new UInt(310598401), new UInt(607225278), new UInt(1426881987), new UInt(1925078388), new UInt(-2132889090), new UInt(-1680079193), new UInt(-1046744716), new UInt(-459576895), new UInt(-272742522), new UInt(264347078), new UInt(604807628), new UInt(770255983), new UInt(1249150122), new UInt(1555081692), new UInt(1996064986), new UInt(-1740746414), new UInt(-1473132947), new UInt(-1341970488), new UInt(-1084653625), new UInt(-958395405), new UInt(-710438585), new UInt(113926993), new UInt(338241895), new UInt(666307205), new UInt(773529912), new UInt(1294757372), new UInt(1396182291), new UInt(1695183700), new UInt(1986661051), new UInt(-2117940946), new UInt(-1838011259), new UInt(-1564481375), new UInt(-1474664885), new UInt(-1035236496), new UInt(-949202525), new UInt(-778901479), new UInt(-694614492), new UInt(-200395387), new UInt(275423344), new UInt(430227734), new UInt(506948616), new UInt(659060556), new UInt(883997877), new UInt(958139571), new UInt(1322822218), new UInt(1537002063), new UInt(1747873779), new UInt(1955562222), new UInt(2024104815), new UInt(-2067236844), new UInt(-1933114872), new UInt(-1866530822), new UInt(-1538233109), new UInt(-1090935817), new UInt(-965641998)]; - } - Object.defineProperty(Sha256$Companion.prototype, 'MAX_HASH_BYTES', { - get: function () { - return this.MAX_HASH_BYTES_at6ood$_0; - } - }); - Sha256$Companion.prototype.digest_5pksov$$default = function (inputString, key, hashLength) { - var tmp$, tmp$_0; - var $receiver = encodeToByteArray(inputString); - var destination = ArrayList_init($receiver.length); - var tmp$_1; - for (tmp$_1 = 0; tmp$_1 !== $receiver.length; ++tmp$_1) { - var item = $receiver[tmp$_1]; - destination.add_11rb$(new UByte_init(item)); - } - tmp$ = copyToArray(destination); - var tmp$_2; - if (key != null) { - var $receiver_0 = encodeToByteArray(key); - var destination_0 = ArrayList_init($receiver_0.length); - var tmp$_3; - for (tmp$_3 = 0; tmp$_3 !== $receiver_0.length; ++tmp$_3) { - var item_0 = $receiver_0[tmp$_3]; - destination_0.add_11rb$(new UByte_init(item_0)); - } - tmp$_2 = copyToArray(destination_0); - } - else - tmp$_2 = null; - return this.digest_o2z9gi$(tmp$, (tmp$_0 = tmp$_2) != null ? tmp$_0 : [], hashLength); - }; - Sha256$Companion.prototype.digest_o2z9gi$$default = function (inputMessage, key, hashLength) { - var h = {v: this.iv.slice()}; - var expansionArray = this.createExpansionArray_za3lpa$(inputMessage.length); - var tmp$ = inputMessage.concat(expansionArray); - var $receiver = inputMessage.length * 8 | 0; - var elements = this.toPaddedByteArray_0(new ULong_init(Kotlin.Long.fromInt($receiver))); - var $receiver_0 = tmp$.concat(elements); - var last = $receiver_0.length % 64; - var hasLast = last !== 0; - var numberOfSlices = $receiver_0.length / 64 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice($receiver_0, until(Kotlin.imul(i, 64), Kotlin.imul(i + 1 | 0, 64)))); - } - if (hasLast) { - result.add_11rb$(slice($receiver_0, until(Kotlin.imul(numberOfSlices, 64), $receiver_0.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$_0; - tmp$_0 = result.iterator(); - while (tmp$_0.hasNext()) { - var item = tmp$_0.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunks = copyToArray(destination); - var tmp$_1; - for (tmp$_1 = 0; tmp$_1 !== chunks.length; ++tmp$_1) { - var element = chunks[tmp$_1]; - var w = this.expandChunk_0(element); - var $receiver_1 = this.mix_0(h.v, w); - arrayCopy($receiver_1, h.v, 0, 0, $receiver_1.length); - } - var $receiver_2 = this.toPaddedByteArray_1(h.v[0]); - var elements_0 = this.toPaddedByteArray_1(h.v[1]); - var $receiver_3 = $receiver_2.concat(elements_0); - var elements_1 = this.toPaddedByteArray_1(h.v[2]); - var $receiver_4 = $receiver_3.concat(elements_1); - var elements_2 = this.toPaddedByteArray_1(h.v[3]); - var $receiver_5 = $receiver_4.concat(elements_2); - var elements_3 = this.toPaddedByteArray_1(h.v[4]); - var $receiver_6 = $receiver_5.concat(elements_3); - var elements_4 = this.toPaddedByteArray_1(h.v[5]); - var $receiver_7 = $receiver_6.concat(elements_4); - var elements_5 = this.toPaddedByteArray_1(h.v[6]); - var $receiver_8 = $receiver_7.concat(elements_5); - var elements_6 = this.toPaddedByteArray_1(h.v[7]); - var digest = $receiver_8.concat(elements_6); - return digest; - }; - Sha256$Companion.prototype.scheduleSigma0_0 = function (value) { - var $this = rotateRight(value, 7); - var other = rotateRight(value, 18); - var tmp$ = new UInt($this.data ^ other.data); - var other_0 = new UInt(value.data >>> 3); - return new UInt(tmp$.data ^ other_0.data); - }; - Sha256$Companion.prototype.scheduleSigma1_0 = function (value) { - var $this = rotateRight(value, 17); - var other = rotateRight(value, 19); - var tmp$ = new UInt($this.data ^ other.data); - var other_0 = new UInt(value.data >>> 10); - return new UInt(tmp$.data ^ other_0.data); - }; - Sha256$Companion.prototype.compressionSigma0_0 = function (a) { - var $this = rotateRight(a, 2); - var other = rotateRight(a, 13); - var $this_0 = new UInt($this.data ^ other.data); - var other_0 = rotateRight(a, 22); - return new UInt($this_0.data ^ other_0.data); - }; - Sha256$Companion.prototype.compressionSigma1_0 = function (e) { - var $this = rotateRight(e, 6); - var other = rotateRight(e, 11); - var $this_0 = new UInt($this.data ^ other.data); - var other_0 = rotateRight(e, 25); - return new UInt($this_0.data ^ other_0.data); - }; - Sha256$Companion.prototype.ch_0 = function (x, y, z) { - var tmp$ = new UInt(x.data & y.data); - var other = this.UINT_MASK; - var other_0 = new UInt((new UInt(x.data ^ other.data)).data & z.data); - return new UInt(tmp$.data ^ other_0.data); - }; - Sha256$Companion.prototype.maj_0 = function (x, y, z) { - var tmp$ = new UInt(x.data & y.data); - var other = new UInt(x.data & z.data); - var tmp$_0 = new UInt(tmp$.data ^ other.data); - var other_0 = new UInt(y.data & z.data); - return new UInt(tmp$_0.data ^ other_0.data); - }; - Sha256$Companion.prototype.expandChunk_0 = function (chunk) { - var array = Array_0(64); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var init$result; - if (0 <= i && i < 16) { - var tmp$_0 = new UInt((new UInt(chunk[i * 4 | 0].data & 255)).data << 24); - var other = new UInt((new UInt(chunk[(i * 4 | 0) + 1 | 0].data & 255)).data << 16); - var tmp$_1 = new UInt(tmp$_0.data + other.data | 0); - var other_0 = new UInt((new UInt(chunk[(i * 4 | 0) + 2 | 0].data & 255)).data << 8); - var tmp$_2 = new UInt(tmp$_1.data + other_0.data | 0); - var other_1 = new UInt(chunk[(i * 4 | 0) + 3 | 0].data & 255); - var collected = new UInt(tmp$_2.data + other_1.data | 0); - init$result = collected; - } - else { - init$result = new UInt(0); - } - array[i] = init$result; - } - var w = array; - for (var i_0 = 16; i_0 < 64; i_0++) { - var s0 = this.scheduleSigma0_0(w[i_0 - 15 | 0]); - var s1 = this.scheduleSigma1_0(w[i_0 - 2 | 0]); - var $this = new UInt(w[i_0 - 16 | 0].data + s0.data | 0); - var other_2 = w[i_0 - 7 | 0]; - w[i_0] = new UInt((new UInt($this.data + other_2.data | 0)).data + s1.data | 0); - } - return w; - }; - Sha256$Companion.prototype.mix_0 = function (h, w) { - var paramA = h[0]; - var paramB = h[1]; - var paramC = h[2]; - var paramD = h[3]; - var paramE = h[4]; - var paramF = h[5]; - var paramG = h[6]; - var paramH = h[7]; - for (var i = 0; i < 64; i++) { - var s1 = this.compressionSigma1_0(paramE); - var ch = this.ch_0(paramE, paramF, paramG); - var $this = new UInt((new UInt(paramH.data + s1.data | 0)).data + ch.data | 0); - var other = this.k[i]; - var $this_0 = new UInt($this.data + other.data | 0); - var other_0 = w[i]; - var temp1 = new UInt($this_0.data + other_0.data | 0); - var s0 = this.compressionSigma0_0(paramA); - var maj = this.maj_0(paramA, paramB, paramC); - var temp2 = new UInt(s0.data + maj.data | 0); - paramH = paramG; - paramG = paramF; - paramF = paramE; - paramE = new UInt(paramD.data + temp1.data | 0); - paramD = paramC; - paramC = paramB; - paramB = paramA; - paramA = new UInt(temp1.data + temp2.data | 0); - } - var $this_1 = h[0]; - var other_1 = paramA; - h[0] = new UInt($this_1.data + other_1.data | 0); - var $this_2 = h[1]; - var other_2 = paramB; - h[1] = new UInt($this_2.data + other_2.data | 0); - var $this_3 = h[2]; - var other_3 = paramC; - h[2] = new UInt($this_3.data + other_3.data | 0); - var $this_4 = h[3]; - var other_4 = paramD; - h[3] = new UInt($this_4.data + other_4.data | 0); - var $this_5 = h[4]; - var other_5 = paramE; - h[4] = new UInt($this_5.data + other_5.data | 0); - var $this_6 = h[5]; - var other_6 = paramF; - h[5] = new UInt($this_6.data + other_6.data | 0); - var $this_7 = h[6]; - var other_7 = paramG; - h[6] = new UInt($this_7.data + other_7.data | 0); - var $this_8 = h[7]; - var other_8 = paramH; - h[7] = new UInt($this_8.data + other_8.data | 0); - return h; - }; - Sha256$Companion.prototype.createExpansionArray_za3lpa$ = function (originalSizeInBytes) { - var tmp$; - var originalMessageSizeInBits = originalSizeInBytes * 8 | 0; - var expandedRemainderOf512 = (originalMessageSizeInBits + 64 + 1 | 0) % 512; - if (expandedRemainderOf512 === 0) - tmp$ = 0; - else - tmp$ = (512 - expandedRemainderOf512 | 0) / 8 | 0; - var zeroAddAmount = tmp$; - var array = Array_0(zeroAddAmount + 1 | 0); - var tmp$_0; - tmp$_0 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - var init$result; - if (i === 0) { - init$result = new UByte_init(-128); - } - else { - init$result = new UByte_init(0); - } - array[i] = init$result; - } - var expansionArray = array; - return expansionArray; - }; - Sha256$Companion.prototype.toPaddedByteArray_0 = function ($receiver) { - var byteMask = this.BYTE_MASK_FROM_ULONG; - var array = Array_0(8); - var tmp$; - tmp$ = array.length - 1 | 0; - loop_label: for (var i = 0; i <= tmp$; i++) { - var init$result; - init$break: do { - switch (i) { - case 7: - init$result = new UByte_init(toByte((new ULong_init($receiver.data.and(byteMask.data))).data.toInt())); - break init$break; - case 6: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(8))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 5: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(16))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 4: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(24))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 3: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(32))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 2: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(40))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 1: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(48))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 0: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(54))).data.and(byteMask.data))).data.toInt())); - break init$break; - default:throw RuntimeException_init('Invalid conversion'); - } - } - while (false); - array[i] = init$result; - } - return array; - }; - Sha256$Companion.prototype.toPaddedByteArray_1 = function ($receiver) { - var byteMask = this.BYTE_MASK_FROM_UINT; - var array = Array_0(4); - var tmp$; - tmp$ = array.length - 1 | 0; - loop_label: for (var i = 0; i <= tmp$; i++) { - var init$result; - init$break: do { - switch (i) { - case 3: - init$result = new UByte_init(toByte((new UInt($receiver.data & byteMask.data)).data)); - break init$break; - case 2: - init$result = new UByte_init(toByte((new UInt((new UInt($receiver.data >>> 8)).data & byteMask.data)).data)); - break init$break; - case 1: - init$result = new UByte_init(toByte((new UInt((new UInt($receiver.data >>> 16)).data & byteMask.data)).data)); - break init$break; - case 0: - init$result = new UByte_init(toByte((new UInt((new UInt($receiver.data >>> 24)).data & byteMask.data)).data)); - break init$break; - default:throw RuntimeException_init('Invalid conversion'); - } - } - while (false); - array[i] = init$result; - } - return array; - }; - Sha256$Companion.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Companion', - interfaces: [StatelessHash] - }; - var Sha256$Companion_instance = null; - function Sha256$Companion_getInstance() { - if (Sha256$Companion_instance === null) { - new Sha256$Companion(); - } - return Sha256$Companion_instance; - } - Sha256.prototype.update_61zpoe$ = function (data) { - var $receiver = encodeToByteArray(data); - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(new UByte_init(item)); - } - return this.update_ummv9a$(copyToArray(destination)); - }; - Sha256.prototype.update_ummv9a$ = function (data) { - if (data.length === 0) { - throw RuntimeException_init('Updating with empty array is not allowed. If you need empty hash, just call digest without updating'); - } - if ((this.bufferCounter + data.length | 0) < 64) - this.appendToBuffer_0(data, this.bufferCounter); - else if ((this.bufferCounter + data.length | 0) >= 64) { - var last = data.length % 64; - var hasLast = last !== 0; - var numberOfSlices = data.length / 64 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(data, until(Kotlin.imul(i, 64), Kotlin.imul(i + 1 | 0, 64)))); - } - if (hasLast) { - result.add_11rb$(slice(data, until(Kotlin.imul(numberOfSlices, 64), data.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunked = copyToArray(destination); - var tmp$_0; - for (tmp$_0 = 0; tmp$_0 !== chunked.length; ++tmp$_0) { - var element = chunked[tmp$_0]; - if ((this.bufferCounter + element.length | 0) < 64) { - this.appendToBuffer_0(element, this.bufferCounter); - } - else { - arrayCopy(element, this.buffer, this.bufferCounter, 0, 64 - this.bufferCounter | 0); - this.counter = this.counter + 64 | 0; - this.consumeBlock_0(this.buffer); - var array = Array_0(64); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_1; i_0++) { - var init$result; - var tmp$_2; - tmp$_2 = element.length - (64 - this.bufferCounter) | 0; - if (0 <= i_0 && i_0 < tmp$_2) { - init$result = element[i_0 + (64 - this.bufferCounter) | 0]; - } - else { - init$result = new UByte_init(0); - } - array[i_0] = init$result; - } - this.buffer = array; - this.bufferCounter = element.length - (64 - this.bufferCounter) | 0; - } - } - } - }; - Sha256.prototype.consumeBlock_0 = function (block) { - var w = Sha256$Companion_getInstance().expandChunk_0(block); - var $receiver = Sha256$Companion_getInstance().mix_0(this.h, w); - arrayCopy($receiver, this.h, 0, 0, $receiver.length); - }; - Sha256.prototype.digest = function () { - var length = this.counter + this.bufferCounter | 0; - var expansionArray = Sha256$Companion_getInstance().createExpansionArray_za3lpa$(length); - var tmp$ = copyOfRange(this.buffer, 0, this.bufferCounter).concat(expansionArray); - var tmp$_0 = Sha256$Companion_getInstance(); - var $receiver = length * 8 | 0; - var elements = tmp$_0.toPaddedByteArray_0(new ULong_init(Kotlin.Long.fromInt($receiver))); - var finalBlock = tmp$.concat(elements); - var last = finalBlock.length % 64; - var hasLast = last !== 0; - var numberOfSlices = finalBlock.length / 64 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(finalBlock, until(Kotlin.imul(i, 64), Kotlin.imul(i + 1 | 0, 64)))); - } - if (hasLast) { - result.add_11rb$(slice(finalBlock, until(Kotlin.imul(numberOfSlices, 64), finalBlock.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$_1; - tmp$_1 = result.iterator(); - while (tmp$_1.hasNext()) { - var item = tmp$_1.next(); - destination.add_11rb$(copyToArray(item)); - } - var $receiver_0 = copyToArray(destination); - var tmp$_2; - for (tmp$_2 = 0; tmp$_2 !== $receiver_0.length; ++tmp$_2) { - var element = $receiver_0[tmp$_2]; - this.consumeBlock_0(element); - } - var $receiver_1 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[0]); - var elements_0 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[1]); - var $receiver_2 = $receiver_1.concat(elements_0); - var elements_1 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[2]); - var $receiver_3 = $receiver_2.concat(elements_1); - var elements_2 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[3]); - var $receiver_4 = $receiver_3.concat(elements_2); - var elements_3 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[4]); - var $receiver_5 = $receiver_4.concat(elements_3); - var elements_4 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[5]); - var $receiver_6 = $receiver_5.concat(elements_4); - var elements_5 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[6]); - var $receiver_7 = $receiver_6.concat(elements_5); - var elements_6 = Sha256$Companion_getInstance().toPaddedByteArray_1(this.h[7]); - var digest = $receiver_7.concat(elements_6); - return digest; - }; - Sha256.prototype.digestString = function () { - var $receiver = this.digest(); - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(toString(item, 16)); - } - return joinToString(destination, ''); - }; - Sha256.prototype.appendToBuffer_0 = function (array, start) { - arrayCopy(array, this.buffer, start, 0, array.length); - this.bufferCounter = this.bufferCounter + array.length | 0; - }; - Sha256.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Sha256', - interfaces: [UpdatableHash] - }; - var chunked$lambda_1 = wrapFunction(function () { - var copyToArray = Kotlin.kotlin.collections.copyToArray; - return function (it) { - return copyToArray(it); - }; - }); - function Sha512() { - Sha512$Companion_getInstance(); - this.MAX_HASH_BYTES_h6j4ni$_0 = 32; - this.h = Sha512$Companion_getInstance().iv.slice(); - this.counter = 0; - this.bufferCounter = 0; - var array = Array_0(128); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = new UByte_init(0); - } - this.buffer = array; - } - Object.defineProperty(Sha512.prototype, 'MAX_HASH_BYTES', { - get: function () { - return this.MAX_HASH_BYTES_h6j4ni$_0; - } - }); - function Sha512$Companion() { - Sha512$Companion_instance = this; - this.BLOCK_SIZE = 1024; - this.BLOCK_SIZE_IN_BYTES = 128; - this.CHUNK_SIZE = 80; - this.ULONG_MASK = new ULong_init(Kotlin.Long.NEG_ONE); - this.MAX_HASH_BYTES_1k9xu8$_0 = 32; - this.k = [new ULong_init(new Kotlin.Long(-685199838, 1116352408)), new ULong_init(new Kotlin.Long(602891725, 1899447441)), new ULong_init(new Kotlin.Long(-330482897, -1245643825)), new ULong_init(new Kotlin.Long(-2121671748, -373957723)), new ULong_init(new Kotlin.Long(-213338824, 961987163)), new ULong_init(new Kotlin.Long(-1241133031, 1508970993)), new ULong_init(new Kotlin.Long(-1357295717, -1841331548)), new ULong_init(new Kotlin.Long(-630357736, -1424204075)), new ULong_init(new Kotlin.Long(-1560083902, -670586216)), new ULong_init(new Kotlin.Long(1164996542, 310598401)), new ULong_init(new Kotlin.Long(1323610764, 607225278)), new ULong_init(new Kotlin.Long(-704662302, 1426881987)), new ULong_init(new Kotlin.Long(-226784913, 1925078388)), new ULong_init(new Kotlin.Long(991336113, -2132889090)), new ULong_init(new Kotlin.Long(633803317, -1680079193)), new ULong_init(new Kotlin.Long(-815192428, -1046744716)), new ULong_init(new Kotlin.Long(-1628353838, -459576895)), new ULong_init(new Kotlin.Long(944711139, -272742522)), new ULong_init(new Kotlin.Long(-1953704523, 264347078)), new ULong_init(new Kotlin.Long(2007800933, 604807628)), new ULong_init(new Kotlin.Long(1495990901, 770255983)), new ULong_init(new Kotlin.Long(1856431235, 1249150122)), new ULong_init(new Kotlin.Long(-1119749164, 1555081692)), new ULong_init(new Kotlin.Long(-2096016459, 1996064986)), new ULong_init(new Kotlin.Long(-295247957, -1740746414)), new ULong_init(new Kotlin.Long(766784016, -1473132947)), new ULong_init(new Kotlin.Long(-1728372417, -1341970488)), new ULong_init(new Kotlin.Long(-1091629340, -1084653625)), new ULong_init(new Kotlin.Long(1034457026, -958395405)), new ULong_init(new Kotlin.Long(-1828018395, -710438585)), new ULong_init(new Kotlin.Long(-536640913, 113926993)), new ULong_init(new Kotlin.Long(168717936, 338241895)), new ULong_init(new Kotlin.Long(1188179964, 666307205)), new ULong_init(new Kotlin.Long(1546045734, 773529912)), new ULong_init(new Kotlin.Long(1522805485, 1294757372)), new ULong_init(new Kotlin.Long(-1651133473, 1396182291)), new ULong_init(new Kotlin.Long(-1951439906, 1695183700)), new ULong_init(new Kotlin.Long(1014477480, 1986661051)), new ULong_init(new Kotlin.Long(1206759142, -2117940946)), new ULong_init(new Kotlin.Long(344077627, -1838011259)), new ULong_init(new Kotlin.Long(1290863460, -1564481375)), new ULong_init(new Kotlin.Long(-1136513023, -1474664885)), new ULong_init(new Kotlin.Long(-789014639, -1035236496)), new ULong_init(new Kotlin.Long(106217008, -949202525)), new ULong_init(new Kotlin.Long(-688958952, -778901479)), new ULong_init(new Kotlin.Long(1432725776, -694614492)), new ULong_init(new Kotlin.Long(1467031594, -200395387)), new ULong_init(new Kotlin.Long(851169720, 275423344)), new ULong_init(new Kotlin.Long(-1194143544, 430227734)), new ULong_init(new Kotlin.Long(1363258195, 506948616)), new ULong_init(new Kotlin.Long(-544281703, 659060556)), new ULong_init(new Kotlin.Long(-509917016, 883997877)), new ULong_init(new Kotlin.Long(-976659869, 958139571)), new ULong_init(new Kotlin.Long(-482243893, 1322822218)), new ULong_init(new Kotlin.Long(2003034995, 1537002063)), new ULong_init(new Kotlin.Long(-692930397, 1747873779)), new ULong_init(new Kotlin.Long(1575990012, 1955562222)), new ULong_init(new Kotlin.Long(1125592928, 2024104815)), new ULong_init(new Kotlin.Long(-1578062990, -2067236844)), new ULong_init(new Kotlin.Long(442776044, -1933114872)), new ULong_init(new Kotlin.Long(593698344, -1866530822)), new ULong_init(new Kotlin.Long(-561857047, -1538233109)), new ULong_init(new Kotlin.Long(-1295615723, -1090935817)), new ULong_init(new Kotlin.Long(-479046869, -965641998)), new ULong_init(new Kotlin.Long(-366583396, -903397682)), new ULong_init(new Kotlin.Long(566280711, -779700025)), new ULong_init(new Kotlin.Long(-840897762, -354779690)), new ULong_init(new Kotlin.Long(-294727304, -176337025)), new ULong_init(new Kotlin.Long(1914138554, 116418474)), new ULong_init(new Kotlin.Long(-1563912026, 174292421)), new ULong_init(new Kotlin.Long(-1090974290, 289380356)), new ULong_init(new Kotlin.Long(320620315, 460393269)), new ULong_init(new Kotlin.Long(587496836, 685471733)), new ULong_init(new Kotlin.Long(1086792851, 852142971)), new ULong_init(new Kotlin.Long(365543100, 1017036298)), new ULong_init(new Kotlin.Long(-1676669620, 1126000580)), new ULong_init(new Kotlin.Long(-885112138, 1288033470)), new ULong_init(new Kotlin.Long(-60457430, 1501505948)), new ULong_init(new Kotlin.Long(987167468, 1607167915)), new ULong_init(new Kotlin.Long(1246189591, 1816402316))]; - this.iv = [new ULong_init(new Kotlin.Long(-205731576, 1779033703)), new ULong_init(new Kotlin.Long(-2067093701, -1150833019)), new ULong_init(new Kotlin.Long(-23791573, 1013904242)), new ULong_init(new Kotlin.Long(1595750129, -1521486534)), new ULong_init(new Kotlin.Long(-1377402159, 1359893119)), new ULong_init(new Kotlin.Long(725511199, -1694144372)), new ULong_init(new Kotlin.Long(-79577749, 528734635)), new ULong_init(new Kotlin.Long(327033209, 1541459225))]; - } - Object.defineProperty(Sha512$Companion.prototype, 'MAX_HASH_BYTES', { - get: function () { - return this.MAX_HASH_BYTES_1k9xu8$_0; - } - }); - Sha512$Companion.prototype.digest_5pksov$$default = function (inputString, key, hashLength) { - var tmp$, tmp$_0; - var $receiver = encodeToByteArray(inputString); - var destination = ArrayList_init($receiver.length); - var tmp$_1; - for (tmp$_1 = 0; tmp$_1 !== $receiver.length; ++tmp$_1) { - var item = $receiver[tmp$_1]; - destination.add_11rb$(new UByte_init(item)); - } - tmp$ = copyToArray(destination); - var tmp$_2; - if (key != null) { - var $receiver_0 = encodeToByteArray(key); - var destination_0 = ArrayList_init($receiver_0.length); - var tmp$_3; - for (tmp$_3 = 0; tmp$_3 !== $receiver_0.length; ++tmp$_3) { - var item_0 = $receiver_0[tmp$_3]; - destination_0.add_11rb$(new UByte_init(item_0)); - } - tmp$_2 = copyToArray(destination_0); - } - else - tmp$_2 = null; - return this.digest_o2z9gi$(tmp$, (tmp$_0 = tmp$_2) != null ? tmp$_0 : [], hashLength); - }; - Sha512$Companion.prototype.digest_o2z9gi$$default = function (inputMessage, key, hashLength) { - var h = {v: this.iv.slice()}; - var expansionArray = this.createExpansionArray_za3lpa$(inputMessage.length); - var tmp$ = inputMessage.concat(expansionArray); - var $receiver = inputMessage.length * 8 | 0; - var elements = this.toPadded128BitByteArray_0(new ULong_init(Kotlin.Long.fromInt($receiver))); - var $receiver_0 = tmp$.concat(elements); - var last = $receiver_0.length % 128; - var hasLast = last !== 0; - var numberOfSlices = $receiver_0.length / 128 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice($receiver_0, until(Kotlin.imul(i, 128), Kotlin.imul(i + 1 | 0, 128)))); - } - if (hasLast) { - result.add_11rb$(slice($receiver_0, until(Kotlin.imul(numberOfSlices, 128), $receiver_0.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$_0; - tmp$_0 = result.iterator(); - while (tmp$_0.hasNext()) { - var item = tmp$_0.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunks = copyToArray(destination); - var tmp$_1; - for (tmp$_1 = 0; tmp$_1 !== chunks.length; ++tmp$_1) { - var element = chunks[tmp$_1]; - var w = this.expandChunk_0(element); - this.mix_0(h.v, w); - } - var $receiver_1 = this.toPaddedByteArray_0(h.v[0]); - var elements_0 = this.toPaddedByteArray_0(h.v[1]); - var $receiver_2 = $receiver_1.concat(elements_0); - var elements_1 = this.toPaddedByteArray_0(h.v[2]); - var $receiver_3 = $receiver_2.concat(elements_1); - var elements_2 = this.toPaddedByteArray_0(h.v[3]); - var $receiver_4 = $receiver_3.concat(elements_2); - var elements_3 = this.toPaddedByteArray_0(h.v[4]); - var $receiver_5 = $receiver_4.concat(elements_3); - var elements_4 = this.toPaddedByteArray_0(h.v[5]); - var $receiver_6 = $receiver_5.concat(elements_4); - var elements_5 = this.toPaddedByteArray_0(h.v[6]); - var $receiver_7 = $receiver_6.concat(elements_5); - var elements_6 = this.toPaddedByteArray_0(h.v[7]); - var digest = $receiver_7.concat(elements_6); - return digest; - }; - Sha512$Companion.prototype.scheduleSigma0_0 = function (value) { - var $this = rotateRight_0(value, 1); - var other = rotateRight_0(value, 8); - var tmp$ = new ULong_init($this.data.xor(other.data)); - var other_0 = new ULong_init(value.data.shiftRightUnsigned(7)); - return new ULong_init(tmp$.data.xor(other_0.data)); - }; - Sha512$Companion.prototype.scheduleSigma1_0 = function (value) { - var $this = rotateRight_0(value, 19); - var other = rotateRight_0(value, 61); - var tmp$ = new ULong_init($this.data.xor(other.data)); - var other_0 = new ULong_init(value.data.shiftRightUnsigned(6)); - return new ULong_init(tmp$.data.xor(other_0.data)); - }; - Sha512$Companion.prototype.compressionSigma0_0 = function (e) { - var $this = rotateRight_0(e, 28); - var other = rotateRight_0(e, 34); - var $this_0 = new ULong_init($this.data.xor(other.data)); - var other_0 = rotateRight_0(e, 39); - return new ULong_init($this_0.data.xor(other_0.data)); - }; - Sha512$Companion.prototype.compressionSigma1_0 = function (a) { - var $this = rotateRight_0(a, 14); - var other = rotateRight_0(a, 18); - var $this_0 = new ULong_init($this.data.xor(other.data)); - var other_0 = rotateRight_0(a, 41); - return new ULong_init($this_0.data.xor(other_0.data)); - }; - Sha512$Companion.prototype.ch_0 = function (x, y, z) { - var tmp$ = new ULong_init(x.data.and(y.data)); - var other = this.ULONG_MASK; - var other_0 = new ULong_init((new ULong_init(x.data.xor(other.data))).data.and(z.data)); - return new ULong_init(tmp$.data.xor(other_0.data)); - }; - Sha512$Companion.prototype.maj_0 = function (x, y, z) { - var tmp$ = new ULong_init(x.data.and(y.data)); - var other = new ULong_init(x.data.and(z.data)); - var tmp$_0 = new ULong_init(tmp$.data.xor(other.data)); - var other_0 = new ULong_init(y.data.and(z.data)); - return new ULong_init(tmp$_0.data.xor(other_0.data)); - }; - Sha512$Companion.prototype.expandChunk_0 = function (chunk) { - var array = Array_0(80); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var init$result; - if (0 <= i && i < 16) { - var $this = chunk[i * 8 | 0]; - var tmp$_0 = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this.data).and(L255))).data.shiftLeft(56)); - var $this_0 = chunk[(i * 8 | 0) + 1 | 0]; - var other = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this_0.data).and(L255))).data.shiftLeft(48)); - var tmp$_1 = new ULong_init(tmp$_0.data.add(other.data)); - var $this_1 = chunk[(i * 8 | 0) + 2 | 0]; - var other_0 = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this_1.data).and(L255))).data.shiftLeft(40)); - var tmp$_2 = new ULong_init(tmp$_1.data.add(other_0.data)); - var $this_2 = chunk[(i * 8 | 0) + 3 | 0]; - var other_1 = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this_2.data).and(L255))).data.shiftLeft(32)); - var tmp$_3 = new ULong_init(tmp$_2.data.add(other_1.data)); - var $this_3 = chunk[(i * 8 | 0) + 4 | 0]; - var other_2 = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this_3.data).and(L255))).data.shiftLeft(24)); - var tmp$_4 = new ULong_init(tmp$_3.data.add(other_2.data)); - var $this_4 = chunk[(i * 8 | 0) + 5 | 0]; - var other_3 = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this_4.data).and(L255))).data.shiftLeft(16)); - var tmp$_5 = new ULong_init(tmp$_4.data.add(other_3.data)); - var $this_5 = chunk[(i * 8 | 0) + 6 | 0]; - var other_4 = new ULong_init((new ULong_init(Kotlin.Long.fromInt($this_5.data).and(L255))).data.shiftLeft(8)); - var tmp$_6 = new ULong_init(tmp$_5.data.add(other_4.data)); - var $this_6 = chunk[(i * 8 | 0) + 7 | 0]; - var other_5 = new ULong_init(Kotlin.Long.fromInt($this_6.data).and(L255)); - var collected = new ULong_init(tmp$_6.data.add(other_5.data)); - init$result = collected; - } - else { - init$result = new ULong_init(Kotlin.Long.ZERO); - } - array[i] = init$result; - } - var w = array; - for (var i_0 = 16; i_0 < 80; i_0++) { - var s0 = this.scheduleSigma0_0(w[i_0 - 15 | 0]); - var s1 = this.scheduleSigma1_0(w[i_0 - 2 | 0]); - var $this_7 = new ULong_init(w[i_0 - 16 | 0].data.add(s0.data)); - var other_6 = w[i_0 - 7 | 0]; - w[i_0] = new ULong_init((new ULong_init($this_7.data.add(other_6.data))).data.add(s1.data)); - } - return w; - }; - Sha512$Companion.prototype.mix_0 = function (h, w) { - var paramA = h[0]; - var paramB = h[1]; - var paramC = h[2]; - var paramD = h[3]; - var paramE = h[4]; - var paramF = h[5]; - var paramG = h[6]; - var paramH = h[7]; - for (var i = 0; i < 80; i++) { - var s1 = this.compressionSigma1_0(paramE); - var ch = this.ch_0(paramE, paramF, paramG); - var $this = new ULong_init((new ULong_init(paramH.data.add(s1.data))).data.add(ch.data)); - var other = this.k[i]; - var $this_0 = new ULong_init($this.data.add(other.data)); - var other_0 = w[i]; - var temp1 = new ULong_init($this_0.data.add(other_0.data)); - var s0 = this.compressionSigma0_0(paramA); - var maj = this.maj_0(paramA, paramB, paramC); - var temp2 = new ULong_init(s0.data.add(maj.data)); - paramH = paramG; - paramG = paramF; - paramF = paramE; - paramE = new ULong_init(paramD.data.add(temp1.data)); - paramD = paramC; - paramC = paramB; - paramB = paramA; - paramA = new ULong_init(temp1.data.add(temp2.data)); - } - var $this_1 = h[0]; - var other_1 = paramA; - h[0] = new ULong_init($this_1.data.add(other_1.data)); - var $this_2 = h[1]; - var other_2 = paramB; - h[1] = new ULong_init($this_2.data.add(other_2.data)); - var $this_3 = h[2]; - var other_3 = paramC; - h[2] = new ULong_init($this_3.data.add(other_3.data)); - var $this_4 = h[3]; - var other_4 = paramD; - h[3] = new ULong_init($this_4.data.add(other_4.data)); - var $this_5 = h[4]; - var other_5 = paramE; - h[4] = new ULong_init($this_5.data.add(other_5.data)); - var $this_6 = h[5]; - var other_6 = paramF; - h[5] = new ULong_init($this_6.data.add(other_6.data)); - var $this_7 = h[6]; - var other_7 = paramG; - h[6] = new ULong_init($this_7.data.add(other_7.data)); - var $this_8 = h[7]; - var other_8 = paramH; - h[7] = new ULong_init($this_8.data.add(other_8.data)); - return h; - }; - Sha512$Companion.prototype.createExpansionArray_za3lpa$ = function (originalSizeInBytes) { - var tmp$; - var originalMessageSizeInBits = originalSizeInBytes * 8 | 0; - var expandedRemainderOf1024 = (originalMessageSizeInBits + 129 | 0) % 1024; - if (expandedRemainderOf1024 === 0) - tmp$ = 0; - else - tmp$ = (1024 - expandedRemainderOf1024 | 0) / 8 | 0; - var zeroAddAmount = tmp$; - var array = Array_0(zeroAddAmount + 1 | 0); - var tmp$_0; - tmp$_0 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - var init$result; - if (i === 0) { - init$result = new UByte_init(-128); - } - else { - init$result = new UByte_init(0); - } - array[i] = init$result; - } - var expansionArray = array; - return expansionArray; - }; - Sha512$Companion.prototype.toPaddedByteArray_0 = function ($receiver) { - var byteMask = new ULong_init(Kotlin.Long.fromInt(255)); - var array = Array_0(8); - var tmp$; - tmp$ = array.length - 1 | 0; - loop_label: for (var i = 0; i <= tmp$; i++) { - var init$result; - init$break: do { - switch (i) { - case 7: - init$result = new UByte_init(toByte((new ULong_init($receiver.data.and(byteMask.data))).data.toInt())); - break init$break; - case 6: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(8))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 5: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(16))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 4: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(24))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 3: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(32))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 2: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(40))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 1: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(48))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 0: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(56))).data.and(byteMask.data))).data.toInt())); - break init$break; - default:init$result = new UByte_init(0); - break init$break; - } - } - while (false); - array[i] = init$result; - } - return array; - }; - Sha512$Companion.prototype.toPadded128BitByteArray_0 = function ($receiver) { - var byteMask = new ULong_init(Kotlin.Long.fromInt(255)); - var array = Array_0(16); - var tmp$; - tmp$ = array.length - 1 | 0; - loop_label: for (var i = 0; i <= tmp$; i++) { - var init$result; - init$break: do { - switch (i) { - case 15: - init$result = new UByte_init(toByte((new ULong_init($receiver.data.and(byteMask.data))).data.toInt())); - break init$break; - case 14: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(8))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 13: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(16))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 12: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(24))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 11: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(32))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 10: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(40))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 9: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(48))).data.and(byteMask.data))).data.toInt())); - break init$break; - case 8: - init$result = new UByte_init(toByte((new ULong_init((new ULong_init($receiver.data.shiftRightUnsigned(54))).data.and(byteMask.data))).data.toInt())); - break init$break; - default:init$result = new UByte_init(0); - break init$break; - } - } - while (false); - array[i] = init$result; - } - return array; - }; - Sha512$Companion.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Companion', - interfaces: [StatelessHash] - }; - var Sha512$Companion_instance = null; - function Sha512$Companion_getInstance() { - if (Sha512$Companion_instance === null) { - new Sha512$Companion(); - } - return Sha512$Companion_instance; - } - Sha512.prototype.update_61zpoe$ = function (data) { - var $receiver = encodeToByteArray(data); - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(new UByte_init(item)); - } - return this.update_ummv9a$(copyToArray(destination)); - }; - Sha512.prototype.update_ummv9a$ = function (data) { - if (data.length === 0) { - throw RuntimeException_init('Updating with empty array is not allowed. If you need empty hash, just call digest without updating'); - } - if ((this.bufferCounter + data.length | 0) < 128) - this.appendToBuffer_0(data, this.bufferCounter); - else if ((this.bufferCounter + data.length | 0) >= 128) { - var last = data.length % 128; - var hasLast = last !== 0; - var numberOfSlices = data.length / 128 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(data, until(Kotlin.imul(i, 128), Kotlin.imul(i + 1 | 0, 128)))); - } - if (hasLast) { - result.add_11rb$(slice(data, until(Kotlin.imul(numberOfSlices, 128), data.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunked = copyToArray(destination); - var tmp$_0; - for (tmp$_0 = 0; tmp$_0 !== chunked.length; ++tmp$_0) { - var element = chunked[tmp$_0]; - if ((this.bufferCounter + element.length | 0) < 128) { - this.appendToBuffer_0(element, this.bufferCounter); - } - else { - arrayCopy(element, this.buffer, this.bufferCounter, 0, 128 - this.bufferCounter | 0); - this.counter = this.counter + 128 | 0; - this.consumeBlock_0(this.buffer); - var array = Array_0(128); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_1; i_0++) { - var init$result; - var tmp$_2; - tmp$_2 = element.length - (128 - this.bufferCounter) | 0; - if (0 <= i_0 && i_0 < tmp$_2) { - init$result = element[i_0 + (128 - this.bufferCounter) | 0]; - } - else { - init$result = new UByte_init(0); - } - array[i_0] = init$result; - } - this.buffer = array; - this.bufferCounter = element.length - (128 - this.bufferCounter) | 0; - } - } - } - }; - Sha512.prototype.consumeBlock_0 = function (block) { - var w = Sha512$Companion_getInstance().expandChunk_0(block); - var $receiver = Sha512$Companion_getInstance().mix_0(this.h, w); - arrayCopy($receiver, this.h, 0, 0, $receiver.length); - }; - Sha512.prototype.digest = function () { - var length = this.counter + this.bufferCounter | 0; - var expansionArray = Sha512$Companion_getInstance().createExpansionArray_za3lpa$(length); - var tmp$ = copyOfRange(this.buffer, 0, this.bufferCounter).concat(expansionArray); - var tmp$_0 = Sha512$Companion_getInstance(); - var $receiver = length * 8 | 0; - var elements = tmp$_0.toPadded128BitByteArray_0(new ULong_init(Kotlin.Long.fromInt($receiver))); - var finalBlock = tmp$.concat(elements); - var last = finalBlock.length % 128; - var hasLast = last !== 0; - var numberOfSlices = finalBlock.length / 128 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(finalBlock, until(Kotlin.imul(i, 128), Kotlin.imul(i + 1 | 0, 128)))); - } - if (hasLast) { - result.add_11rb$(slice(finalBlock, until(Kotlin.imul(numberOfSlices, 128), finalBlock.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$_1; - tmp$_1 = result.iterator(); - while (tmp$_1.hasNext()) { - var item = tmp$_1.next(); - destination.add_11rb$(copyToArray(item)); - } - var $receiver_0 = copyToArray(destination); - var tmp$_2; - for (tmp$_2 = 0; tmp$_2 !== $receiver_0.length; ++tmp$_2) { - var element = $receiver_0[tmp$_2]; - this.consumeBlock_0(element); - } - var $receiver_1 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[0]); - var elements_0 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[1]); - var $receiver_2 = $receiver_1.concat(elements_0); - var elements_1 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[2]); - var $receiver_3 = $receiver_2.concat(elements_1); - var elements_2 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[3]); - var $receiver_4 = $receiver_3.concat(elements_2); - var elements_3 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[4]); - var $receiver_5 = $receiver_4.concat(elements_3); - var elements_4 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[5]); - var $receiver_6 = $receiver_5.concat(elements_4); - var elements_5 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[6]); - var $receiver_7 = $receiver_6.concat(elements_5); - var elements_6 = Sha512$Companion_getInstance().toPaddedByteArray_0(this.h[7]); - var digest = $receiver_7.concat(elements_6); - return digest; - }; - Sha512.prototype.digestString = function () { - var $receiver = this.digest(); - var destination = ArrayList_init($receiver.length); - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - destination.add_11rb$(toString(item, 16)); - } - return joinToString(destination, ''); - }; - Sha512.prototype.appendToBuffer_0 = function (array, start) { - arrayCopy(array, this.buffer, start, 0, array.length); - this.bufferCounter = this.bufferCounter + array.length | 0; - }; - Sha512.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Sha512', - interfaces: [UpdatableHash] - }; - function Aes(aesKey, input) { - Aes$Companion_getInstance(); - this.aesKey = aesKey; - this.input = input; - var $receiver = until(0, 4); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_0 = destination.add_11rb$; - var array = Array_0(4); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_1; i++) { - array[i] = this.input[(i * 4 | 0) + item | 0]; - } - tmp$_0.call(destination, array); - } - this.state = copyToArray(destination); - var tmp$_2, tmp$_3; - tmp$_2 = this.aesKey; - if (Kotlin.isType(tmp$_2, AesKey$Aes128Key)) - tmp$_3 = 10; - else if (Kotlin.isType(tmp$_2, AesKey$Aes192Key)) - tmp$_3 = 12; - else if (Kotlin.isType(tmp$_2, AesKey$Aes256Key)) - tmp$_3 = 14; - else - tmp$_3 = Kotlin.noWhenBranchMatched(); - this.numberOfRounds = tmp$_3; - this.expandedKey = this.expandKey(); - this.round = 0; - this.completed_igbl6$_0 = false; - } - function Aes$Companion() { - Aes$Companion_instance = this; - this.debug_0 = false; - this.sBox_0 = new UByteArray(new Int8Array([(new UByte_init(99)).toByte(), (new UByte_init(124)).toByte(), (new UByte_init(119)).toByte(), (new UByte_init(123)).toByte(), (new UByte_init(-14)).toByte(), (new UByte_init(107)).toByte(), (new UByte_init(111)).toByte(), (new UByte_init(-59)).toByte(), (new UByte_init(48)).toByte(), (new UByte_init(1)).toByte(), (new UByte_init(103)).toByte(), (new UByte_init(43)).toByte(), (new UByte_init(-2)).toByte(), (new UByte_init(-41)).toByte(), (new UByte_init(-85)).toByte(), (new UByte_init(118)).toByte(), (new UByte_init(-54)).toByte(), (new UByte_init(-126)).toByte(), (new UByte_init(-55)).toByte(), (new UByte_init(125)).toByte(), (new UByte_init(-6)).toByte(), (new UByte_init(89)).toByte(), (new UByte_init(71)).toByte(), (new UByte_init(-16)).toByte(), (new UByte_init(-83)).toByte(), (new UByte_init(-44)).toByte(), (new UByte_init(-94)).toByte(), (new UByte_init(-81)).toByte(), (new UByte_init(-100)).toByte(), (new UByte_init(-92)).toByte(), (new UByte_init(114)).toByte(), (new UByte_init(-64)).toByte(), (new UByte_init(-73)).toByte(), (new UByte_init(-3)).toByte(), (new UByte_init(-109)).toByte(), (new UByte_init(38)).toByte(), (new UByte_init(54)).toByte(), (new UByte_init(63)).toByte(), (new UByte_init(-9)).toByte(), (new UByte_init(-52)).toByte(), (new UByte_init(52)).toByte(), (new UByte_init(-91)).toByte(), (new UByte_init(-27)).toByte(), (new UByte_init(-15)).toByte(), (new UByte_init(113)).toByte(), (new UByte_init(-40)).toByte(), (new UByte_init(49)).toByte(), (new UByte_init(21)).toByte(), (new UByte_init(4)).toByte(), (new UByte_init(-57)).toByte(), (new UByte_init(35)).toByte(), (new UByte_init(-61)).toByte(), (new UByte_init(24)).toByte(), (new UByte_init(-106)).toByte(), (new UByte_init(5)).toByte(), (new UByte_init(-102)).toByte(), (new UByte_init(7)).toByte(), (new UByte_init(18)).toByte(), (new UByte_init(-128)).toByte(), (new UByte_init(-30)).toByte(), (new UByte_init(-21)).toByte(), (new UByte_init(39)).toByte(), (new UByte_init(-78)).toByte(), (new UByte_init(117)).toByte(), (new UByte_init(9)).toByte(), (new UByte_init(-125)).toByte(), (new UByte_init(44)).toByte(), (new UByte_init(26)).toByte(), (new UByte_init(27)).toByte(), (new UByte_init(110)).toByte(), (new UByte_init(90)).toByte(), (new UByte_init(-96)).toByte(), (new UByte_init(82)).toByte(), (new UByte_init(59)).toByte(), (new UByte_init(-42)).toByte(), (new UByte_init(-77)).toByte(), (new UByte_init(41)).toByte(), (new UByte_init(-29)).toByte(), (new UByte_init(47)).toByte(), (new UByte_init(-124)).toByte(), (new UByte_init(83)).toByte(), (new UByte_init(-47)).toByte(), (new UByte_init(0)).toByte(), (new UByte_init(-19)).toByte(), (new UByte_init(32)).toByte(), (new UByte_init(-4)).toByte(), (new UByte_init(-79)).toByte(), (new UByte_init(91)).toByte(), (new UByte_init(106)).toByte(), (new UByte_init(-53)).toByte(), (new UByte_init(-66)).toByte(), (new UByte_init(57)).toByte(), (new UByte_init(74)).toByte(), (new UByte_init(76)).toByte(), (new UByte_init(88)).toByte(), (new UByte_init(-49)).toByte(), (new UByte_init(-48)).toByte(), (new UByte_init(-17)).toByte(), (new UByte_init(-86)).toByte(), (new UByte_init(-5)).toByte(), (new UByte_init(67)).toByte(), (new UByte_init(77)).toByte(), (new UByte_init(51)).toByte(), (new UByte_init(-123)).toByte(), (new UByte_init(69)).toByte(), (new UByte_init(-7)).toByte(), (new UByte_init(2)).toByte(), (new UByte_init(127)).toByte(), (new UByte_init(80)).toByte(), (new UByte_init(60)).toByte(), (new UByte_init(-97)).toByte(), (new UByte_init(-88)).toByte(), (new UByte_init(81)).toByte(), (new UByte_init(-93)).toByte(), (new UByte_init(64)).toByte(), (new UByte_init(-113)).toByte(), (new UByte_init(-110)).toByte(), (new UByte_init(-99)).toByte(), (new UByte_init(56)).toByte(), (new UByte_init(-11)).toByte(), (new UByte_init(-68)).toByte(), (new UByte_init(-74)).toByte(), (new UByte_init(-38)).toByte(), (new UByte_init(33)).toByte(), (new UByte_init(16)).toByte(), (new UByte_init(-1)).toByte(), (new UByte_init(-13)).toByte(), (new UByte_init(-46)).toByte(), (new UByte_init(-51)).toByte(), (new UByte_init(12)).toByte(), (new UByte_init(19)).toByte(), (new UByte_init(-20)).toByte(), (new UByte_init(95)).toByte(), (new UByte_init(-105)).toByte(), (new UByte_init(68)).toByte(), (new UByte_init(23)).toByte(), (new UByte_init(-60)).toByte(), (new UByte_init(-89)).toByte(), (new UByte_init(126)).toByte(), (new UByte_init(61)).toByte(), (new UByte_init(100)).toByte(), (new UByte_init(93)).toByte(), (new UByte_init(25)).toByte(), (new UByte_init(115)).toByte(), (new UByte_init(96)).toByte(), (new UByte_init(-127)).toByte(), (new UByte_init(79)).toByte(), (new UByte_init(-36)).toByte(), (new UByte_init(34)).toByte(), (new UByte_init(42)).toByte(), (new UByte_init(-112)).toByte(), (new UByte_init(-120)).toByte(), (new UByte_init(70)).toByte(), (new UByte_init(-18)).toByte(), (new UByte_init(-72)).toByte(), (new UByte_init(20)).toByte(), (new UByte_init(-34)).toByte(), (new UByte_init(94)).toByte(), (new UByte_init(11)).toByte(), (new UByte_init(-37)).toByte(), (new UByte_init(-32)).toByte(), (new UByte_init(50)).toByte(), (new UByte_init(58)).toByte(), (new UByte_init(10)).toByte(), (new UByte_init(73)).toByte(), (new UByte_init(6)).toByte(), (new UByte_init(36)).toByte(), (new UByte_init(92)).toByte(), (new UByte_init(-62)).toByte(), (new UByte_init(-45)).toByte(), (new UByte_init(-84)).toByte(), (new UByte_init(98)).toByte(), (new UByte_init(-111)).toByte(), (new UByte_init(-107)).toByte(), (new UByte_init(-28)).toByte(), (new UByte_init(121)).toByte(), (new UByte_init(-25)).toByte(), (new UByte_init(-56)).toByte(), (new UByte_init(55)).toByte(), (new UByte_init(109)).toByte(), (new UByte_init(-115)).toByte(), (new UByte_init(-43)).toByte(), (new UByte_init(78)).toByte(), (new UByte_init(-87)).toByte(), (new UByte_init(108)).toByte(), (new UByte_init(86)).toByte(), (new UByte_init(-12)).toByte(), (new UByte_init(-22)).toByte(), (new UByte_init(101)).toByte(), (new UByte_init(122)).toByte(), (new UByte_init(-82)).toByte(), (new UByte_init(8)).toByte(), (new UByte_init(-70)).toByte(), (new UByte_init(120)).toByte(), (new UByte_init(37)).toByte(), (new UByte_init(46)).toByte(), (new UByte_init(28)).toByte(), (new UByte_init(-90)).toByte(), (new UByte_init(-76)).toByte(), (new UByte_init(-58)).toByte(), (new UByte_init(-24)).toByte(), (new UByte_init(-35)).toByte(), (new UByte_init(116)).toByte(), (new UByte_init(31)).toByte(), (new UByte_init(75)).toByte(), (new UByte_init(-67)).toByte(), (new UByte_init(-117)).toByte(), (new UByte_init(-118)).toByte(), (new UByte_init(112)).toByte(), (new UByte_init(62)).toByte(), (new UByte_init(-75)).toByte(), (new UByte_init(102)).toByte(), (new UByte_init(72)).toByte(), (new UByte_init(3)).toByte(), (new UByte_init(-10)).toByte(), (new UByte_init(14)).toByte(), (new UByte_init(97)).toByte(), (new UByte_init(53)).toByte(), (new UByte_init(87)).toByte(), (new UByte_init(-71)).toByte(), (new UByte_init(-122)).toByte(), (new UByte_init(-63)).toByte(), (new UByte_init(29)).toByte(), (new UByte_init(-98)).toByte(), (new UByte_init(-31)).toByte(), (new UByte_init(-8)).toByte(), (new UByte_init(-104)).toByte(), (new UByte_init(17)).toByte(), (new UByte_init(105)).toByte(), (new UByte_init(-39)).toByte(), (new UByte_init(-114)).toByte(), (new UByte_init(-108)).toByte(), (new UByte_init(-101)).toByte(), (new UByte_init(30)).toByte(), (new UByte_init(-121)).toByte(), (new UByte_init(-23)).toByte(), (new UByte_init(-50)).toByte(), (new UByte_init(85)).toByte(), (new UByte_init(40)).toByte(), (new UByte_init(-33)).toByte(), (new UByte_init(-116)).toByte(), (new UByte_init(-95)).toByte(), (new UByte_init(-119)).toByte(), (new UByte_init(13)).toByte(), (new UByte_init(-65)).toByte(), (new UByte_init(-26)).toByte(), (new UByte_init(66)).toByte(), (new UByte_init(104)).toByte(), (new UByte_init(65)).toByte(), (new UByte_init(-103)).toByte(), (new UByte_init(45)).toByte(), (new UByte_init(15)).toByte(), (new UByte_init(-80)).toByte(), (new UByte_init(84)).toByte(), (new UByte_init(-69)).toByte(), (new UByte_init(22)).toByte()])); - this.inverseSBox_0 = new UByteArray(new Int8Array([(new UByte_init(82)).toByte(), (new UByte_init(9)).toByte(), (new UByte_init(106)).toByte(), (new UByte_init(-43)).toByte(), (new UByte_init(48)).toByte(), (new UByte_init(54)).toByte(), (new UByte_init(-91)).toByte(), (new UByte_init(56)).toByte(), (new UByte_init(-65)).toByte(), (new UByte_init(64)).toByte(), (new UByte_init(-93)).toByte(), (new UByte_init(-98)).toByte(), (new UByte_init(-127)).toByte(), (new UByte_init(-13)).toByte(), (new UByte_init(-41)).toByte(), (new UByte_init(-5)).toByte(), (new UByte_init(124)).toByte(), (new UByte_init(-29)).toByte(), (new UByte_init(57)).toByte(), (new UByte_init(-126)).toByte(), (new UByte_init(-101)).toByte(), (new UByte_init(47)).toByte(), (new UByte_init(-1)).toByte(), (new UByte_init(-121)).toByte(), (new UByte_init(52)).toByte(), (new UByte_init(-114)).toByte(), (new UByte_init(67)).toByte(), (new UByte_init(68)).toByte(), (new UByte_init(-60)).toByte(), (new UByte_init(-34)).toByte(), (new UByte_init(-23)).toByte(), (new UByte_init(-53)).toByte(), (new UByte_init(84)).toByte(), (new UByte_init(123)).toByte(), (new UByte_init(-108)).toByte(), (new UByte_init(50)).toByte(), (new UByte_init(-90)).toByte(), (new UByte_init(-62)).toByte(), (new UByte_init(35)).toByte(), (new UByte_init(61)).toByte(), (new UByte_init(-18)).toByte(), (new UByte_init(76)).toByte(), (new UByte_init(-107)).toByte(), (new UByte_init(11)).toByte(), (new UByte_init(66)).toByte(), (new UByte_init(-6)).toByte(), (new UByte_init(-61)).toByte(), (new UByte_init(78)).toByte(), (new UByte_init(8)).toByte(), (new UByte_init(46)).toByte(), (new UByte_init(-95)).toByte(), (new UByte_init(102)).toByte(), (new UByte_init(40)).toByte(), (new UByte_init(-39)).toByte(), (new UByte_init(36)).toByte(), (new UByte_init(-78)).toByte(), (new UByte_init(118)).toByte(), (new UByte_init(91)).toByte(), (new UByte_init(-94)).toByte(), (new UByte_init(73)).toByte(), (new UByte_init(109)).toByte(), (new UByte_init(-117)).toByte(), (new UByte_init(-47)).toByte(), (new UByte_init(37)).toByte(), (new UByte_init(114)).toByte(), (new UByte_init(-8)).toByte(), (new UByte_init(-10)).toByte(), (new UByte_init(100)).toByte(), (new UByte_init(-122)).toByte(), (new UByte_init(104)).toByte(), (new UByte_init(-104)).toByte(), (new UByte_init(22)).toByte(), (new UByte_init(-44)).toByte(), (new UByte_init(-92)).toByte(), (new UByte_init(92)).toByte(), (new UByte_init(-52)).toByte(), (new UByte_init(93)).toByte(), (new UByte_init(101)).toByte(), (new UByte_init(-74)).toByte(), (new UByte_init(-110)).toByte(), (new UByte_init(108)).toByte(), (new UByte_init(112)).toByte(), (new UByte_init(72)).toByte(), (new UByte_init(80)).toByte(), (new UByte_init(-3)).toByte(), (new UByte_init(-19)).toByte(), (new UByte_init(-71)).toByte(), (new UByte_init(-38)).toByte(), (new UByte_init(94)).toByte(), (new UByte_init(21)).toByte(), (new UByte_init(70)).toByte(), (new UByte_init(87)).toByte(), (new UByte_init(-89)).toByte(), (new UByte_init(-115)).toByte(), (new UByte_init(-99)).toByte(), (new UByte_init(-124)).toByte(), (new UByte_init(-112)).toByte(), (new UByte_init(-40)).toByte(), (new UByte_init(-85)).toByte(), (new UByte_init(0)).toByte(), (new UByte_init(-116)).toByte(), (new UByte_init(-68)).toByte(), (new UByte_init(-45)).toByte(), (new UByte_init(10)).toByte(), (new UByte_init(-9)).toByte(), (new UByte_init(-28)).toByte(), (new UByte_init(88)).toByte(), (new UByte_init(5)).toByte(), (new UByte_init(-72)).toByte(), (new UByte_init(-77)).toByte(), (new UByte_init(69)).toByte(), (new UByte_init(6)).toByte(), (new UByte_init(-48)).toByte(), (new UByte_init(44)).toByte(), (new UByte_init(30)).toByte(), (new UByte_init(-113)).toByte(), (new UByte_init(-54)).toByte(), (new UByte_init(63)).toByte(), (new UByte_init(15)).toByte(), (new UByte_init(2)).toByte(), (new UByte_init(-63)).toByte(), (new UByte_init(-81)).toByte(), (new UByte_init(-67)).toByte(), (new UByte_init(3)).toByte(), (new UByte_init(1)).toByte(), (new UByte_init(19)).toByte(), (new UByte_init(-118)).toByte(), (new UByte_init(107)).toByte(), (new UByte_init(58)).toByte(), (new UByte_init(-111)).toByte(), (new UByte_init(17)).toByte(), (new UByte_init(65)).toByte(), (new UByte_init(79)).toByte(), (new UByte_init(103)).toByte(), (new UByte_init(-36)).toByte(), (new UByte_init(-22)).toByte(), (new UByte_init(-105)).toByte(), (new UByte_init(-14)).toByte(), (new UByte_init(-49)).toByte(), (new UByte_init(-50)).toByte(), (new UByte_init(-16)).toByte(), (new UByte_init(-76)).toByte(), (new UByte_init(-26)).toByte(), (new UByte_init(115)).toByte(), (new UByte_init(-106)).toByte(), (new UByte_init(-84)).toByte(), (new UByte_init(116)).toByte(), (new UByte_init(34)).toByte(), (new UByte_init(-25)).toByte(), (new UByte_init(-83)).toByte(), (new UByte_init(53)).toByte(), (new UByte_init(-123)).toByte(), (new UByte_init(-30)).toByte(), (new UByte_init(-7)).toByte(), (new UByte_init(55)).toByte(), (new UByte_init(-24)).toByte(), (new UByte_init(28)).toByte(), (new UByte_init(117)).toByte(), (new UByte_init(-33)).toByte(), (new UByte_init(110)).toByte(), (new UByte_init(71)).toByte(), (new UByte_init(-15)).toByte(), (new UByte_init(26)).toByte(), (new UByte_init(113)).toByte(), (new UByte_init(29)).toByte(), (new UByte_init(41)).toByte(), (new UByte_init(-59)).toByte(), (new UByte_init(-119)).toByte(), (new UByte_init(111)).toByte(), (new UByte_init(-73)).toByte(), (new UByte_init(98)).toByte(), (new UByte_init(14)).toByte(), (new UByte_init(-86)).toByte(), (new UByte_init(24)).toByte(), (new UByte_init(-66)).toByte(), (new UByte_init(27)).toByte(), (new UByte_init(-4)).toByte(), (new UByte_init(86)).toByte(), (new UByte_init(62)).toByte(), (new UByte_init(75)).toByte(), (new UByte_init(-58)).toByte(), (new UByte_init(-46)).toByte(), (new UByte_init(121)).toByte(), (new UByte_init(32)).toByte(), (new UByte_init(-102)).toByte(), (new UByte_init(-37)).toByte(), (new UByte_init(-64)).toByte(), (new UByte_init(-2)).toByte(), (new UByte_init(120)).toByte(), (new UByte_init(-51)).toByte(), (new UByte_init(90)).toByte(), (new UByte_init(-12)).toByte(), (new UByte_init(31)).toByte(), (new UByte_init(-35)).toByte(), (new UByte_init(-88)).toByte(), (new UByte_init(51)).toByte(), (new UByte_init(-120)).toByte(), (new UByte_init(7)).toByte(), (new UByte_init(-57)).toByte(), (new UByte_init(49)).toByte(), (new UByte_init(-79)).toByte(), (new UByte_init(18)).toByte(), (new UByte_init(16)).toByte(), (new UByte_init(89)).toByte(), (new UByte_init(39)).toByte(), (new UByte_init(-128)).toByte(), (new UByte_init(-20)).toByte(), (new UByte_init(95)).toByte(), (new UByte_init(96)).toByte(), (new UByte_init(81)).toByte(), (new UByte_init(127)).toByte(), (new UByte_init(-87)).toByte(), (new UByte_init(25)).toByte(), (new UByte_init(-75)).toByte(), (new UByte_init(74)).toByte(), (new UByte_init(13)).toByte(), (new UByte_init(45)).toByte(), (new UByte_init(-27)).toByte(), (new UByte_init(122)).toByte(), (new UByte_init(-97)).toByte(), (new UByte_init(-109)).toByte(), (new UByte_init(-55)).toByte(), (new UByte_init(-100)).toByte(), (new UByte_init(-17)).toByte(), (new UByte_init(-96)).toByte(), (new UByte_init(-32)).toByte(), (new UByte_init(59)).toByte(), (new UByte_init(77)).toByte(), (new UByte_init(-82)).toByte(), (new UByte_init(42)).toByte(), (new UByte_init(-11)).toByte(), (new UByte_init(-80)).toByte(), (new UByte_init(-56)).toByte(), (new UByte_init(-21)).toByte(), (new UByte_init(-69)).toByte(), (new UByte_init(60)).toByte(), (new UByte_init(-125)).toByte(), (new UByte_init(83)).toByte(), (new UByte_init(-103)).toByte(), (new UByte_init(97)).toByte(), (new UByte_init(23)).toByte(), (new UByte_init(43)).toByte(), (new UByte_init(4)).toByte(), (new UByte_init(126)).toByte(), (new UByte_init(-70)).toByte(), (new UByte_init(119)).toByte(), (new UByte_init(-42)).toByte(), (new UByte_init(38)).toByte(), (new UByte_init(-31)).toByte(), (new UByte_init(105)).toByte(), (new UByte_init(20)).toByte(), (new UByte_init(99)).toByte(), (new UByte_init(85)).toByte(), (new UByte_init(33)).toByte(), (new UByte_init(12)).toByte(), (new UByte_init(125)).toByte()])); - this.rcon = new UByteArray(new Int8Array([(new UByte_init(-115)).toByte(), (new UByte_init(1)).toByte(), (new UByte_init(2)).toByte(), (new UByte_init(4)).toByte(), (new UByte_init(8)).toByte(), (new UByte_init(16)).toByte(), (new UByte_init(32)).toByte(), (new UByte_init(64)).toByte(), (new UByte_init(-128)).toByte(), (new UByte_init(27)).toByte(), (new UByte_init(54)).toByte()])); - } - Aes$Companion.prototype.encrypt_dx3icu$ = function (aesKey, input) { - return (new Aes(aesKey, input)).encrypt(); - }; - Aes$Companion.prototype.decrypt_dx3icu$ = function (aesKey, input) { - return (new Aes(aesKey, input)).decrypt(); - }; - Aes$Companion.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Companion', - interfaces: [] - }; - var Aes$Companion_instance = null; - function Aes$Companion_getInstance() { - if (Aes$Companion_instance === null) { - new Aes$Companion(); - } - return Aes$Companion_instance; - } - Object.defineProperty(Aes.prototype, 'completed', { - get: function () { - return this.completed_igbl6$_0; - }, - set: function (completed) { - this.completed_igbl6$_0 = completed; - } - }); - Aes.prototype.subBytes = function () { - var $receiver = this.state; - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - var indexRow = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var tmp$_1, tmp$_0_0; - var index_0 = 0; - for (tmp$_1 = 0; tmp$_1 !== item.length; ++tmp$_1) { - var item_0 = item[tmp$_1]; - var indexColumn = (tmp$_0_0 = index_0, index_0 = tmp$_0_0 + 1 | 0, tmp$_0_0); - this.state[indexRow][indexColumn] = this.getSBoxValue_mpmjao$(item_0); - } - } - }; - Aes.prototype.getSBoxValue_mpmjao$ = function (element) { - var other = new UInt(16); - var firstDigit = uintDivide(new UInt(element.data & 255), other).data; - var other_0 = new UInt(16); - var secondDigit = uintRemainder(new UInt(element.data & 255), other_0).data; - return Aes$Companion_getInstance().sBox_0.get_za3lpa$((firstDigit * 16 | 0) + secondDigit | 0); - }; - Aes.prototype.inverseSubBytes = function () { - var $receiver = this.state; - var tmp$, tmp$_0; - var index = 0; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var item = $receiver[tmp$]; - var indexRow = (tmp$_0 = index, index = tmp$_0 + 1 | 0, tmp$_0); - var tmp$_1, tmp$_0_0; - var index_0 = 0; - for (tmp$_1 = 0; tmp$_1 !== item.length; ++tmp$_1) { - var item_0 = item[tmp$_1]; - var indexColumn = (tmp$_0_0 = index_0, index_0 = tmp$_0_0 + 1 | 0, tmp$_0_0); - this.state[indexRow][indexColumn] = this.getInverseSBoxValue_mpmjao$(item_0); - } - } - }; - Aes.prototype.getInverseSBoxValue_mpmjao$ = function (element) { - var other = new UInt(16); - var firstDigit = uintDivide(new UInt(element.data & 255), other).data; - var other_0 = new UInt(16); - var secondDigit = uintRemainder(new UInt(element.data & 255), other_0).data; - return Aes$Companion_getInstance().inverseSBox_0.get_za3lpa$((firstDigit * 16 | 0) + secondDigit | 0); - }; - Aes.prototype.shiftRows = function () { - this.state[0] = [this.state[0][0], this.state[0][1], this.state[0][2], this.state[0][3]]; - this.state[1] = [this.state[1][1], this.state[1][2], this.state[1][3], this.state[1][0]]; - this.state[2] = [this.state[2][2], this.state[2][3], this.state[2][0], this.state[2][1]]; - this.state[3] = [this.state[3][3], this.state[3][0], this.state[3][1], this.state[3][2]]; - }; - Aes.prototype.inversShiftRows = function () { - this.state[0] = [this.state[0][0], this.state[0][1], this.state[0][2], this.state[0][3]]; - this.state[1] = [this.state[1][3], this.state[1][0], this.state[1][1], this.state[1][2]]; - this.state[2] = [this.state[2][2], this.state[2][3], this.state[2][0], this.state[2][1]]; - this.state[3] = [this.state[3][1], this.state[3][2], this.state[3][3], this.state[3][0]]; - }; - Aes.prototype.mixColumns = function () { - var $receiver = until(0, 4); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_0 = destination.add_11rb$; - var array = Array_0(4); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_1; i++) { - array[i] = new UByte_init(0); - } - tmp$_0.call(destination, array); - } - var stateMixed = copyToArray(destination); - for (var c = 0; c <= 3; c++) { - var tmp$_2 = stateMixed[0]; - var $this = this.gfm_lc54$(new UInt(2), this.state[0][c]); - var other = this.gfm_lc54$(new UInt(3), this.state[1][c]); - var $this_0 = new UByte_init(toByte($this.data ^ other.data)); - var other_0 = this.state[2][c]; - var $this_1 = new UByte_init(toByte($this_0.data ^ other_0.data)); - var other_1 = this.state[3][c]; - tmp$_2[c] = new UByte_init(toByte($this_1.data ^ other_1.data)); - var tmp$_3 = stateMixed[1]; - var $this_2 = this.state[0][c]; - var other_2 = this.gfm_lc54$(new UInt(2), this.state[1][c]); - var $this_3 = new UByte_init(toByte($this_2.data ^ other_2.data)); - var other_3 = this.gfm_lc54$(new UInt(3), this.state[2][c]); - var $this_4 = new UByte_init(toByte($this_3.data ^ other_3.data)); - var other_4 = this.state[3][c]; - tmp$_3[c] = new UByte_init(toByte($this_4.data ^ other_4.data)); - var tmp$_4 = stateMixed[2]; - var $this_5 = this.state[0][c]; - var other_5 = this.state[1][c]; - var $this_6 = new UByte_init(toByte($this_5.data ^ other_5.data)); - var other_6 = this.gfm_lc54$(new UInt(2), this.state[2][c]); - var $this_7 = new UByte_init(toByte($this_6.data ^ other_6.data)); - var other_7 = this.gfm_lc54$(new UInt(3), this.state[3][c]); - tmp$_4[c] = new UByte_init(toByte($this_7.data ^ other_7.data)); - var tmp$_5 = stateMixed[3]; - var $this_8 = this.gfm_lc54$(new UInt(3), this.state[0][c]); - var other_8 = this.state[1][c]; - var $this_9 = new UByte_init(toByte($this_8.data ^ other_8.data)); - var other_9 = this.state[2][c]; - var $this_10 = new UByte_init(toByte($this_9.data ^ other_9.data)); - var other_10 = this.gfm_lc54$(new UInt(2), this.state[3][c]); - tmp$_5[c] = new UByte_init(toByte($this_10.data ^ other_10.data)); - } - arrayCopy(stateMixed, this.state, 0, 0, stateMixed.length); - }; - Aes.prototype.inverseMixColumns = function () { - var $receiver = until(0, 4); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - var tmp$_0 = destination.add_11rb$; - var array = Array_0(4); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_1; i++) { - array[i] = new UByte_init(0); - } - tmp$_0.call(destination, array); - } - var stateMixed = copyToArray(destination); - for (var c = 0; c <= 3; c++) { - var tmp$_2 = stateMixed[0]; - var $this = this.gfm_lc54$(new UInt(14), this.state[0][c]); - var other = this.gfm_lc54$(new UInt(11), this.state[1][c]); - var $this_0 = new UByte_init(toByte($this.data ^ other.data)); - var other_0 = this.gfm_lc54$(new UInt(13), this.state[2][c]); - var $this_1 = new UByte_init(toByte($this_0.data ^ other_0.data)); - var other_1 = this.gfm_lc54$(new UInt(9), this.state[3][c]); - tmp$_2[c] = new UByte_init(toByte($this_1.data ^ other_1.data)); - var tmp$_3 = stateMixed[1]; - var $this_2 = this.gfm_lc54$(new UInt(9), this.state[0][c]); - var other_2 = this.gfm_lc54$(new UInt(14), this.state[1][c]); - var $this_3 = new UByte_init(toByte($this_2.data ^ other_2.data)); - var other_3 = this.gfm_lc54$(new UInt(11), this.state[2][c]); - var $this_4 = new UByte_init(toByte($this_3.data ^ other_3.data)); - var other_4 = this.gfm_lc54$(new UInt(13), this.state[3][c]); - tmp$_3[c] = new UByte_init(toByte($this_4.data ^ other_4.data)); - var tmp$_4 = stateMixed[2]; - var $this_5 = this.gfm_lc54$(new UInt(13), this.state[0][c]); - var other_5 = this.gfm_lc54$(new UInt(9), this.state[1][c]); - var $this_6 = new UByte_init(toByte($this_5.data ^ other_5.data)); - var other_6 = this.gfm_lc54$(new UInt(14), this.state[2][c]); - var $this_7 = new UByte_init(toByte($this_6.data ^ other_6.data)); - var other_7 = this.gfm_lc54$(new UInt(11), this.state[3][c]); - tmp$_4[c] = new UByte_init(toByte($this_7.data ^ other_7.data)); - var tmp$_5 = stateMixed[3]; - var $this_8 = this.gfm_lc54$(new UInt(11), this.state[0][c]); - var other_8 = this.gfm_lc54$(new UInt(13), this.state[1][c]); - var $this_9 = new UByte_init(toByte($this_8.data ^ other_8.data)); - var other_9 = this.gfm_lc54$(new UInt(9), this.state[2][c]); - var $this_10 = new UByte_init(toByte($this_9.data ^ other_9.data)); - var other_10 = this.gfm_lc54$(new UInt(14), this.state[3][c]); - tmp$_5[c] = new UByte_init(toByte($this_10.data ^ other_10.data)); - } - arrayCopy(stateMixed, this.state, 0, 0, stateMixed.length); - }; - Aes.prototype.galoisFieldAdd_jl2jf8$ = function (first, second) { - return new UByte_init(toByte(first.data ^ second.data)); - }; - Aes.prototype.galoisFieldMultiply_jl2jf8$ = function (first, second) { - var tmp$; - var result = new UInt(0); - var firstInt = new UInt(first.data & 255); - var secondInt = new UInt(second.data & 255); - var carry = new UInt(0); - for (var i = 0; i <= 7; i++) { - var $this = secondInt; - var other = new UInt(1); - if ((tmp$ = new UInt($this.data & other.data)) != null ? tmp$.equals(new UInt(1)) : null) { - var $this_0 = result; - var other_0 = firstInt; - result = new UInt($this_0.data ^ other_0.data); - } - var $this_1 = firstInt; - var other_1 = new UInt(128); - carry = new UInt($this_1.data & other_1.data); - firstInt = new UInt(firstInt.data << 1); - if (carry != null ? carry.equals(new UInt(128)) : null) { - var $this_2 = firstInt; - var other_2 = new UInt(27); - firstInt = new UInt($this_2.data ^ other_2.data); - } - secondInt = new UInt(secondInt.data >>> 1); - var $this_3 = firstInt; - var other_3 = new UInt(255); - firstInt = new UInt($this_3.data & other_3.data); - } - return new UByte_init(toByte(result.data)); - }; - Aes.prototype.addRoundKey = function () { - for (var i = 0; i < 4; i++) { - var tmp$ = this.state[0]; - var $this = this.state[0][i]; - var other = this.expandedKey[(this.round * 4 | 0) + i | 0][0]; - tmp$[i] = new UByte_init(toByte($this.data ^ other.data)); - var tmp$_0 = this.state[1]; - var $this_0 = this.state[1][i]; - var other_0 = this.expandedKey[(this.round * 4 | 0) + i | 0][1]; - tmp$_0[i] = new UByte_init(toByte($this_0.data ^ other_0.data)); - var tmp$_1 = this.state[2]; - var $this_1 = this.state[2][i]; - var other_1 = this.expandedKey[(this.round * 4 | 0) + i | 0][2]; - tmp$_1[i] = new UByte_init(toByte($this_1.data ^ other_1.data)); - var tmp$_2 = this.state[3]; - var $this_2 = this.state[3][i]; - var other_2 = this.expandedKey[(this.round * 4 | 0) + i | 0][3]; - tmp$_2[i] = new UByte_init(toByte($this_2.data ^ other_2.data)); - } - this.round = this.round + 1 | 0; - }; - Aes.prototype.inverseAddRoundKey = function () { - for (var i = 0; i < 4; i++) { - var tmp$ = this.state[0]; - var $this = this.state[0][i]; - var other = this.expandedKey[(this.round * 4 | 0) + i | 0][0]; - tmp$[i] = new UByte_init(toByte($this.data ^ other.data)); - var tmp$_0 = this.state[1]; - var $this_0 = this.state[1][i]; - var other_0 = this.expandedKey[(this.round * 4 | 0) + i | 0][1]; - tmp$_0[i] = new UByte_init(toByte($this_0.data ^ other_0.data)); - var tmp$_1 = this.state[2]; - var $this_1 = this.state[2][i]; - var other_1 = this.expandedKey[(this.round * 4 | 0) + i | 0][2]; - tmp$_1[i] = new UByte_init(toByte($this_1.data ^ other_1.data)); - var tmp$_2 = this.state[3]; - var $this_2 = this.state[3][i]; - var other_2 = this.expandedKey[(this.round * 4 | 0) + i | 0][3]; - tmp$_2[i] = new UByte_init(toByte($this_2.data ^ other_2.data)); - } - this.round = this.round - 1 | 0; - }; - Aes.prototype.gfm_lc54$ = function ($receiver, second) { - return this.galoisFieldMultiply_jl2jf8$(new UByte_init(toByte($receiver.data)), second); - }; - Aes.prototype.expandKey = function () { - var tmp$, tmp$_0, tmp$_1; - var $receiver = until(0, 4 * (this.numberOfRounds + 1 | 0) | 0); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$_2; - tmp$_2 = $receiver.iterator(); - while (tmp$_2.hasNext()) { - var item = tmp$_2.next(); - var tmp$_3 = destination.add_11rb$; - var array = Array_0(4); - var tmp$_4; - tmp$_4 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_4; i++) { - array[i] = new UByte_init(0); - } - tmp$_3.call(destination, array); - } - var expandedKey = copyToArray(destination); - tmp$ = this.aesKey.numberOf32BitWords; - for (var i_0 = 0; i_0 < tmp$; i_0++) { - expandedKey[i_0][0] = this.aesKey.keyArray[(i_0 * 4 | 0) + 0 | 0]; - expandedKey[i_0][1] = this.aesKey.keyArray[(i_0 * 4 | 0) + 1 | 0]; - expandedKey[i_0][2] = this.aesKey.keyArray[(i_0 * 4 | 0) + 2 | 0]; - expandedKey[i_0][3] = this.aesKey.keyArray[(i_0 * 4 | 0) + 3 | 0]; - } - tmp$_0 = this.aesKey.numberOf32BitWords; - tmp$_1 = 4 * (this.numberOfRounds + 1 | 0) | 0; - for (var i_1 = tmp$_0; i_1 < tmp$_1; i_1++) { - var temp = expandedKey[i_1 - 1 | 0].slice(); - if (i_1 % this.aesKey.numberOf32BitWords === 0) { - var tempTemp = temp[0]; - temp[0] = temp[1]; - temp[1] = temp[2]; - temp[2] = temp[3]; - temp[3] = tempTemp; - temp[0] = this.getSBoxValue_mpmjao$(temp[0]); - temp[1] = this.getSBoxValue_mpmjao$(temp[1]); - temp[2] = this.getSBoxValue_mpmjao$(temp[2]); - temp[3] = this.getSBoxValue_mpmjao$(temp[3]); - var $this = temp[0]; - var other = Aes$Companion_getInstance().rcon.get_za3lpa$(i_1 / this.aesKey.numberOf32BitWords | 0); - temp[0] = new UByte_init(toByte($this.data ^ other.data)); - } - else if (Kotlin.isType(this.aesKey, AesKey$Aes256Key) && i_1 % this.aesKey.numberOf32BitWords === 4) { - temp[0] = this.getSBoxValue_mpmjao$(temp[0]); - temp[1] = this.getSBoxValue_mpmjao$(temp[1]); - temp[2] = this.getSBoxValue_mpmjao$(temp[2]); - temp[3] = this.getSBoxValue_mpmjao$(temp[3]); - } - var $receiver_0 = expandedKey[i_1 - this.aesKey.numberOf32BitWords | 0]; - var destination_0 = ArrayList_init($receiver_0.length); - var tmp$_5, tmp$_0_0; - var index = 0; - for (tmp$_5 = 0; tmp$_5 !== $receiver_0.length; ++tmp$_5) { - var item_0 = $receiver_0[tmp$_5]; - var tmp$_6 = destination_0.add_11rb$; - var other_0 = temp[tmp$_0_0 = index, index = tmp$_0_0 + 1 | 0, tmp$_0_0]; - tmp$_6.call(destination_0, new UByte_init(toByte(item_0.data ^ other_0.data))); - } - expandedKey[i_1] = copyToArray(destination_0); - this.clearArray_0(temp); - } - return expandedKey; - }; - Aes.prototype.encrypt = function () { - var tmp$; - if (this.completed) { - throw RuntimeException_init('Encrypt can only be called once per Aes instance, since the state is cleared at the ' + 'end of the operation'); - } - this.printState_0(); - this.addRoundKey(); - this.printState_0(); - tmp$ = this.numberOfRounds - 1 | 0; - for (var i = 0; i < tmp$; i++) { - this.subBytes(); - this.printState_0(); - this.shiftRows(); - this.printState_0(); - this.mixColumns(); - this.printState_0(); - this.addRoundKey(); - this.printState_0(); - } - this.subBytes(); - this.printState_0(); - this.shiftRows(); - this.printState_0(); - this.addRoundKey(); - this.printState_0(); - var $receiver = until(0, 4); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$_0; - tmp$_0 = $receiver.iterator(); - while (tmp$_0.hasNext()) { - var item = tmp$_0.next(); - var tmp$_1 = destination.add_11rb$; - var array = Array_0(4); - var tmp$_2; - tmp$_2 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_2; i_0++) { - array[i_0] = new UByte_init(0); - } - tmp$_1.call(destination, array); - } - var transposedMatrix = copyToArray(destination); - for (var i_1 = 0; i_1 < 4; i_1++) { - for (var j = 0; j < 4; j++) { - transposedMatrix[i_1][j] = this.state[j][i_1]; - } - } - var $receiver_0 = this.state; - var tmp$_3; - for (tmp$_3 = 0; tmp$_3 !== $receiver_0.length; ++tmp$_3) { - var element = $receiver_0[tmp$_3]; - this.clearArray_0(element); - } - this.completed = true; - return copyToArray(flatten(transposedMatrix)); - }; - Aes.prototype.decrypt = function () { - var tmp$; - if (this.completed) { - throw RuntimeException_init('Decrypt can only be called once per Aes instance, since the state is cleared at the ' + 'end of the operation'); - } - this.round = this.numberOfRounds; - this.printState_0(); - this.inverseAddRoundKey(); - this.printState_0(); - tmp$ = this.numberOfRounds - 1 | 0; - for (var i = 0; i < tmp$; i++) { - this.inversShiftRows(); - this.printState_0(); - this.inverseSubBytes(); - this.printState_0(); - this.inverseAddRoundKey(); - this.printState_0(); - this.inverseMixColumns(); - this.printState_0(); - } - this.inversShiftRows(); - this.printState_0(); - this.inverseSubBytes(); - this.printState_0(); - this.inverseAddRoundKey(); - this.printState_0(); - var $receiver = until(0, 4); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$_0; - tmp$_0 = $receiver.iterator(); - while (tmp$_0.hasNext()) { - var item = tmp$_0.next(); - var tmp$_1 = destination.add_11rb$; - var array = Array_0(4); - var tmp$_2; - tmp$_2 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_2; i_0++) { - array[i_0] = new UByte_init(0); - } - tmp$_1.call(destination, array); - } - var transposedMatrix = copyToArray(destination); - for (var i_1 = 0; i_1 < 4; i_1++) { - for (var j = 0; j < 4; j++) { - transposedMatrix[i_1][j] = this.state[j][i_1]; - } - } - this.printState_1(transposedMatrix); - var $receiver_0 = this.state; - var tmp$_3; - for (tmp$_3 = 0; tmp$_3 !== $receiver_0.length; ++tmp$_3) { - var element = $receiver_0[tmp$_3]; - this.clearArray_0(element); - } - this.completed = true; - return copyToArray(flatten(transposedMatrix)); - }; - Aes.prototype.clearArray_0 = function (array) { - var tmp$; - tmp$ = get_indices(array).iterator(); - while (tmp$.hasNext()) { - var element = tmp$.next(); - array[element] = new UByte_init(0); - } - }; - function Aes$printState$lambda$lambda(it) { - return toString(it, 16); - } - Aes.prototype.printState_0 = function () { - if (!Aes$Companion_getInstance().debug_0) { - return; - } - println_0(); - var $receiver = this.state; - var tmp$; - for (tmp$ = 0; tmp$ !== $receiver.length; ++tmp$) { - var element = $receiver[tmp$]; - println(joinToString_0(element, ' ', void 0, void 0, void 0, void 0, Aes$printState$lambda$lambda)); - } - }; - function Aes$printState$lambda$lambda_0(it) { - return toString(it, 16); - } - Aes.prototype.printState_1 = function (specific) { - if (!Aes$Companion_getInstance().debug_0) { - return; - } - println_0(); - var tmp$; - for (tmp$ = 0; tmp$ !== specific.length; ++tmp$) { - var element = specific[tmp$]; - println(joinToString_0(element, ' ', void 0, void 0, void 0, void 0, Aes$printState$lambda$lambda_0)); - } - }; - Aes.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Aes', - interfaces: [] - }; - function AesKey(key, keyLength) { - this.key = key; - this.keyLength = keyLength; - var $receiver = chunked_0(this.key, 2); - var destination = ArrayList_init(collectionSizeOrDefault($receiver, 10)); - var tmp$; - tmp$ = $receiver.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(toUByte(item, 16)); - } - this.keyArray = copyToArray(destination); - this.numberOf32BitWords = this.keyLength / 32 | 0; - this.checkKeyLength_bm4lxs$(this.key, this.keyLength); - } - function AesKey$Aes128Key(key) { - AesKey.call(this, key, 128); - } - AesKey$Aes128Key.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Aes128Key', - interfaces: [AesKey] - }; - function AesKey$Aes192Key(key) { - AesKey.call(this, key, 192); - } - AesKey$Aes192Key.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Aes192Key', - interfaces: [AesKey] - }; - function AesKey$Aes256Key(key) { - AesKey.call(this, key, 256); - } - AesKey$Aes256Key.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Aes256Key', - interfaces: [AesKey] - }; - AesKey.prototype.checkKeyLength_bm4lxs$ = function (key, expectedLength) { - if ((key.length / 2 | 0) !== (expectedLength / 8 | 0)) { - throw RuntimeException_init('Invalid key length'); - } - }; - AesKey.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'AesKey', - interfaces: [] - }; - function UByteArray$lambda(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - var chunked$lambda_2 = wrapFunction(function () { - var copyToArray = Kotlin.kotlin.collections.copyToArray; - return function (it) { - return copyToArray(it); - }; - }); - function AesCbc(aesKey, mode, initializationVector) { - AesCbc$Companion_getInstance(); - if (initializationVector === void 0) - initializationVector = null; - this.aesKey = aesKey; - this.mode = mode; - this.currentOutput = []; - this.previousEncrypted = []; - var tmp$; - var $receiver = initializationVector; - var tmp$_0 = $receiver == null; - if (!tmp$_0) { - tmp$_0 = $receiver.length === 0; - } - if (tmp$_0) { - tmp$ = SRNG_getInstance().getRandomBytes_za3lpa$(16); - } - else { - tmp$ = initializationVector; - } - this.initVector = tmp$; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$([]); - } - this.output = list; - this.buffer = toTypedArray(new UByteArray(Kotlin.fillArray(new Int8Array(16), UByteArray$lambda(AesCbc$buffer$lambda)))); - this.bufferCounter = 0; - } - function AesCbc$Companion() { - AesCbc$Companion_instance = this; - this.BLOCK_BYTES = 16; - } - AesCbc$Companion.prototype.createEncryptor_c1slg8$ = function (aesKey) { - return new AesCbc(aesKey, Mode$ENCRYPT_getInstance()); - }; - AesCbc$Companion.prototype.createDecryptor_c1slg8$ = function (aesKey) { - return new AesCbc(aesKey, Mode$DECRYPT_getInstance()); - }; - AesCbc$Companion.prototype.encrypt_dx3icu$ = function (aesKey, data) { - var aesCbc = new AesCbc(aesKey, Mode$ENCRYPT_getInstance()); - aesCbc.addData_ummv9a$(data); - return aesCbc.encrypt(); - }; - AesCbc$Companion.prototype.decrypt_drkyzd$ = function (aesKey, data, initialCounter) { - if (initialCounter === void 0) - initialCounter = null; - var aesCbc = new AesCbc(aesKey, Mode$DECRYPT_getInstance(), initialCounter); - aesCbc.addData_ummv9a$(data); - return aesCbc.decrypt(); - }; - AesCbc$Companion.prototype.padToBlock_0 = function (unpadded) { - var paddingSize = 16 - unpadded.length | 0; - if (unpadded.length === 16) { - return unpadded; - } - if (unpadded.length === 16) { - var array = Array_0(16); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - array[i] = new UByte_init(toByte(16)); - } - return array; - } - if (unpadded.length > 16) { - throw IllegalStateException_init('Block larger than 128 bytes'); - } - var array_0 = Array_0(16); - var tmp$_0; - tmp$_0 = array_0.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_0; i_0++) { - var init$result; - if (get_indices(unpadded).contains_mef7kx$(i_0)) { - init$result = unpadded[i_0]; - } - else { - init$result = new UByte_init(toByte(paddingSize)); - } - array_0[i_0] = init$result; - } - return array_0; - }; - AesCbc$Companion.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Companion', - interfaces: [] - }; - var AesCbc$Companion_instance = null; - function AesCbc$Companion_getInstance() { - if (AesCbc$Companion_instance === null) { - new AesCbc$Companion(); - } - return AesCbc$Companion_instance; - } - AesCbc.prototype.addData_ummv9a$ = function (data) { - if ((this.bufferCounter + data.length | 0) < 16) - this.appendToBuffer_0(data, this.bufferCounter); - else if ((this.bufferCounter + data.length | 0) >= 16) { - var last = data.length % 16; - var hasLast = last !== 0; - var numberOfSlices = data.length / 16 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(data, until(Kotlin.imul(i, 16), Kotlin.imul(i + 1 | 0, 16)))); - } - if (hasLast) { - result.add_11rb$(slice(data, until(Kotlin.imul(numberOfSlices, 16), data.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunked = copyToArray(destination); - var tmp$_0; - for (tmp$_0 = 0; tmp$_0 !== chunked.length; ++tmp$_0) { - var element = chunked[tmp$_0]; - if ((this.bufferCounter + element.length | 0) < 16) { - this.appendToBuffer_0(element, this.bufferCounter); - } - else { - arrayCopy(element, this.buffer, this.bufferCounter, 0, 16 - this.bufferCounter | 0); - var $receiver = this.output; - var element_0 = this.consumeBlock_0(this.buffer); - $receiver.add_11rb$(element_0); - var array = Array_0(16); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_1; i_0++) { - var init$result; - var tmp$_2; - tmp$_2 = element.length - (16 - this.bufferCounter) | 0; - if (0 <= i_0 && i_0 < tmp$_2) { - init$result = element[i_0 + (16 - this.bufferCounter) | 0]; - } - else { - init$result = new UByte_init(0); - } - array[i_0] = init$result; - } - this.buffer = array; - this.bufferCounter = element.length - (16 - this.bufferCounter) | 0; - } - } - } - }; - AesCbc.prototype.encrypt = function () { - if (this.bufferCounter > 0) { - var lastBlockPadded = AesCbc$Companion_getInstance().padToBlock_0(this.buffer); - if (lastBlockPadded.length > 16) { - var last = lastBlockPadded.length % 16; - var hasLast = last !== 0; - var numberOfSlices = lastBlockPadded.length / 16 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(lastBlockPadded, until(Kotlin.imul(i, 16), Kotlin.imul(i + 1 | 0, 16)))); - } - if (hasLast) { - result.add_11rb$(slice(lastBlockPadded, until(Kotlin.imul(numberOfSlices, 16), lastBlockPadded.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunks = copyToArray(destination); - var $receiver = this.output; - var element = this.consumeBlock_0(chunks[0]); - $receiver.add_11rb$(element); - var $receiver_0 = this.output; - var element_0 = this.consumeBlock_0(chunks[1]); - $receiver_0.add_11rb$(element_0); - } - else { - var $receiver_1 = this.output; - var element_1 = this.consumeBlock_0(lastBlockPadded); - $receiver_1.add_11rb$(element_1); - } - } - var tmp$_0 = reversed(this.output); - var array = Array_0(0); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_1; i_0++) { - array[i_0] = new UByte_init(0); - } - var accumulator = array; - if (!tmp$_0.isEmpty()) { - var iterator = tmp$_0.listIterator_za3lpa$(tmp$_0.size); - while (iterator.hasPrevious()) { - var arrayOfUBytes = iterator.previous(); - accumulator = accumulator.concat(arrayOfUBytes); - } - } - return new EncryptedDataAndInitializationVector(accumulator, this.initVector); - }; - AesCbc.prototype.decrypt = function () { - var tmp$, tmp$_0; - var removePaddingCount = last_0(last(this.output)); - var other = new UInt(0); - var tmp$_1 = uintCompare((new UInt(removePaddingCount.data & 255)).data, other.data) > 0; - if (tmp$_1) { - var other_0 = new UInt(16); - tmp$_1 = uintCompare((new UInt(removePaddingCount.data & 255)).data, other_0.data) < 0; - } - if (tmp$_1) { - tmp$ = dropLast(last(this.output), removePaddingCount.data & 255 & 127); - } - else { - tmp$ = toList_0(last(this.output)); - } - var removedPadding = tmp$; - var tmp$_2 = copyToArray(dropLast_0(this.output, 1)); - var elements = copyToArray(removedPadding); - var preparedOutput = tmp$_2.concat(elements); - var reversed = Kotlin.isType(tmp$_0 = reversed_0(preparedOutput), List) ? tmp$_0 : throwCCE(); - var array = Array_0(0); - var tmp$_3; - tmp$_3 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_3; i++) { - array[i] = new UByte_init(0); - } - var accumulator = array; - if (!reversed.isEmpty()) { - var iterator = reversed.listIterator_za3lpa$(reversed.size); - while (iterator.hasPrevious()) { - var arrayOfUBytes = iterator.previous(); - accumulator = accumulator.concat(arrayOfUBytes); - } - } - var folded = accumulator; - return folded; - }; - AesCbc.prototype.appendToBuffer_0 = function (array, start) { - arrayCopy(array, this.buffer, start, 0, array.length); - this.bufferCounter = this.bufferCounter + array.length | 0; - }; - AesCbc.prototype.consumeBlock_0 = function (data) { - var tmp$, tmp$_0; - switch (this.mode.name) { - case 'ENCRYPT': - if (this.currentOutput.length === 0) { - println('IV: ' + this.initVector); - tmp$ = Aes$Companion_getInstance().encrypt_dx3icu$(this.aesKey, xor(data, this.initVector)); - } - else { - tmp$ = Aes$Companion_getInstance().encrypt_dx3icu$(this.aesKey, xor(data, this.currentOutput)); - } - - this.currentOutput = tmp$; - tmp$_0 = this.currentOutput; - break; - case 'DECRYPT': - if (this.currentOutput.length === 0) { - this.currentOutput = xor(Aes$Companion_getInstance().decrypt_dx3icu$(this.aesKey, data), this.initVector); - } - else { - this.currentOutput = xor(Aes$Companion_getInstance().decrypt_dx3icu$(this.aesKey, data), this.previousEncrypted); - } - - this.previousEncrypted = data; - tmp$_0 = this.currentOutput; - break; - default:tmp$_0 = Kotlin.noWhenBranchMatched(); - break; - } - return tmp$_0; - }; - function AesCbc$buffer$lambda(it) { - return new UByte_init(0); - } - AesCbc.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'AesCbc', - interfaces: [] - }; - function EncryptedDataAndInitializationVector(encryptedData, initilizationVector) { - this.encryptedData = encryptedData; - this.initilizationVector = initilizationVector; - } - EncryptedDataAndInitializationVector.prototype.equals = function (other) { - var tmp$, tmp$_0; - if (this === other) - return true; - if (other == null || !((tmp$ = Kotlin.getKClassFromExpression(this)) != null ? tmp$.equals(Kotlin.getKClassFromExpression(other)) : null)) - return false; - Kotlin.isType(tmp$_0 = other, EncryptedDataAndInitializationVector) ? tmp$_0 : throwCCE(); - if (!contentEquals(this.encryptedData, other.encryptedData)) - return false; - if (!contentEquals(this.initilizationVector, other.initilizationVector)) - return false; - return true; - }; - EncryptedDataAndInitializationVector.prototype.hashCode = function () { - var result = contentHashCode(this.encryptedData); - result = (31 * result | 0) + contentHashCode(this.initilizationVector) | 0; - return result; - }; - EncryptedDataAndInitializationVector.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'EncryptedDataAndInitializationVector', - interfaces: [] - }; - EncryptedDataAndInitializationVector.prototype.component1 = function () { - return this.encryptedData; - }; - EncryptedDataAndInitializationVector.prototype.component2 = function () { - return this.initilizationVector; - }; - EncryptedDataAndInitializationVector.prototype.copy_6a75nw$ = function (encryptedData, initilizationVector) { - return new EncryptedDataAndInitializationVector(encryptedData === void 0 ? this.encryptedData : encryptedData, initilizationVector === void 0 ? this.initilizationVector : initilizationVector); - }; - EncryptedDataAndInitializationVector.prototype.toString = function () { - return 'EncryptedDataAndInitializationVector(encryptedData=' + Kotlin.toString(this.encryptedData) + (', initilizationVector=' + Kotlin.toString(this.initilizationVector)) + ')'; - }; - function UByteArray$lambda_0(closure$init) { - return function (index) { - return closure$init(index).data; - }; - } - var chunked$lambda_3 = wrapFunction(function () { - var copyToArray = Kotlin.kotlin.collections.copyToArray; - return function (it) { - return copyToArray(it); - }; - }); - function AesCtr(aesKey, mode, initialCounter) { - AesCtr$Companion_getInstance(); - if (initialCounter === void 0) - initialCounter = null; - this.aesKey = aesKey; - this.mode = mode; - this.currentOutput = []; - this.previousEncrypted = []; - var tmp$; - var $receiver = initialCounter; - var tmp$_0 = $receiver == null; - if (!tmp$_0) { - tmp$_0 = $receiver.length === 0; - } - if (tmp$_0) { - tmp$ = SRNG_getInstance().getRandomBytes_za3lpa$(16); - } - else { - tmp$ = initialCounter; - } - this.counterStart = tmp$; - this.blockCounter = AesCtr$Companion_getInstance().modularCreator.fromBigInteger_sao9k6$(BigInteger.Companion.fromUByteArray_6jbb10$(this.counterStart, Endianness.BIG)); - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$([]); - } - this.output = list; - this.buffer = toTypedArray(new UByteArray(Kotlin.fillArray(new Int8Array(16), UByteArray$lambda_0(AesCtr$buffer$lambda)))); - this.bufferCounter = 0; - } - function AesCtr$Companion() { - AesCtr$Companion_instance = this; - this.BLOCK_BYTES = 16; - this.modularCreator = ModularBigInteger.Companion.creatorForModulo_sao9k6$(BigInteger.Companion.ONE.shl_za3lpa$(128).minus_za3lpa$(1)); - } - AesCtr$Companion.prototype.createEncryptor_c1slg8$ = function (aesKey) { - return new AesCtr(aesKey, Mode$ENCRYPT_getInstance()); - }; - AesCtr$Companion.prototype.createDecryptor_c1slg8$ = function (aesKey) { - return new AesCtr(aesKey, Mode$DECRYPT_getInstance()); - }; - AesCtr$Companion.prototype.encrypt_dx3icu$ = function (aesKey, data) { - var aesCtr = new AesCtr(aesKey, Mode$ENCRYPT_getInstance()); - aesCtr.addData_ummv9a$(data); - return aesCtr.encrypt(); - }; - AesCtr$Companion.prototype.decrypt_drkyzd$ = function (aesKey, data, initialCounter) { - if (initialCounter === void 0) - initialCounter = null; - var aesCtr = new AesCtr(aesKey, Mode$DECRYPT_getInstance(), initialCounter); - aesCtr.addData_ummv9a$(data); - return aesCtr.decrypt(); - }; - AesCtr$Companion.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'Companion', - interfaces: [] - }; - var AesCtr$Companion_instance = null; - function AesCtr$Companion_getInstance() { - if (AesCtr$Companion_instance === null) { - new AesCtr$Companion(); - } - return AesCtr$Companion_instance; - } - AesCtr.prototype.addData_ummv9a$ = function (data) { - if ((this.bufferCounter + data.length | 0) < 16) - this.appendToBuffer_0(data, this.bufferCounter); - else if ((this.bufferCounter + data.length | 0) >= 16) { - var last = data.length % 16; - var hasLast = last !== 0; - var numberOfSlices = data.length / 16 | 0; - var list = ArrayList_init(0); - for (var index = 0; index < 0; index++) { - list.add_11rb$(emptyList()); - } - var result = list; - for (var i = 0; i < numberOfSlices; i++) { - result.add_11rb$(slice(data, until(Kotlin.imul(i, 16), Kotlin.imul(i + 1 | 0, 16)))); - } - if (hasLast) { - result.add_11rb$(slice(data, until(Kotlin.imul(numberOfSlices, 16), data.length))); - } - var destination = ArrayList_init(collectionSizeOrDefault(result, 10)); - var tmp$; - tmp$ = result.iterator(); - while (tmp$.hasNext()) { - var item = tmp$.next(); - destination.add_11rb$(copyToArray(item)); - } - var chunked = copyToArray(destination); - var tmp$_0; - for (tmp$_0 = 0; tmp$_0 !== chunked.length; ++tmp$_0) { - var element = chunked[tmp$_0]; - if ((this.bufferCounter + element.length | 0) < 16) { - this.appendToBuffer_0(element, this.bufferCounter); - } - else { - arrayCopy(element, this.buffer, this.bufferCounter, 0, 16 - this.bufferCounter | 0); - var $receiver = this.output; - var element_0 = this.consumeBlock_0(this.buffer, this.blockCounter); - $receiver.add_11rb$(element_0); - this.blockCounter = this.blockCounter.plus_za3lpa$(1); - var array = Array_0(16); - var tmp$_1; - tmp$_1 = array.length - 1 | 0; - for (var i_0 = 0; i_0 <= tmp$_1; i_0++) { - var init$result; - var tmp$_2; - tmp$_2 = element.length - (16 - this.bufferCounter) | 0; - if (0 <= i_0 && i_0 < tmp$_2) { - init$result = element[i_0 + (16 - this.bufferCounter) | 0]; - } - else { - init$result = new UByte_init(0); - } - array[i_0] = init$result; - } - this.buffer = array; - this.bufferCounter = element.length - (16 - this.bufferCounter) | 0; - } - } - } - }; - AesCtr.prototype.encrypt = function () { - if (this.bufferCounter > 0) { - var $receiver = this.output; - var element = this.consumeBlock_0(this.buffer, this.blockCounter); - $receiver.add_11rb$(element); - } - var tmp$ = reversed(this.output); - var array = Array_0(0); - var tmp$_0; - tmp$_0 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - array[i] = new UByte_init(0); - } - var accumulator = array; - if (!tmp$.isEmpty()) { - var iterator = tmp$.listIterator_za3lpa$(tmp$.size); - while (iterator.hasPrevious()) { - var arrayOfUBytes = iterator.previous(); - accumulator = accumulator.concat(arrayOfUBytes); - } - } - return new EncryptedDataAndInitialCounter(accumulator, this.counterStart); - }; - AesCtr.prototype.decrypt = function () { - var tmp$; - if (this.bufferCounter > 0) { - var $receiver = this.output; - var element = this.consumeBlock_0(this.buffer, this.blockCounter); - $receiver.add_11rb$(element); - } - var reversed_0 = Kotlin.isType(tmp$ = reversed(this.output), List) ? tmp$ : throwCCE(); - var array = Array_0(0); - var tmp$_0; - tmp$_0 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - array[i] = new UByte_init(0); - } - var accumulator = array; - if (!reversed_0.isEmpty()) { - var iterator = reversed_0.listIterator_za3lpa$(reversed_0.size); - while (iterator.hasPrevious()) { - var arrayOfUBytes = iterator.previous(); - accumulator = accumulator.concat(arrayOfUBytes); - } - } - var folded = accumulator; - return folded; - }; - AesCtr.prototype.appendToBuffer_0 = function (array, start) { - arrayCopy(array, this.buffer, start, 0, array.length); - this.bufferCounter = this.bufferCounter + array.length | 0; - }; - AesCtr.prototype.consumeBlock_0 = function (data, blockCount) { - var tmp$; - var blockCountAsByteArray = this.expandCounterTo16Bytes_0(blockCount.toUByteArray_1g0qma$(Endianness.BIG)); - switch (this.mode.name) { - case 'ENCRYPT': - tmp$ = xor(Aes$Companion_getInstance().encrypt_dx3icu$(this.aesKey, blockCountAsByteArray), data); - break; - case 'DECRYPT': - tmp$ = xor(Aes$Companion_getInstance().encrypt_dx3icu$(this.aesKey, blockCountAsByteArray), data); - break; - default:tmp$ = Kotlin.noWhenBranchMatched(); - break; - } - return tmp$; - }; - AesCtr.prototype.expandCounterTo16Bytes_0 = function ($receiver) { - var tmp$; - if ($receiver.length < 16) { - println('Expanding'); - var diff = 16 - $receiver.length | 0; - var array = Array_0(diff); - var tmp$_0; - tmp$_0 = array.length - 1 | 0; - for (var i = 0; i <= tmp$_0; i++) { - array[i] = new UByte_init(0); - } - var pad = array; - tmp$ = pad.concat($receiver); - } - else { - tmp$ = $receiver; - } - return tmp$; - }; - function AesCtr$buffer$lambda(it) { - return new UByte_init(0); - } - AesCtr.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'AesCtr', - interfaces: [] - }; - function EncryptedDataAndInitialCounter(encryptedData, initialCounter) { - this.encryptedData = encryptedData; - this.initialCounter = initialCounter; - } - EncryptedDataAndInitialCounter.prototype.equals = function (other) { - var tmp$, tmp$_0; - if (this === other) - return true; - if (other == null || !((tmp$ = Kotlin.getKClassFromExpression(this)) != null ? tmp$.equals(Kotlin.getKClassFromExpression(other)) : null)) - return false; - Kotlin.isType(tmp$_0 = other, EncryptedDataAndInitializationVector) ? tmp$_0 : throwCCE(); - if (!contentEquals(this.encryptedData, other.encryptedData)) - return false; - if (!contentEquals(this.initialCounter, other.initilizationVector)) - return false; - return true; - }; - EncryptedDataAndInitialCounter.prototype.hashCode = function () { - var result = contentHashCode(this.encryptedData); - result = (31 * result | 0) + contentHashCode(this.initialCounter) | 0; - return result; - }; - EncryptedDataAndInitialCounter.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'EncryptedDataAndInitialCounter', - interfaces: [] - }; - EncryptedDataAndInitialCounter.prototype.component1 = function () { - return this.encryptedData; - }; - EncryptedDataAndInitialCounter.prototype.component2 = function () { - return this.initialCounter; - }; - EncryptedDataAndInitialCounter.prototype.copy_6a75nw$ = function (encryptedData, initialCounter) { - return new EncryptedDataAndInitialCounter(encryptedData === void 0 ? this.encryptedData : encryptedData, initialCounter === void 0 ? this.initialCounter : initialCounter); - }; - EncryptedDataAndInitialCounter.prototype.toString = function () { - return 'EncryptedDataAndInitialCounter(encryptedData=' + Kotlin.toString(this.encryptedData) + (', initialCounter=' + Kotlin.toString(this.initialCounter)) + ')'; - }; - function Mode(name, ordinal) { - Enum.call(this); - this.name$ = name; - this.ordinal$ = ordinal; - } - function Mode_initFields() { - Mode_initFields = function () { - }; - Mode$ENCRYPT_instance = new Mode('ENCRYPT', 0); - Mode$DECRYPT_instance = new Mode('DECRYPT', 1); - } - var Mode$ENCRYPT_instance; - function Mode$ENCRYPT_getInstance() { - Mode_initFields(); - return Mode$ENCRYPT_instance; - } - var Mode$DECRYPT_instance; - function Mode$DECRYPT_getInstance() { - Mode_initFields(); - return Mode$DECRYPT_instance; - } - Mode.$metadata$ = { - kind: Kind_CLASS, - simpleName: 'Mode', - interfaces: [Enum] - }; - function Mode$values() { - return [Mode$ENCRYPT_getInstance(), Mode$DECRYPT_getInstance()]; - } - Mode.values = Mode$values; - function Mode$valueOf(name) { - switch (name) { - case 'ENCRYPT': - return Mode$ENCRYPT_getInstance(); - case 'DECRYPT': - return Mode$DECRYPT_getInstance(); - default:throwISE('No enum constant com.ionspin.kotlin.crypto.symmetric.Mode.' + name); - } - } - Mode.valueOf_61zpoe$ = Mode$valueOf; - function SRNG() { - SRNG_instance = this; - this.counter = 0; - } - SRNG.prototype.getRandomBytes_za3lpa$ = function (amount) { - var array = Array_0(amount); - var tmp$; - tmp$ = array.length - 1 | 0; - for (var i = 0; i <= tmp$; i++) { - var tmp$_0; - array[i] = new UByte_init(toByte((tmp$_0 = this.counter, this.counter = tmp$_0 + 1 | 0, tmp$_0))); - } - return array; - }; - SRNG.$metadata$ = { - kind: Kind_OBJECT, - simpleName: 'SRNG', - interfaces: [] - }; - var SRNG_instance = null; - function SRNG_getInstance() { - if (SRNG_instance === null) { - new SRNG(); - } - return SRNG_instance; - } - var package$com = _.com || (_.com = {}); - var package$ionspin = package$com.ionspin || (package$com.ionspin = {}); - var package$kotlin = package$ionspin.kotlin || (package$ionspin.kotlin = {}); - var package$crypto = package$kotlin.crypto || (package$kotlin.crypto = {}); - Object.defineProperty(package$crypto, 'Config', { - get: Config_getInstance - }); - package$crypto.hexColumsPrint_mgx7ee$ = hexColumsPrint; - package$crypto.hexColumsPrint_q387ch$ = hexColumsPrint_0; - package$crypto.hexColumsPrint_uo2ox1$ = hexColumsPrint_1; - package$crypto.rotateRight_k13f4a$ = rotateRight; - package$crypto.rotateRight_hc3rh$ = rotateRight_0; - package$crypto.xor_h1cpxt$ = xor; - package$crypto.hexStringToUByteArray_pdl1vz$ = hexStringToUByteArray; - package$crypto.toHexString_q387ch$ = toHexString; - var package$hash = package$crypto.hash || (package$crypto.hash = {}); - package$hash.Hash = Hash; - package$hash.UpdatableHash = UpdatableHash; - package$hash.StatelessHash = StatelessHash; - $$importsForInline$$['multiplatform-crypto'] = _; - Object.defineProperty(Blake2b, 'Companion', { - get: Blake2b$Companion_getInstance - }); - var package$blake2b = package$hash.blake2b || (package$hash.blake2b = {}); - package$blake2b.Blake2b_init_9d67ql$ = Blake2b_init; - package$blake2b.Blake2b = Blake2b; - Object.defineProperty(Sha256, 'Companion', { - get: Sha256$Companion_getInstance - }); - var package$sha = package$hash.sha || (package$hash.sha = {}); - package$sha.Sha256 = Sha256; - Object.defineProperty(Sha512, 'Companion', { - get: Sha512$Companion_getInstance - }); - package$sha.Sha512 = Sha512; - Object.defineProperty(Aes, 'Companion', { - get: Aes$Companion_getInstance - }); - var package$symmetric = package$crypto.symmetric || (package$crypto.symmetric = {}); - package$symmetric.Aes = Aes; - AesKey.Aes128Key = AesKey$Aes128Key; - AesKey.Aes192Key = AesKey$Aes192Key; - AesKey.Aes256Key = AesKey$Aes256Key; - package$symmetric.AesKey = AesKey; - Object.defineProperty(AesCbc, 'Companion', { - get: AesCbc$Companion_getInstance - }); - package$symmetric.AesCbc = AesCbc; - package$symmetric.EncryptedDataAndInitializationVector = EncryptedDataAndInitializationVector; - Object.defineProperty(AesCtr, 'Companion', { - get: AesCtr$Companion_getInstance - }); - package$symmetric.AesCtr = AesCtr; - package$symmetric.EncryptedDataAndInitialCounter = EncryptedDataAndInitialCounter; - Object.defineProperty(Mode, 'ENCRYPT', { - get: Mode$ENCRYPT_getInstance - }); - Object.defineProperty(Mode, 'DECRYPT', { - get: Mode$DECRYPT_getInstance - }); - package$symmetric.Mode = Mode; - Object.defineProperty(package$crypto, 'SRNG', { - get: SRNG_getInstance - }); - Blake2b$Companion.prototype.digest_5pksov$ = StatelessHash.prototype.digest_5pksov$; - Blake2b$Companion.prototype.digest_o2z9gi$ = StatelessHash.prototype.digest_o2z9gi$; - Sha256$Companion.prototype.digest_5pksov$ = StatelessHash.prototype.digest_5pksov$; - Sha256$Companion.prototype.digest_o2z9gi$ = StatelessHash.prototype.digest_o2z9gi$; - Sha512$Companion.prototype.digest_5pksov$ = StatelessHash.prototype.digest_5pksov$; - Sha512$Companion.prototype.digest_o2z9gi$ = StatelessHash.prototype.digest_o2z9gi$; - Kotlin.defineModule('multiplatform-crypto', _); - return _; -}(module.exports, require('kotlin'), require('bignum'))); - -//# sourceMappingURL=multiplatform-crypto.js.map diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js.map b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js.map deleted file mode 100644 index 45462e0..0000000 --- a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"multiplatform-crypto.js","sources":["kotlin/text/numberConversions.kt","generated/_Arrays.kt","kotlin/ULong.kt","kotlin/UByte.kt","experimental/bitwiseOperations.kt","kotlin/collections.kt","generated/_Collections.kt","kotlin/UInt.kt","arrayUtils.kt","generated/_ArraysJs.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/Config.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/Util.kt","kotlin/text/string.kt","collections/Collections.kt","util/Standard.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/hash/Hash.kt","kotlin/kotlin.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/hash/blake2b/Blake2b.kt","collections/Arrays.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/hash/sha/Sha256.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/hash/sha/Sha512.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/Aes.kt","kotlin/UByteArray.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCbc.kt","collections/MutableCollections.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/AesCtr.kt","../../../../../src/commonMain/kotlin/com/ionspin/kotlin/crypto/symmetric/Mode.kt","../../../../../src/jsMain/kotlin/com/ionspin/kotlin/crypto/SRNG.kt"],"sourcesContent":["/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\n\n/**\n * Returns `true` if the contents of this string is equal to the word \"true\", ignoring case, and `false` otherwise.\n */\npublic actual fun String.toBoolean(): Boolean = toLowerCase() == \"true\"\n\n/**\n * Parses the string as a signed [Byte] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toByte(): Byte = toByteOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a signed [Byte] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toByte(radix: Int): Byte = toByteOrNull(radix) ?: numberFormatError(this)\n\n\n/**\n * Parses the string as a [Short] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toShort(): Short = toShortOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Short] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toShort(radix: Int): Short = toShortOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as an [Int] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toInt(): Int = toIntOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as an [Int] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toInt(radix: Int): Int = toIntOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Long] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toLong(): Long = toLongOrNull() ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Long] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n * @throws IllegalArgumentException when [radix] is not a valid radix for string to number conversion.\n */\npublic actual fun String.toLong(radix: Int): Long = toLongOrNull(radix) ?: numberFormatError(this)\n\n/**\n * Parses the string as a [Double] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\npublic actual fun String.toDouble(): Double = (+(this.asDynamic())).unsafeCast().also {\n if (it.isNaN() && !this.isNaN() || it == 0.0 && this.isBlank())\n numberFormatError(this)\n}\n\n/**\n * Parses the string as a [Float] number and returns the result.\n * @throws NumberFormatException if the string is not a valid representation of a number.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toFloat(): Float = toDouble().unsafeCast()\n\n/**\n * Parses the string as a [Double] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\npublic actual fun String.toDoubleOrNull(): Double? = (+(this.asDynamic())).unsafeCast().takeIf {\n !(it.isNaN() && !this.isNaN() || it == 0.0 && this.isBlank())\n}\n\n/**\n * Parses the string as a [Float] number and returns the result\n * or `null` if the string is not a valid representation of a number.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toFloatOrNull(): Float? = toDoubleOrNull().unsafeCast()\n\n/**\n * Returns a string representation of this [Byte] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Byte.toString(radix: Int): String = this.toInt().toString(radix)\n\n/**\n * Returns a string representation of this [Short] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\n@kotlin.internal.InlineOnly\npublic actual inline fun Short.toString(radix: Int): String = this.toInt().toString(radix)\n\n/**\n * Returns a string representation of this [Int] value in the specified [radix].\n *\n * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Int.toString(radix: Int): String = asDynamic().toString(checkRadix(radix))\n\nprivate fun String.isNaN(): Boolean = when (this.toLowerCase()) {\n \"nan\", \"+nan\", \"-nan\" -> true\n else -> false\n}\n\n/**\n * Checks whether the given [radix] is valid radix for string to number and number to string conversion.\n */\n@PublishedApi\ninternal actual fun checkRadix(radix: Int): Int {\n if (radix !in 2..36) {\n throw IllegalArgumentException(\"radix $radix was not in valid range 2..36\")\n }\n return radix\n}\n\ninternal actual fun digitOf(char: Char, radix: Int): Int = when {\n char >= '0' && char <= '9' -> char - '0'\n char >= 'A' && char <= 'Z' -> char - 'A' + 10\n char >= 'a' && char <= 'z' -> char - 'a' + 10\n else -> -1\n}.let { if (it >= radix) -1 else it }\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"ArraysKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component1(): Byte {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component1(): Short {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component1(): Int {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component1(): Long {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component1(): Float {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component1(): Double {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component1(): Boolean {\n return get(0)\n}\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component1(): Char {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component2(): Byte {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component2(): Short {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component2(): Int {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component2(): Long {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component2(): Float {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component2(): Double {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component2(): Boolean {\n return get(1)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component2(): Char {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component3(): Byte {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component3(): Short {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component3(): Int {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component3(): Long {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component3(): Float {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component3(): Double {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component3(): Boolean {\n return get(2)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component3(): Char {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component4(): Byte {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component4(): Short {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component4(): Int {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component4(): Long {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component4(): Float {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component4(): Double {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component4(): Boolean {\n return get(3)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component4(): Char {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Array.component5(): T {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ByteArray.component5(): Byte {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun ShortArray.component5(): Short {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun IntArray.component5(): Int {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun LongArray.component5(): Long {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun FloatArray.component5(): Float {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun DoubleArray.component5(): Double {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun BooleanArray.component5(): Boolean {\n return get(4)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun CharArray.component5(): Char {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Array.contains(element: T): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun ByteArray.contains(element: Byte): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun ShortArray.contains(element: Short): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun IntArray.contains(element: Int): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun LongArray.contains(element: Long): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun FloatArray.contains(element: Float): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun DoubleArray.contains(element: Double): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun BooleanArray.contains(element: Boolean): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns `true` if [element] is found in the array.\n */\npublic operator fun CharArray.contains(element: Char): Boolean {\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun Array.elementAt(index: Int): T\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun ByteArray.elementAt(index: Int): Byte\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun ShortArray.elementAt(index: Int): Short\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun IntArray.elementAt(index: Int): Int\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun LongArray.elementAt(index: Int): Long\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun FloatArray.elementAt(index: Int): Float\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun DoubleArray.elementAt(index: Int): Double\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun BooleanArray.elementAt(index: Int): Boolean\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic expect fun CharArray.elementAt(index: Int): Char\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Byte): Byte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Short): Short {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Int): Int {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Long): Long {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Float): Float {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Double): Double {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.elementAtOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.elementAtOrNull(index: Int): Byte? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.elementAtOrNull(index: Int): Short? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.elementAtOrNull(index: Int): Int? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.elementAtOrNull(index: Int): Long? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.elementAtOrNull(index: Int): Float? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.elementAtOrNull(index: Int): Double? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.elementAtOrNull(index: Int): Boolean? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.elementAtOrNull(index: Int): Char? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.find(predicate: (Byte) -> Boolean): Byte? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.find(predicate: (Short) -> Boolean): Short? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.find(predicate: (Int) -> Boolean): Int? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.find(predicate: (Long) -> Boolean): Long? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.find(predicate: (Float) -> Boolean): Float? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.find(predicate: (Double) -> Boolean): Double? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.find(predicate: (Boolean) -> Boolean): Boolean? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.find(predicate: (Char) -> Boolean): Char? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.findLast(predicate: (Byte) -> Boolean): Byte? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.findLast(predicate: (Short) -> Boolean): Short? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.findLast(predicate: (Int) -> Boolean): Int? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.findLast(predicate: (Long) -> Boolean): Long? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.findLast(predicate: (Float) -> Boolean): Float? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.findLast(predicate: (Double) -> Boolean): Double? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.findLast(predicate: (Boolean) -> Boolean): Boolean? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.findLast(predicate: (Char) -> Boolean): Char? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun Array.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ByteArray.first(): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ShortArray.first(): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun IntArray.first(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun LongArray.first(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun FloatArray.first(): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun DoubleArray.first(): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun BooleanArray.first(): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun CharArray.first(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Array.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ByteArray.first(predicate: (Byte) -> Boolean): Byte {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ShortArray.first(predicate: (Short) -> Boolean): Short {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun IntArray.first(predicate: (Int) -> Boolean): Int {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun LongArray.first(predicate: (Long) -> Boolean): Long {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun FloatArray.first(predicate: (Float) -> Boolean): Float {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun DoubleArray.first(predicate: (Double) -> Boolean): Double {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun BooleanArray.first(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun CharArray.first(predicate: (Char) -> Boolean): Char {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun Array.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun ByteArray.firstOrNull(): Byte? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun ShortArray.firstOrNull(): Short? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun IntArray.firstOrNull(): Int? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun LongArray.firstOrNull(): Long? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun FloatArray.firstOrNull(): Float? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun DoubleArray.firstOrNull(): Double? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun BooleanArray.firstOrNull(): Boolean? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element, or `null` if the array is empty.\n */\npublic fun CharArray.firstOrNull(): Char? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Array.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun ByteArray.firstOrNull(predicate: (Byte) -> Boolean): Byte? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun ShortArray.firstOrNull(predicate: (Short) -> Boolean): Short? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun IntArray.firstOrNull(predicate: (Int) -> Boolean): Int? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun LongArray.firstOrNull(predicate: (Long) -> Boolean): Long? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun FloatArray.firstOrNull(predicate: (Float) -> Boolean): Float? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun DoubleArray.firstOrNull(predicate: (Double) -> Boolean): Double? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun BooleanArray.firstOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun CharArray.firstOrNull(predicate: (Char) -> Boolean): Char? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.getOrElse(index: Int, defaultValue: (Int) -> Byte): Byte {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.getOrElse(index: Int, defaultValue: (Int) -> Short): Short {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.getOrElse(index: Int, defaultValue: (Int) -> Int): Int {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.getOrElse(index: Int, defaultValue: (Int) -> Long): Long {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.getOrElse(index: Int, defaultValue: (Int) -> Float): Float {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.getOrElse(index: Int, defaultValue: (Int) -> Double): Double {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.getOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.getOrElse(index: Int, defaultValue: (Int) -> Char): Char {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun Array.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun ByteArray.getOrNull(index: Int): Byte? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun ShortArray.getOrNull(index: Int): Short? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun IntArray.getOrNull(index: Int): Int? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun LongArray.getOrNull(index: Int): Long? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun FloatArray.getOrNull(index: Int): Float? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun DoubleArray.getOrNull(index: Int): Double? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun BooleanArray.getOrNull(index: Int): Boolean? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this array.\n */\npublic fun CharArray.getOrNull(index: Int): Char? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Array.indexOf(element: T): Int {\n if (element == null) {\n for (index in indices) {\n if (this[index] == null) {\n return index\n }\n }\n } else {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun ByteArray.indexOf(element: Byte): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun ShortArray.indexOf(element: Short): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun IntArray.indexOf(element: Int): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun LongArray.indexOf(element: Long): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun FloatArray.indexOf(element: Float): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun DoubleArray.indexOf(element: Double): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun BooleanArray.indexOf(element: Boolean): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the array does not contain element.\n */\npublic fun CharArray.indexOf(element: Char): Int {\n for (index in indices) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun Array.indexOfFirst(predicate: (T) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ByteArray.indexOfFirst(predicate: (Byte) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ShortArray.indexOfFirst(predicate: (Short) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun IntArray.indexOfFirst(predicate: (Int) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun LongArray.indexOfFirst(predicate: (Long) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun FloatArray.indexOfFirst(predicate: (Float) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun DoubleArray.indexOfFirst(predicate: (Double) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun BooleanArray.indexOfFirst(predicate: (Boolean) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun CharArray.indexOfFirst(predicate: (Char) -> Boolean): Int {\n for (index in indices) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun Array.indexOfLast(predicate: (T) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ByteArray.indexOfLast(predicate: (Byte) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun ShortArray.indexOfLast(predicate: (Short) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun IntArray.indexOfLast(predicate: (Int) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun LongArray.indexOfLast(predicate: (Long) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun FloatArray.indexOfLast(predicate: (Float) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun DoubleArray.indexOfLast(predicate: (Double) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun BooleanArray.indexOfLast(predicate: (Boolean) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the array does not contain such element.\n */\npublic inline fun CharArray.indexOfLast(predicate: (Char) -> Boolean): Int {\n for (index in indices.reversed()) {\n if (predicate(this[index])) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun Array.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ByteArray.last(): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun ShortArray.last(): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun IntArray.last(): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun LongArray.last(): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun FloatArray.last(): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun DoubleArray.last(): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun BooleanArray.last(): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the array is empty.\n */\npublic fun CharArray.last(): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Array.last(predicate: (T) -> Boolean): T {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ByteArray.last(predicate: (Byte) -> Boolean): Byte {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun ShortArray.last(predicate: (Short) -> Boolean): Short {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun IntArray.last(predicate: (Int) -> Boolean): Int {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun LongArray.last(predicate: (Long) -> Boolean): Long {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun FloatArray.last(predicate: (Float) -> Boolean): Float {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun DoubleArray.last(predicate: (Double) -> Boolean): Double {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun BooleanArray.last(predicate: (Boolean) -> Boolean): Boolean {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun CharArray.last(predicate: (Char) -> Boolean): Char {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Array.lastIndexOf(element: T): Int {\n if (element == null) {\n for (index in indices.reversed()) {\n if (this[index] == null) {\n return index\n }\n }\n } else {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun ByteArray.lastIndexOf(element: Byte): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun ShortArray.lastIndexOf(element: Short): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun IntArray.lastIndexOf(element: Int): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun LongArray.lastIndexOf(element: Long): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun FloatArray.lastIndexOf(element: Float): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun DoubleArray.lastIndexOf(element: Double): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun BooleanArray.lastIndexOf(element: Boolean): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns last index of [element], or -1 if the array does not contain element.\n */\npublic fun CharArray.lastIndexOf(element: Char): Int {\n for (index in indices.reversed()) {\n if (element == this[index]) {\n return index\n }\n }\n return -1\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun Array.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun ByteArray.lastOrNull(): Byte? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun ShortArray.lastOrNull(): Short? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun IntArray.lastOrNull(): Int? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun LongArray.lastOrNull(): Long? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun FloatArray.lastOrNull(): Float? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun DoubleArray.lastOrNull(): Double? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun BooleanArray.lastOrNull(): Boolean? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element, or `null` if the array is empty.\n */\npublic fun CharArray.lastOrNull(): Char? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun Array.lastOrNull(predicate: (T) -> Boolean): T? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun ByteArray.lastOrNull(predicate: (Byte) -> Boolean): Byte? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun ShortArray.lastOrNull(predicate: (Short) -> Boolean): Short? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun IntArray.lastOrNull(predicate: (Int) -> Boolean): Int? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun LongArray.lastOrNull(predicate: (Long) -> Boolean): Long? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun FloatArray.lastOrNull(predicate: (Float) -> Boolean): Float? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun DoubleArray.lastOrNull(predicate: (Double) -> Boolean): Double? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun BooleanArray.lastOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun CharArray.lastOrNull(predicate: (Char) -> Boolean): Char? {\n for (index in this.indices.reversed()) {\n val element = this[index]\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Array.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.random(): Byte {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.random(): Short {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.random(): Int {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.random(): Long {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.random(): Float {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.random(): Double {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.random(): Boolean {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.random(): Char {\n return random(Random)\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Array.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun ByteArray.random(random: Random): Byte {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun ShortArray.random(random: Random): Short {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun IntArray.random(random: Random): Int {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun LongArray.random(random: Random): Long {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun FloatArray.random(random: Random): Float {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun DoubleArray.random(random: Random): Double {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun BooleanArray.random(random: Random): Boolean {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this array using the specified source of randomness.\n * \n * @throws NoSuchElementException if this array is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun CharArray.random(random: Random): Char {\n if (isEmpty())\n throw NoSuchElementException(\"Array is empty.\")\n return get(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun Array.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun ByteArray.single(): Byte {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun ShortArray.single(): Short {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun IntArray.single(): Int {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun LongArray.single(): Long {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun FloatArray.single(): Float {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun DoubleArray.single(): Double {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun BooleanArray.single(): Boolean {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the array is empty or has more than one element.\n */\npublic fun CharArray.single(): Char {\n return when (size) {\n 0 -> throw NoSuchElementException(\"Array is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"Array has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Array.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun ByteArray.single(predicate: (Byte) -> Boolean): Byte {\n var single: Byte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Byte\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun ShortArray.single(predicate: (Short) -> Boolean): Short {\n var single: Short? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Short\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun IntArray.single(predicate: (Int) -> Boolean): Int {\n var single: Int? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Int\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun LongArray.single(predicate: (Long) -> Boolean): Long {\n var single: Long? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Long\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun FloatArray.single(predicate: (Float) -> Boolean): Float {\n var single: Float? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Float\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun DoubleArray.single(predicate: (Double) -> Boolean): Double {\n var single: Double? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Double\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun BooleanArray.single(predicate: (Boolean) -> Boolean): Boolean {\n var single: Boolean? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Boolean\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun CharArray.single(predicate: (Char) -> Boolean): Char {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Array contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Array contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as Char\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun Array.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun ByteArray.singleOrNull(): Byte? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun ShortArray.singleOrNull(): Short? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun IntArray.singleOrNull(): Int? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun LongArray.singleOrNull(): Long? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun FloatArray.singleOrNull(): Float? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun DoubleArray.singleOrNull(): Double? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun BooleanArray.singleOrNull(): Boolean? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns single element, or `null` if the array is empty or has more than one element.\n */\npublic fun CharArray.singleOrNull(): Char? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Array.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun ByteArray.singleOrNull(predicate: (Byte) -> Boolean): Byte? {\n var single: Byte? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun ShortArray.singleOrNull(predicate: (Short) -> Boolean): Short? {\n var single: Short? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun IntArray.singleOrNull(predicate: (Int) -> Boolean): Int? {\n var single: Int? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun LongArray.singleOrNull(predicate: (Long) -> Boolean): Long? {\n var single: Long? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun FloatArray.singleOrNull(predicate: (Float) -> Boolean): Float? {\n var single: Float? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun DoubleArray.singleOrNull(predicate: (Double) -> Boolean): Double? {\n var single: Double? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun BooleanArray.singleOrNull(predicate: (Boolean) -> Boolean): Boolean? {\n var single: Boolean? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun CharArray.singleOrNull(predicate: (Char) -> Boolean): Char? {\n var single: Char? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Array.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ByteArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ShortArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun IntArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun LongArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun FloatArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun DoubleArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun BooleanArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun CharArray.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return takeLast((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Array.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ByteArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun ShortArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun IntArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun LongArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun FloatArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun DoubleArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun BooleanArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun CharArray.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Array.dropLastWhile(predicate: (T) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ByteArray.dropLastWhile(predicate: (Byte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ShortArray.dropLastWhile(predicate: (Short) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun IntArray.dropLastWhile(predicate: (Int) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun LongArray.dropLastWhile(predicate: (Long) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun FloatArray.dropLastWhile(predicate: (Float) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun DoubleArray.dropLastWhile(predicate: (Double) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun BooleanArray.dropLastWhile(predicate: (Boolean) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun CharArray.dropLastWhile(predicate: (Char) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return take(index + 1)\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Array.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ByteArray.dropWhile(predicate: (Byte) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun ShortArray.dropWhile(predicate: (Short) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun IntArray.dropWhile(predicate: (Int) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun LongArray.dropWhile(predicate: (Long) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun FloatArray.dropWhile(predicate: (Float) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun DoubleArray.dropWhile(predicate: (Double) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun BooleanArray.dropWhile(predicate: (Boolean) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun CharArray.dropWhile(predicate: (Char) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun Array.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun ByteArray.filter(predicate: (Byte) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun ShortArray.filter(predicate: (Short) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun IntArray.filter(predicate: (Int) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun LongArray.filter(predicate: (Long) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun FloatArray.filter(predicate: (Float) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun DoubleArray.filter(predicate: (Double) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun BooleanArray.filter(predicate: (Boolean) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun CharArray.filter(predicate: (Char) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun Array.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun ByteArray.filterIndexed(predicate: (index: Int, Byte) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun ShortArray.filterIndexed(predicate: (index: Int, Short) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun IntArray.filterIndexed(predicate: (index: Int, Int) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun LongArray.filterIndexed(predicate: (index: Int, Long) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun FloatArray.filterIndexed(predicate: (index: Int, Float) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun DoubleArray.filterIndexed(predicate: (index: Int, Double) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun BooleanArray.filterIndexed(predicate: (index: Int, Boolean) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun CharArray.filterIndexed(predicate: (index: Int, Char) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > Array.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > ByteArray.filterIndexedTo(destination: C, predicate: (index: Int, Byte) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > ShortArray.filterIndexedTo(destination: C, predicate: (index: Int, Short) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > IntArray.filterIndexedTo(destination: C, predicate: (index: Int, Int) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > LongArray.filterIndexedTo(destination: C, predicate: (index: Int, Long) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > FloatArray.filterIndexedTo(destination: C, predicate: (index: Int, Float) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > DoubleArray.filterIndexedTo(destination: C, predicate: (index: Int, Double) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > BooleanArray.filterIndexedTo(destination: C, predicate: (index: Int, Boolean) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > CharArray.filterIndexedTo(destination: C, predicate: (index: Int, Char) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n */\npublic inline fun Array<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n */\npublic inline fun > Array<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun Array.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun ByteArray.filterNot(predicate: (Byte) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun ShortArray.filterNot(predicate: (Short) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun IntArray.filterNot(predicate: (Int) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun LongArray.filterNot(predicate: (Long) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun FloatArray.filterNot(predicate: (Float) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun DoubleArray.filterNot(predicate: (Double) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun BooleanArray.filterNot(predicate: (Boolean) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun CharArray.filterNot(predicate: (Char) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n */\npublic fun Array.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n */\npublic fun , T : Any> Array.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > Array.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > ByteArray.filterNotTo(destination: C, predicate: (Byte) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > ShortArray.filterNotTo(destination: C, predicate: (Short) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > IntArray.filterNotTo(destination: C, predicate: (Int) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > LongArray.filterNotTo(destination: C, predicate: (Long) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > FloatArray.filterNotTo(destination: C, predicate: (Float) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > DoubleArray.filterNotTo(destination: C, predicate: (Double) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > BooleanArray.filterNotTo(destination: C, predicate: (Boolean) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > CharArray.filterNotTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > Array.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > ByteArray.filterTo(destination: C, predicate: (Byte) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > ShortArray.filterTo(destination: C, predicate: (Short) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > IntArray.filterTo(destination: C, predicate: (Int) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > LongArray.filterTo(destination: C, predicate: (Long) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > FloatArray.filterTo(destination: C, predicate: (Float) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > DoubleArray.filterTo(destination: C, predicate: (Double) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > BooleanArray.filterTo(destination: C, predicate: (Boolean) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > CharArray.filterTo(destination: C, predicate: (Char) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun Array.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun ByteArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun ShortArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun IntArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun LongArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun FloatArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun DoubleArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun BooleanArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun CharArray.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return copyOfRange(indices.start, indices.endInclusive + 1).asList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun Array.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun ByteArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun ShortArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun IntArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun LongArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun FloatArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun DoubleArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun BooleanArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun CharArray.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun Array.sliceArray(indices: Collection): Array {\n val result = arrayOfNulls(this, indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun ByteArray.sliceArray(indices: Collection): ByteArray {\n val result = ByteArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun ShortArray.sliceArray(indices: Collection): ShortArray {\n val result = ShortArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun IntArray.sliceArray(indices: Collection): IntArray {\n val result = IntArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun LongArray.sliceArray(indices: Collection): LongArray {\n val result = LongArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun FloatArray.sliceArray(indices: Collection): FloatArray {\n val result = FloatArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun DoubleArray.sliceArray(indices: Collection): DoubleArray {\n val result = DoubleArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun BooleanArray.sliceArray(indices: Collection): BooleanArray {\n val result = BooleanArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements of this array at specified [indices].\n */\npublic fun CharArray.sliceArray(indices: Collection): CharArray {\n val result = CharArray(indices.size)\n var targetIndex = 0\n for (sourceIndex in indices) {\n result[targetIndex++] = this[sourceIndex]\n }\n return result\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun Array.sliceArray(indices: IntRange): Array {\n if (indices.isEmpty()) return copyOfRange(0, 0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun ByteArray.sliceArray(indices: IntRange): ByteArray {\n if (indices.isEmpty()) return ByteArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun ShortArray.sliceArray(indices: IntRange): ShortArray {\n if (indices.isEmpty()) return ShortArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun IntArray.sliceArray(indices: IntRange): IntArray {\n if (indices.isEmpty()) return IntArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun LongArray.sliceArray(indices: IntRange): LongArray {\n if (indices.isEmpty()) return LongArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun FloatArray.sliceArray(indices: IntRange): FloatArray {\n if (indices.isEmpty()) return FloatArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun DoubleArray.sliceArray(indices: IntRange): DoubleArray {\n if (indices.isEmpty()) return DoubleArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun BooleanArray.sliceArray(indices: IntRange): BooleanArray {\n if (indices.isEmpty()) return BooleanArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns an array containing elements at indices in the specified [indices] range.\n */\npublic fun CharArray.sliceArray(indices: IntRange): CharArray {\n if (indices.isEmpty()) return CharArray(0)\n return copyOfRange(indices.start, indices.endInclusive + 1)\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Array.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ByteArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ShortArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun IntArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun LongArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun FloatArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun DoubleArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun BooleanArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun CharArray.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (n >= size) return toList()\n if (n == 1) return listOf(this[0])\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Array.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ByteArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun ShortArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun IntArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun LongArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun FloatArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun DoubleArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun BooleanArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun CharArray.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(this[size - 1])\n val list = ArrayList(n)\n for (index in size - n until size)\n list.add(this[index])\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Array.takeLastWhile(predicate: (T) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ByteArray.takeLastWhile(predicate: (Byte) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ShortArray.takeLastWhile(predicate: (Short) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun IntArray.takeLastWhile(predicate: (Int) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun LongArray.takeLastWhile(predicate: (Long) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun FloatArray.takeLastWhile(predicate: (Float) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun DoubleArray.takeLastWhile(predicate: (Double) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun BooleanArray.takeLastWhile(predicate: (Boolean) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun CharArray.takeLastWhile(predicate: (Char) -> Boolean): List {\n for (index in lastIndex downTo 0) {\n if (!predicate(this[index])) {\n return drop(index + 1)\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Array.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ByteArray.takeWhile(predicate: (Byte) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun ShortArray.takeWhile(predicate: (Short) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun IntArray.takeWhile(predicate: (Int) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun LongArray.takeWhile(predicate: (Long) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun FloatArray.takeWhile(predicate: (Float) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun DoubleArray.takeWhile(predicate: (Double) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun BooleanArray.takeWhile(predicate: (Boolean) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun CharArray.takeWhile(predicate: (Char) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun Array.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun ByteArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun ShortArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun IntArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun LongArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun FloatArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun DoubleArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun BooleanArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Reverses elements in the array in-place.\n */\npublic fun CharArray.reverse(): Unit {\n val midPoint = (size / 2) - 1\n if (midPoint < 0) return\n var reverseIndex = lastIndex\n for (index in 0..midPoint) {\n val tmp = this[index]\n this[index] = this[reverseIndex]\n this[reverseIndex] = tmp\n reverseIndex--\n }\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Array.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun ByteArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun ShortArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun IntArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun LongArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun FloatArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun DoubleArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun BooleanArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun CharArray.reversed(): List {\n if (isEmpty()) return emptyList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun Array.reversedArray(): Array {\n if (isEmpty()) return this\n val result = arrayOfNulls(this, size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun ByteArray.reversedArray(): ByteArray {\n if (isEmpty()) return this\n val result = ByteArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun ShortArray.reversedArray(): ShortArray {\n if (isEmpty()) return this\n val result = ShortArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun IntArray.reversedArray(): IntArray {\n if (isEmpty()) return this\n val result = IntArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun LongArray.reversedArray(): LongArray {\n if (isEmpty()) return this\n val result = LongArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun FloatArray.reversedArray(): FloatArray {\n if (isEmpty()) return this\n val result = FloatArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun DoubleArray.reversedArray(): DoubleArray {\n if (isEmpty()) return this\n val result = DoubleArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun BooleanArray.reversedArray(): BooleanArray {\n if (isEmpty()) return this\n val result = BooleanArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Returns an array with elements of this array in reversed order.\n */\npublic fun CharArray.reversedArray(): CharArray {\n if (isEmpty()) return this\n val result = CharArray(size)\n val lastIndex = lastIndex\n for (i in 0..lastIndex)\n result[lastIndex - i] = this[i]\n return result\n}\n\n/**\n * Sorts elements in the array in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the array in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun ByteArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun ShortArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun IntArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun LongArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun FloatArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun DoubleArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Sorts elements in the array in-place descending according to their natural sort order.\n */\npublic fun CharArray.sortDescending(): Unit {\n if (size > 1) {\n sort()\n reverse()\n }\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sorted(): List {\n return sortedArray().asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun ByteArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun ShortArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun IntArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun LongArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun FloatArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun DoubleArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n */\npublic fun CharArray.sorted(): List {\n return toTypedArray().apply { sort() }.asList()\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedArray(): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun ByteArray.sortedArray(): ByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun ShortArray.sortedArray(): ShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun IntArray.sortedArray(): IntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun LongArray.sortedArray(): LongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun FloatArray.sortedArray(): FloatArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun DoubleArray.sortedArray(): DoubleArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according to their natural sort order.\n */\npublic fun CharArray.sortedArray(): CharArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sort() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedArrayDescending(): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sortWith(reverseOrder()) }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun ByteArray.sortedArrayDescending(): ByteArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun ShortArray.sortedArrayDescending(): ShortArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun IntArray.sortedArrayDescending(): IntArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun LongArray.sortedArrayDescending(): LongArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun FloatArray.sortedArrayDescending(): FloatArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun DoubleArray.sortedArrayDescending(): DoubleArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted descending according to their natural sort order.\n */\npublic fun CharArray.sortedArrayDescending(): CharArray {\n if (isEmpty()) return this\n return this.copyOf().apply { sortDescending() }\n}\n\n/**\n * Returns an array with all elements of this array sorted according the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sortedArrayWith(comparator: Comparator): Array {\n if (isEmpty()) return this\n return this.copyOf().apply { sortWith(comparator) }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ByteArray.sortedBy(crossinline selector: (Byte) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ShortArray.sortedBy(crossinline selector: (Short) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > IntArray.sortedBy(crossinline selector: (Int) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > LongArray.sortedBy(crossinline selector: (Long) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > FloatArray.sortedBy(crossinline selector: (Float) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > DoubleArray.sortedBy(crossinline selector: (Double) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > BooleanArray.sortedBy(crossinline selector: (Boolean) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > CharArray.sortedBy(crossinline selector: (Char) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Array.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ByteArray.sortedByDescending(crossinline selector: (Byte) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > ShortArray.sortedByDescending(crossinline selector: (Short) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > IntArray.sortedByDescending(crossinline selector: (Int) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > LongArray.sortedByDescending(crossinline selector: (Long) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > FloatArray.sortedByDescending(crossinline selector: (Float) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > DoubleArray.sortedByDescending(crossinline selector: (Double) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > BooleanArray.sortedByDescending(crossinline selector: (Boolean) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n */\npublic inline fun > CharArray.sortedByDescending(crossinline selector: (Char) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Array.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun ByteArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun ShortArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun IntArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun LongArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun FloatArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun DoubleArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n */\npublic fun CharArray.sortedDescending(): List {\n return copyOf().apply { sort() }.reversed()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sortedWith(comparator: Comparator): List {\n return sortedArrayWith(comparator).asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun ByteArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun ShortArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun IntArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun LongArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun FloatArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun DoubleArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun BooleanArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n */\npublic fun CharArray.sortedWith(comparator: Comparator): List {\n return toTypedArray().apply { sortWith(comparator) }.asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun Array.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun ByteArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun ShortArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun IntArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun LongArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun FloatArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun DoubleArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun BooleanArray.asList(): List\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic expect fun CharArray.asList(): List\n\n/**\n * Returns `true` if the two specified arrays are *deeply* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * If two corresponding elements are nested arrays, they are also compared deeply.\n * If any of arrays contains itself on any nesting level the behavior is undefined.\n * \n * The elements of other types are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun Array.contentDeepEquals(other: Array): Boolean\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level the behavior is undefined.\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentDeepHashCode(): Int\n\n/**\n * Returns a string representation of the contents of this array as if it is a [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level that reference\n * is rendered as `\"[...]\"` to prevent recursion.\n * \n * @sample samples.collections.Arrays.ContentOperations.contentDeepToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentDeepToString(): String\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun Array.contentEquals(other: Array): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun ByteArray.contentEquals(other: ByteArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun ShortArray.contentEquals(other: ShortArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun IntArray.contentEquals(other: IntArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun LongArray.contentEquals(other: LongArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun FloatArray.contentEquals(other: FloatArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun DoubleArray.contentEquals(other: DoubleArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun BooleanArray.contentEquals(other: BooleanArray): Boolean\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\npublic expect infix fun CharArray.contentEquals(other: CharArray): Boolean\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ByteArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ShortArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun IntArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun LongArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun FloatArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun DoubleArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun BooleanArray.contentHashCode(): Int\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\npublic expect fun CharArray.contentHashCode(): Int\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun Array.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ByteArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun ShortArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun IntArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun LongArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun FloatArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun DoubleArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun BooleanArray.contentToString(): String\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\npublic expect fun CharArray.contentToString(): String\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun Array.copyInto(destination: Array, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): Array\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ByteArray.copyInto(destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ByteArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ShortArray.copyInto(destination: ShortArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ShortArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun IntArray.copyInto(destination: IntArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): IntArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun LongArray.copyInto(destination: LongArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): LongArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun FloatArray.copyInto(destination: FloatArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): FloatArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun DoubleArray.copyInto(destination: DoubleArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): DoubleArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun BooleanArray.copyInto(destination: BooleanArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): BooleanArray\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\npublic expect fun CharArray.copyInto(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): CharArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOf(): Array\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun ByteArray.copyOf(): ByteArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun ShortArray.copyOf(): ShortArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun IntArray.copyOf(): IntArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun LongArray.copyOf(): LongArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun FloatArray.copyOf(): FloatArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun DoubleArray.copyOf(): DoubleArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun BooleanArray.copyOf(): BooleanArray\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic expect fun CharArray.copyOf(): CharArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun ByteArray.copyOf(newSize: Int): ByteArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun ShortArray.copyOf(newSize: Int): ShortArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun IntArray.copyOf(newSize: Int): IntArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun LongArray.copyOf(newSize: Int): LongArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun FloatArray.copyOf(newSize: Int): FloatArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun DoubleArray.copyOf(newSize: Int): DoubleArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `false` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `false` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun BooleanArray.copyOf(newSize: Int): BooleanArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with null char (`\\u0000`) values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with null char (`\\u0000`) values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic expect fun CharArray.copyOf(newSize: Int): CharArray\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `null` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `null` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizingCopyOf\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOf(newSize: Int): Array\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic expect fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun Array.fill(element: T, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ByteArray.fill(element: Byte, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun ShortArray.fill(element: Short, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun IntArray.fill(element: Int, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun LongArray.fill(element: Long, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun FloatArray.fill(element: Float, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun DoubleArray.fill(element: Double, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun BooleanArray.fill(element: Boolean, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\npublic expect fun CharArray.fill(element: Char, fromIndex: Int = 0, toIndex: Int = size): Unit\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val Array.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val ByteArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val ShortArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val IntArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val LongArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val FloatArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val DoubleArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val BooleanArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns the range of valid indices for the array.\n */\npublic val CharArray.indices: IntRange\n get() = IntRange(0, lastIndex)\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.isEmpty(): Boolean {\n return size == 0\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if the array is not empty.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.isNotEmpty(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns the last valid index for the array.\n */\npublic val Array.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val ByteArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val ShortArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val IntArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val LongArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val FloatArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val DoubleArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val BooleanArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns the last valid index for the array.\n */\npublic val CharArray.lastIndex: Int\n get() = size - 1\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(element: T): Array\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun ByteArray.plus(element: Byte): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun ShortArray.plus(element: Short): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun IntArray.plus(element: Int): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun LongArray.plus(element: Long): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun FloatArray.plus(element: Float): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun DoubleArray.plus(element: Double): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun BooleanArray.plus(element: Boolean): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\npublic expect operator fun CharArray.plus(element: Char): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(elements: Collection): Array\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun ByteArray.plus(elements: Collection): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun ShortArray.plus(elements: Collection): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun IntArray.plus(elements: Collection): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun LongArray.plus(elements: Collection): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun FloatArray.plus(elements: Collection): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun DoubleArray.plus(elements: Collection): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun BooleanArray.plus(elements: Collection): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic expect operator fun CharArray.plus(elements: Collection): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect operator fun Array.plus(elements: Array): Array\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun ByteArray.plus(elements: ByteArray): ByteArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun ShortArray.plus(elements: ShortArray): ShortArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun IntArray.plus(elements: IntArray): IntArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun LongArray.plus(elements: LongArray): LongArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun FloatArray.plus(elements: FloatArray): FloatArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun DoubleArray.plus(elements: DoubleArray): DoubleArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\npublic expect operator fun CharArray.plus(elements: CharArray): CharArray\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NO_ACTUAL_FOR_EXPECT\")\npublic expect fun Array.plusElement(element: T): Array\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun IntArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun LongArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun ByteArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun ShortArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun DoubleArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun FloatArray.sort(): Unit\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic expect fun CharArray.sort(): Unit\n\n/**\n * Sorts the array in-place according to the natural order of its elements.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @sample samples.collections.Arrays.Sorting.sortArrayOfComparable\n */\npublic expect fun > Array.sort(): Unit\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic expect fun Array.sortWith(comparator: Comparator): Unit\n\n/**\n * Returns an array of Boolean containing all of the elements of this generic array.\n */\npublic fun Array.toBooleanArray(): BooleanArray {\n return BooleanArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this generic array.\n */\npublic fun Array.toByteArray(): ByteArray {\n return ByteArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Char containing all of the elements of this generic array.\n */\npublic fun Array.toCharArray(): CharArray {\n return CharArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Double containing all of the elements of this generic array.\n */\npublic fun Array.toDoubleArray(): DoubleArray {\n return DoubleArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Float containing all of the elements of this generic array.\n */\npublic fun Array.toFloatArray(): FloatArray {\n return FloatArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Int containing all of the elements of this generic array.\n */\npublic fun Array.toIntArray(): IntArray {\n return IntArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Long containing all of the elements of this generic array.\n */\npublic fun Array.toLongArray(): LongArray {\n return LongArray(size) { index -> this[index] }\n}\n\n/**\n * Returns an array of Short containing all of the elements of this generic array.\n */\npublic fun Array.toShortArray(): ShortArray {\n return ShortArray(size) { index -> this[index] }\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun ByteArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun ShortArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun IntArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun LongArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun FloatArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun DoubleArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun BooleanArray.toTypedArray(): Array\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic expect fun CharArray.toTypedArray(): Array\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun Array.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ByteArray.associate(transform: (Byte) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ShortArray.associate(transform: (Short) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun IntArray.associate(transform: (Int) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun LongArray.associate(transform: (Long) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun FloatArray.associate(transform: (Float) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun DoubleArray.associate(transform: (Double) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun BooleanArray.associate(transform: (Boolean) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun CharArray.associate(transform: (Char) -> Pair): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun Array.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ByteArray.associateBy(keySelector: (Byte) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ShortArray.associateBy(keySelector: (Short) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun IntArray.associateBy(keySelector: (Int) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun LongArray.associateBy(keySelector: (Long) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun FloatArray.associateBy(keySelector: (Float) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun DoubleArray.associateBy(keySelector: (Double) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun BooleanArray.associateBy(keySelector: (Boolean) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the elements from the given array indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun CharArray.associateBy(keySelector: (Char) -> K): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun Array.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ByteArray.associateBy(keySelector: (Byte) -> K, valueTransform: (Byte) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun ShortArray.associateBy(keySelector: (Short) -> K, valueTransform: (Short) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun IntArray.associateBy(keySelector: (Int) -> K, valueTransform: (Int) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun LongArray.associateBy(keySelector: (Long) -> K, valueTransform: (Long) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun FloatArray.associateBy(keySelector: (Float) -> K, valueTransform: (Float) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun DoubleArray.associateBy(keySelector: (Double) -> K, valueTransform: (Double) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun BooleanArray.associateBy(keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original array.\n */\npublic inline fun CharArray.associateBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map {\n val capacity = mapCapacity(size).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Array.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ByteArray.associateByTo(destination: M, keySelector: (Byte) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ShortArray.associateByTo(destination: M, keySelector: (Short) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > IntArray.associateByTo(destination: M, keySelector: (Int) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > LongArray.associateByTo(destination: M, keySelector: (Long) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > FloatArray.associateByTo(destination: M, keySelector: (Float) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > DoubleArray.associateByTo(destination: M, keySelector: (Double) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > BooleanArray.associateByTo(destination: M, keySelector: (Boolean) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given array\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > CharArray.associateByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Array.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ByteArray.associateByTo(destination: M, keySelector: (Byte) -> K, valueTransform: (Byte) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > ShortArray.associateByTo(destination: M, keySelector: (Short) -> K, valueTransform: (Short) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > IntArray.associateByTo(destination: M, keySelector: (Int) -> K, valueTransform: (Int) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > LongArray.associateByTo(destination: M, keySelector: (Long) -> K, valueTransform: (Long) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > FloatArray.associateByTo(destination: M, keySelector: (Float) -> K, valueTransform: (Float) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > DoubleArray.associateByTo(destination: M, keySelector: (Double) -> K, valueTransform: (Double) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > BooleanArray.associateByTo(destination: M, keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given array.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > CharArray.associateByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > Array.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > ByteArray.associateTo(destination: M, transform: (Byte) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > ShortArray.associateTo(destination: M, transform: (Short) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > IntArray.associateTo(destination: M, transform: (Int) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > LongArray.associateTo(destination: M, transform: (Long) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > FloatArray.associateTo(destination: M, transform: (Float) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > DoubleArray.associateTo(destination: M, transform: (Double) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > BooleanArray.associateTo(destination: M, transform: (Boolean) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given array.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > CharArray.associateTo(destination: M, transform: (Char) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Array.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > ByteArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > ShortArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > IntArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > LongArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > FloatArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > DoubleArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > BooleanArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > CharArray.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun Array.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun ByteArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun ShortArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun IntArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun LongArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun FloatArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun DoubleArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun BooleanArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun CharArray.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(size)))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Array.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun ByteArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun ShortArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun IntArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun LongArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun FloatArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun DoubleArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun BooleanArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun CharArray.toList(): List {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this.toMutableList()\n }\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun Array.toMutableList(): MutableList {\n return ArrayList(this.asCollection())\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun ByteArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun ShortArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun IntArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun LongArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun FloatArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun DoubleArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun BooleanArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this array.\n */\npublic fun CharArray.toMutableList(): MutableList {\n val list = ArrayList(size)\n for (item in this) list.add(item)\n return list\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun Array.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ByteArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ShortArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun IntArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun LongArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun FloatArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun DoubleArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun BooleanArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun CharArray.toSet(): Set {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(this[0])\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun Array.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun ByteArray.flatMap(transform: (Byte) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun ShortArray.flatMap(transform: (Short) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun IntArray.flatMap(transform: (Int) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun LongArray.flatMap(transform: (Long) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun FloatArray.flatMap(transform: (Float) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun DoubleArray.flatMap(transform: (Double) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun BooleanArray.flatMap(transform: (Boolean) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array.\n */\npublic inline fun CharArray.flatMap(transform: (Char) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > Array.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > ByteArray.flatMapTo(destination: C, transform: (Byte) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > ShortArray.flatMapTo(destination: C, transform: (Short) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > IntArray.flatMapTo(destination: C, transform: (Int) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > LongArray.flatMapTo(destination: C, transform: (Long) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > FloatArray.flatMapTo(destination: C, transform: (Float) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > DoubleArray.flatMapTo(destination: C, transform: (Double) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > BooleanArray.flatMapTo(destination: C, transform: (Boolean) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original array, to the given [destination].\n */\npublic inline fun > CharArray.flatMapTo(destination: C, transform: (Char) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Array.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun ByteArray.groupBy(keySelector: (Byte) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun ShortArray.groupBy(keySelector: (Short) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun IntArray.groupBy(keySelector: (Int) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun LongArray.groupBy(keySelector: (Long) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun FloatArray.groupBy(keySelector: (Float) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun DoubleArray.groupBy(keySelector: (Double) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun BooleanArray.groupBy(keySelector: (Boolean) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun CharArray.groupBy(keySelector: (Char) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Array.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun ByteArray.groupBy(keySelector: (Byte) -> K, valueTransform: (Byte) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun ShortArray.groupBy(keySelector: (Short) -> K, valueTransform: (Short) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun IntArray.groupBy(keySelector: (Int) -> K, valueTransform: (Int) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun LongArray.groupBy(keySelector: (Long) -> K, valueTransform: (Long) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun FloatArray.groupBy(keySelector: (Float) -> K, valueTransform: (Float) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun DoubleArray.groupBy(keySelector: (Double) -> K, valueTransform: (Double) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun BooleanArray.groupBy(keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original array.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun CharArray.groupBy(keySelector: (Char) -> K, valueTransform: (Char) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Array.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> ByteArray.groupByTo(destination: M, keySelector: (Byte) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> ShortArray.groupByTo(destination: M, keySelector: (Short) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> IntArray.groupByTo(destination: M, keySelector: (Int) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> LongArray.groupByTo(destination: M, keySelector: (Long) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> FloatArray.groupByTo(destination: M, keySelector: (Float) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> DoubleArray.groupByTo(destination: M, keySelector: (Double) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> BooleanArray.groupByTo(destination: M, keySelector: (Boolean) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups elements of the original array by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> CharArray.groupByTo(destination: M, keySelector: (Char) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Array.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> ByteArray.groupByTo(destination: M, keySelector: (Byte) -> K, valueTransform: (Byte) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> ShortArray.groupByTo(destination: M, keySelector: (Short) -> K, valueTransform: (Short) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> IntArray.groupByTo(destination: M, keySelector: (Int) -> K, valueTransform: (Int) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> LongArray.groupByTo(destination: M, keySelector: (Long) -> K, valueTransform: (Long) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> FloatArray.groupByTo(destination: M, keySelector: (Float) -> K, valueTransform: (Float) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> DoubleArray.groupByTo(destination: M, keySelector: (Double) -> K, valueTransform: (Double) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> BooleanArray.groupByTo(destination: M, keySelector: (Boolean) -> K, valueTransform: (Boolean) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original array\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> CharArray.groupByTo(destination: M, keySelector: (Char) -> K, valueTransform: (Char) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from an array to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Array.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Array.map(transform: (T) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun ByteArray.map(transform: (Byte) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun ShortArray.map(transform: (Short) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun IntArray.map(transform: (Int) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun LongArray.map(transform: (Long) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun FloatArray.map(transform: (Float) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun DoubleArray.map(transform: (Double) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun BooleanArray.map(transform: (Boolean) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original array.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun CharArray.map(transform: (Char) -> R): List {\n return mapTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Array.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun ByteArray.mapIndexed(transform: (index: Int, Byte) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun ShortArray.mapIndexed(transform: (index: Int, Short) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun IntArray.mapIndexed(transform: (index: Int, Int) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun LongArray.mapIndexed(transform: (index: Int, Long) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun FloatArray.mapIndexed(transform: (index: Int, Float) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun DoubleArray.mapIndexed(transform: (index: Int, Double) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun BooleanArray.mapIndexed(transform: (index: Int, Boolean) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun CharArray.mapIndexed(transform: (index: Int, Char) -> R): List {\n return mapIndexedTo(ArrayList(size), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original array.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Array.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Array.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Array.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > ByteArray.mapIndexedTo(destination: C, transform: (index: Int, Byte) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > ShortArray.mapIndexedTo(destination: C, transform: (index: Int, Short) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > IntArray.mapIndexedTo(destination: C, transform: (index: Int, Int) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > LongArray.mapIndexedTo(destination: C, transform: (index: Int, Long) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > FloatArray.mapIndexedTo(destination: C, transform: (index: Int, Float) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > DoubleArray.mapIndexedTo(destination: C, transform: (index: Int, Double) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > BooleanArray.mapIndexedTo(destination: C, transform: (index: Int, Boolean) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original array\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > CharArray.mapIndexedTo(destination: C, transform: (index: Int, Char) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(index++, item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original array.\n */\npublic inline fun Array.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original array\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Array.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > Array.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > ByteArray.mapTo(destination: C, transform: (Byte) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > ShortArray.mapTo(destination: C, transform: (Short) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > IntArray.mapTo(destination: C, transform: (Int) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > LongArray.mapTo(destination: C, transform: (Long) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > FloatArray.mapTo(destination: C, transform: (Float) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > DoubleArray.mapTo(destination: C, transform: (Double) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > BooleanArray.mapTo(destination: C, transform: (Boolean) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original array\n * and appends the results to the given [destination].\n */\npublic inline fun > CharArray.mapTo(destination: C, transform: (Char) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun Array.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun ByteArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun ShortArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun IntArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun LongArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun FloatArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun DoubleArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun BooleanArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original array\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun CharArray.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun Array.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun ByteArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun ShortArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun IntArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun LongArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun FloatArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun DoubleArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun BooleanArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only distinct elements from the given array.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic fun CharArray.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun Array.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun ByteArray.distinctBy(selector: (Byte) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun ShortArray.distinctBy(selector: (Short) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun IntArray.distinctBy(selector: (Int) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun LongArray.distinctBy(selector: (Long) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun FloatArray.distinctBy(selector: (Float) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun DoubleArray.distinctBy(selector: (Double) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun BooleanArray.distinctBy(selector: (Boolean) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a list containing only elements from the given array\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source array.\n */\npublic inline fun CharArray.distinctBy(selector: (Char) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun Array.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun ByteArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun ShortArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun IntArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun LongArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun FloatArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun DoubleArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun BooleanArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by both this array and the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun CharArray.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun Array.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ByteArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun ShortArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun IntArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun LongArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun FloatArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun DoubleArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun BooleanArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this array and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic infix fun CharArray.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun Array.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ByteArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun ShortArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun IntArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun LongArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun FloatArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun DoubleArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun BooleanArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given array.\n * \n * The returned set preserves the element iteration order of the original array.\n */\npublic fun CharArray.toMutableSet(): MutableSet {\n val set = LinkedHashSet(mapCapacity(size))\n for (item in this) set.add(item)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun Array.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun ByteArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun ShortArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun IntArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun LongArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun FloatArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun DoubleArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun BooleanArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original array.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun CharArray.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Array.all(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ByteArray.all(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun ShortArray.all(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun IntArray.all(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun LongArray.all(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun FloatArray.all(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun DoubleArray.all(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun BooleanArray.all(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun CharArray.all(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Array.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ByteArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun ShortArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun IntArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun LongArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun FloatArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun DoubleArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun BooleanArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if array has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun CharArray.any(): Boolean {\n return !isEmpty()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Array.any(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ByteArray.any(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun ShortArray.any(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun IntArray.any(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun LongArray.any(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun FloatArray.any(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun DoubleArray.any(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun BooleanArray.any(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun CharArray.any(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Array.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun BooleanArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements in this array.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Array.count(predicate: (T) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ByteArray.count(predicate: (Byte) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun ShortArray.count(predicate: (Short) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun IntArray.count(predicate: (Int) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun LongArray.count(predicate: (Long) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun FloatArray.count(predicate: (Float) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun DoubleArray.count(predicate: (Double) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun BooleanArray.count(predicate: (Boolean) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun CharArray.count(predicate: (Char) -> Boolean): Int {\n var count = 0\n for (element in this) if (predicate(element)) ++count\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Array.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ByteArray.fold(initial: R, operation: (acc: R, Byte) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ShortArray.fold(initial: R, operation: (acc: R, Short) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun IntArray.fold(initial: R, operation: (acc: R, Int) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun LongArray.fold(initial: R, operation: (acc: R, Long) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun FloatArray.fold(initial: R, operation: (acc: R, Float) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun DoubleArray.fold(initial: R, operation: (acc: R, Double) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun BooleanArray.fold(initial: R, operation: (acc: R, Boolean) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun CharArray.fold(initial: R, operation: (acc: R, Char) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Array.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Byte) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Short) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Int) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Long) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Float) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Double) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Boolean) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldIndexed(initial: R, operation: (index: Int, acc: R, Char) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(index++, accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun Array.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ByteArray.foldRight(initial: R, operation: (Byte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ShortArray.foldRight(initial: R, operation: (Short, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun IntArray.foldRight(initial: R, operation: (Int, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun LongArray.foldRight(initial: R, operation: (Long, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun FloatArray.foldRight(initial: R, operation: (Float, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun DoubleArray.foldRight(initial: R, operation: (Double, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun BooleanArray.foldRight(initial: R, operation: (Boolean, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun CharArray.foldRight(initial: R, operation: (Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun Array.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.foldRightIndexed(initial: R, operation: (index: Int, Byte, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.foldRightIndexed(initial: R, operation: (index: Int, Short, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun IntArray.foldRightIndexed(initial: R, operation: (index: Int, Int, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun LongArray.foldRightIndexed(initial: R, operation: (index: Int, Long, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.foldRightIndexed(initial: R, operation: (index: Int, Float, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.foldRightIndexed(initial: R, operation: (index: Int, Double, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.foldRightIndexed(initial: R, operation: (index: Int, Boolean, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharArray.foldRightIndexed(initial: R, operation: (index: Int, Char, acc: R) -> R): R {\n var index = lastIndex\n var accumulator = initial\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun Array.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun ByteArray.forEach(action: (Byte) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun ShortArray.forEach(action: (Short) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun IntArray.forEach(action: (Int) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun LongArray.forEach(action: (Long) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun FloatArray.forEach(action: (Float) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun DoubleArray.forEach(action: (Double) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun BooleanArray.forEach(action: (Boolean) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element.\n */\npublic inline fun CharArray.forEach(action: (Char) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun Array.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun ByteArray.forEachIndexed(action: (index: Int, Byte) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun ShortArray.forEachIndexed(action: (index: Int, Short) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun IntArray.forEachIndexed(action: (index: Int, Int) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun LongArray.forEachIndexed(action: (index: Int, Long) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun FloatArray.forEachIndexed(action: (index: Int, Float) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun DoubleArray.forEachIndexed(action: (index: Int, Double) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun BooleanArray.forEachIndexed(action: (index: Int, Boolean) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun CharArray.forEachIndexed(action: (index: Int, Char) -> Unit): Unit {\n var index = 0\n for (item in this) action(index++, item)\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.max(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.max(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun > Array.max(): T? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun ByteArray.max(): Byte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun ShortArray.max(): Short? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun IntArray.max(): Int? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun LongArray.max(): Long? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun FloatArray.max(): Float? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun DoubleArray.max(): Double? {\n if (isEmpty()) return null\n var max = this[0]\n if (max.isNaN()) return max\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun CharArray.max(): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > Array.maxBy(selector: (T) -> R): T? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > ByteArray.maxBy(selector: (Byte) -> R): Byte? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > ShortArray.maxBy(selector: (Short) -> R): Short? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > IntArray.maxBy(selector: (Int) -> R): Int? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > LongArray.maxBy(selector: (Long) -> R): Long? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > FloatArray.maxBy(selector: (Float) -> R): Float? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > DoubleArray.maxBy(selector: (Double) -> R): Double? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > BooleanArray.maxBy(selector: (Boolean) -> R): Boolean? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > CharArray.maxBy(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var maxElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return maxElem\n var maxValue = selector(maxElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n }\n return maxElem\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Array.maxWith(comparator: Comparator): T? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ByteArray.maxWith(comparator: Comparator): Byte? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ShortArray.maxWith(comparator: Comparator): Short? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun IntArray.maxWith(comparator: Comparator): Int? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun LongArray.maxWith(comparator: Comparator): Long? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun FloatArray.maxWith(comparator: Comparator): Float? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun DoubleArray.maxWith(comparator: Comparator): Double? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun BooleanArray.maxWith(comparator: Comparator): Boolean? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun CharArray.maxWith(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var max = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.min(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Array.min(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun > Array.min(): T? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun ByteArray.min(): Byte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun ShortArray.min(): Short? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun IntArray.min(): Int? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun LongArray.min(): Long? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun FloatArray.min(): Float? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\npublic fun DoubleArray.min(): Double? {\n if (isEmpty()) return null\n var min = this[0]\n if (min.isNaN()) return min\n for (i in 1..lastIndex) {\n val e = this[i]\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun CharArray.min(): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > Array.minBy(selector: (T) -> R): T? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > ByteArray.minBy(selector: (Byte) -> R): Byte? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > ShortArray.minBy(selector: (Short) -> R): Short? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > IntArray.minBy(selector: (Int) -> R): Int? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > LongArray.minBy(selector: (Long) -> R): Long? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > FloatArray.minBy(selector: (Float) -> R): Float? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > DoubleArray.minBy(selector: (Double) -> R): Double? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > BooleanArray.minBy(selector: (Boolean) -> R): Boolean? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > CharArray.minBy(selector: (Char) -> R): Char? {\n if (isEmpty()) return null\n var minElem = this[0]\n val lastIndex = this.lastIndex\n if (lastIndex == 0) return minElem\n var minValue = selector(minElem)\n for (i in 1..lastIndex) {\n val e = this[i]\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n }\n return minElem\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Array.minWith(comparator: Comparator): T? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ByteArray.minWith(comparator: Comparator): Byte? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun ShortArray.minWith(comparator: Comparator): Short? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun IntArray.minWith(comparator: Comparator): Int? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun LongArray.minWith(comparator: Comparator): Long? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun FloatArray.minWith(comparator: Comparator): Float? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun DoubleArray.minWith(comparator: Comparator): Double? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun BooleanArray.minWith(comparator: Comparator): Boolean? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun CharArray.minWith(comparator: Comparator): Char? {\n if (isEmpty()) return null\n var min = this[0]\n for (i in 1..lastIndex) {\n val e = this[i]\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Array.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun ByteArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun ShortArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun IntArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun LongArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun FloatArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun DoubleArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun BooleanArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if the array has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun CharArray.none(): Boolean {\n return isEmpty()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Array.none(predicate: (T) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun ByteArray.none(predicate: (Byte) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun ShortArray.none(predicate: (Short) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun IntArray.none(predicate: (Int) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun LongArray.none(predicate: (Long) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun FloatArray.none(predicate: (Float) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun DoubleArray.none(predicate: (Double) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun BooleanArray.none(predicate: (Boolean) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun CharArray.none(predicate: (Char) -> Boolean): Boolean {\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Array.reduce(operation: (acc: S, T) -> S): S {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ByteArray.reduce(operation: (acc: Byte, Byte) -> Byte): Byte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun ShortArray.reduce(operation: (acc: Short, Short) -> Short): Short {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun IntArray.reduce(operation: (acc: Int, Int) -> Int): Int {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun LongArray.reduce(operation: (acc: Long, Long) -> Long): Long {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun FloatArray.reduce(operation: (acc: Float, Float) -> Float): Float {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun DoubleArray.reduce(operation: (acc: Double, Double) -> Double): Double {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun BooleanArray.reduce(operation: (acc: Boolean, Boolean) -> Boolean): Boolean {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun CharArray.reduce(operation: (acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun Array.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun ByteArray.reduceIndexed(operation: (index: Int, acc: Byte, Byte) -> Byte): Byte {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun ShortArray.reduceIndexed(operation: (index: Int, acc: Short, Short) -> Short): Short {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun IntArray.reduceIndexed(operation: (index: Int, acc: Int, Int) -> Int): Int {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun LongArray.reduceIndexed(operation: (index: Int, acc: Long, Long) -> Long): Long {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun FloatArray.reduceIndexed(operation: (index: Int, acc: Float, Float) -> Float): Float {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.reduceIndexed(operation: (index: Int, acc: Double, Double) -> Double): Double {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.reduceIndexed(operation: (index: Int, acc: Boolean, Boolean) -> Boolean): Boolean {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original array.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun CharArray.reduceIndexed(operation: (index: Int, acc: Char, Char) -> Char): Char {\n if (isEmpty())\n throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = this[0]\n for (index in 1..lastIndex) {\n accumulator = operation(index, accumulator, this[index])\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun Array.reduceRight(operation: (T, acc: S) -> S): S {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ByteArray.reduceRight(operation: (Byte, acc: Byte) -> Byte): Byte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun ShortArray.reduceRight(operation: (Short, acc: Short) -> Short): Short {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun IntArray.reduceRight(operation: (Int, acc: Int) -> Int): Int {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun LongArray.reduceRight(operation: (Long, acc: Long) -> Long): Long {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun FloatArray.reduceRight(operation: (Float, acc: Float) -> Float): Float {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun DoubleArray.reduceRight(operation: (Double, acc: Double) -> Double): Double {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun BooleanArray.reduceRight(operation: (Boolean, acc: Boolean) -> Boolean): Boolean {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun CharArray.reduceRight(operation: (Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(get(index--), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun Array.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator: S = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ByteArray.reduceRightIndexed(operation: (index: Int, Byte, acc: Byte) -> Byte): Byte {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun ShortArray.reduceRightIndexed(operation: (index: Int, Short, acc: Short) -> Short): Short {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun IntArray.reduceRightIndexed(operation: (index: Int, Int, acc: Int) -> Int): Int {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun LongArray.reduceRightIndexed(operation: (index: Int, Long, acc: Long) -> Long): Long {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun FloatArray.reduceRightIndexed(operation: (index: Int, Float, acc: Float) -> Float): Float {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun DoubleArray.reduceRightIndexed(operation: (index: Int, Double, acc: Double) -> Double): Double {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun BooleanArray.reduceRightIndexed(operation: (index: Int, Boolean, acc: Boolean) -> Boolean): Boolean {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original array and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun CharArray.reduceRightIndexed(operation: (index: Int, Char, acc: Char) -> Char): Char {\n var index = lastIndex\n if (index < 0) throw UnsupportedOperationException(\"Empty array can't be reduced.\")\n var accumulator = get(index--)\n while (index >= 0) {\n accumulator = operation(index, get(index), accumulator)\n --index\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun Array.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ByteArray.sumBy(selector: (Byte) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ShortArray.sumBy(selector: (Short) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun IntArray.sumBy(selector: (Int) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun LongArray.sumBy(selector: (Long) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun FloatArray.sumBy(selector: (Float) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun DoubleArray.sumBy(selector: (Double) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun BooleanArray.sumBy(selector: (Boolean) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun CharArray.sumBy(selector: (Char) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun Array.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ByteArray.sumByDouble(selector: (Byte) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun ShortArray.sumByDouble(selector: (Short) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun IntArray.sumByDouble(selector: (Int) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun LongArray.sumByDouble(selector: (Long) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun FloatArray.sumByDouble(selector: (Float) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun DoubleArray.sumByDouble(selector: (Double) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun BooleanArray.sumByDouble(selector: (Boolean) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the array.\n */\npublic inline fun CharArray.sumByDouble(selector: (Char) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Array.requireNoNulls(): Array {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Array\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun Array.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun ByteArray.partition(predicate: (Byte) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun ShortArray.partition(predicate: (Short) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun IntArray.partition(predicate: (Int) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun LongArray.partition(predicate: (Long) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun FloatArray.partition(predicate: (Float) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun DoubleArray.partition(predicate: (Double) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun BooleanArray.partition(predicate: (Boolean) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Splits the original array into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun CharArray.partition(predicate: (Char) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Array.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Array.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: Array, transform: (a: Byte, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: Array, transform: (a: Short, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: Array, transform: (a: Int, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: Array, transform: (a: Long, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: Array, transform: (a: Float, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: Array, transform: (a: Double, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: Array, transform: (a: Boolean, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: Array, transform: (a: Char, b: R) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Array.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Array.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: Iterable, transform: (a: Byte, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: Iterable, transform: (a: Short, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: Iterable, transform: (a: Int, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: Iterable, transform: (a: Long, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: Iterable, transform: (a: Float, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: Iterable, transform: (a: Double, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: Iterable, transform: (a: Boolean, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: Iterable, transform: (a: Char, b: R) -> V): List {\n val arraySize = size\n val list = ArrayList(minOf(other.collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in other) {\n if (i >= arraySize) break\n list.add(transform(this[i++], element))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ByteArray.zip(other: ByteArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun ShortArray.zip(other: ShortArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun IntArray.zip(other: IntArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun LongArray.zip(other: LongArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun FloatArray.zip(other: FloatArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun DoubleArray.zip(other: DoubleArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun BooleanArray.zip(other: BooleanArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` array and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun CharArray.zip(other: CharArray): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ByteArray.zip(other: ByteArray, transform: (a: Byte, b: Byte) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun ShortArray.zip(other: ShortArray, transform: (a: Short, b: Short) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun IntArray.zip(other: IntArray, transform: (a: Int, b: Int) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun LongArray.zip(other: LongArray, transform: (a: Long, b: Long) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun FloatArray.zip(other: FloatArray, transform: (a: Float, b: Float) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun DoubleArray.zip(other: DoubleArray, transform: (a: Double, b: Double) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun BooleanArray.zip(other: BooleanArray, transform: (a: Boolean, b: Boolean) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Returns a list of values built from the elements of `this` array and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest array.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun CharArray.zip(other: CharArray, transform: (a: Char, b: Char) -> V): List {\n val size = minOf(size, other.size)\n val list = ArrayList(size)\n for (i in 0 until size) {\n list.add(transform(this[i], other[i]))\n }\n return list\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Array.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun ByteArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Byte) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun ShortArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Short) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun IntArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Int) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun LongArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Long) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun FloatArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Float) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun DoubleArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Double) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun BooleanArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Boolean) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element.toString())\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun CharArray.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Char) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n if (transform != null)\n buffer.append(transform(element))\n else\n buffer.append(element)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Array.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun ByteArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Byte) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun ShortArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Short) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun IntArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Int) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun LongArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Long) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun FloatArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Float) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun DoubleArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Double) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun BooleanArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Boolean) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun CharArray.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((Char) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun Array.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun ByteArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun ShortArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun IntArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun LongArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun FloatArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun DoubleArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun BooleanArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates an [Iterable] instance that wraps the original array returning its elements when being iterated.\n */\npublic fun CharArray.asIterable(): Iterable {\n if (isEmpty()) return emptyList()\n return Iterable { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun Array.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun ByteArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun ShortArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun IntArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun LongArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun FloatArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun DoubleArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun BooleanArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original array returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromArray\n */\npublic fun CharArray.asSequence(): Sequence {\n if (isEmpty()) return emptySequence()\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Array.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun ByteArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun ShortArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun IntArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun LongArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun FloatArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the array.\n */\npublic fun DoubleArray.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n ++count\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Array.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Array.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Array.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Array.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun ByteArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun ShortArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun IntArray.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun LongArray.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun FloatArray.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the array.\n */\npublic fun DoubleArray.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class ULong @PublishedApi internal constructor(@PublishedApi internal val data: Long) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of ULong can have.\n */\n public const val MIN_VALUE: ULong = ULong(0)\n\n /**\n * A constant holding the maximum value an instance of ULong can have.\n */\n public const val MAX_VALUE: ULong = ULong(-1)\n\n /**\n * The number of bytes used to represent an instance of ULong in a binary form.\n */\n public const val SIZE_BYTES: Int = 8\n\n /**\n * The number of bits used to represent an instance of ULong in a binary form.\n */\n public const val SIZE_BITS: Int = 64\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UByte): Int = this.compareTo(other.toULong())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UShort): Int = this.compareTo(other.toULong())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UInt): Int = this.compareTo(other.toULong())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: ULong): Int = ulongCompare(this.data, other.data)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): ULong = this.plus(other.toULong())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): ULong = this.plus(other.toULong())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): ULong = this.plus(other.toULong())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = ULong(this.data.plus(other.data))\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): ULong = this.minus(other.toULong())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): ULong = this.minus(other.toULong())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): ULong = this.minus(other.toULong())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = ULong(this.data.minus(other.data))\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): ULong = this.times(other.toULong())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): ULong = this.times(other.toULong())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): ULong = this.times(other.toULong())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = ULong(this.data.times(other.data))\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): ULong = this.div(other.toULong())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): ULong = this.div(other.toULong())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): ULong = this.div(other.toULong())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = ulongDivide(this, other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): ULong = this.rem(other.toULong())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): ULong = this.rem(other.toULong())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): ULong = this.rem(other.toULong())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = ulongRemainder(this, other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): ULong = ULong(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): ULong = ULong(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: ULong): ULongRange = ULongRange(this, other)\n\n /** Shifts this value left by the [bitCount] number of bits. */\n @kotlin.internal.InlineOnly\n public inline infix fun shl(bitCount: Int): ULong = ULong(data shl bitCount)\n /** Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros. */\n @kotlin.internal.InlineOnly\n public inline infix fun shr(bitCount: Int): ULong = ULong(data ushr bitCount)\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: ULong): ULong = ULong(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: ULong): ULong = ULong(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: ULong): ULong = ULong(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): ULong = ULong(data.inv())\n\n /**\n * Converts this [ULong] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `Byte` value is represented by the least significant 8 bits of this `ULong` value.\n * Note that the resulting `Byte` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data.toByte()\n /**\n * Converts this [ULong] value to [Short].\n *\n * If this value is less than or equals to [Short.MAX_VALUE], the resulting `Short` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `Short` value is represented by the least significant 16 bits of this `ULong` value.\n * Note that the resulting `Short` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data.toShort()\n /**\n * Converts this [ULong] value to [Int].\n *\n * If this value is less than or equals to [Int.MAX_VALUE], the resulting `Int` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `Int` value is represented by the least significant 32 bits of this `ULong` value.\n * Note that the resulting `Int` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data.toInt()\n /**\n * Converts this [ULong] value to [Long].\n *\n * If this value is less than or equals to [Long.MAX_VALUE], the resulting `Long` value represents\n * the same numerical value as this `ULong`. Otherwise the result is negative.\n *\n * The resulting `Long` value has the same binary representation as this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data\n\n /**\n * Converts this [ULong] value to [UByte].\n *\n * If this value is less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = data.toUByte()\n /**\n * Converts this [ULong] value to [UShort].\n *\n * If this value is less than or equals to [UShort.MAX_VALUE], the resulting `UShort` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `UShort` value is represented by the least significant 16 bits of this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = data.toUShort()\n /**\n * Converts this [ULong] value to [UInt].\n *\n * If this value is less than or equals to [UInt.MAX_VALUE], the resulting `UInt` value represents\n * the same numerical value as this `ULong`.\n *\n * The resulting `UInt` value is represented by the least significant 32 bits of this `ULong` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = data.toUInt()\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = this\n\n /**\n * Converts this [ULong] value to [Float].\n *\n * The resulting value is the closest `Float` to this `ULong` value.\n * In case when this `ULong` value is exactly between two `Float`s,\n * the one with zero at least significant bit of mantissa is selected.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toDouble().toFloat()\n /**\n * Converts this [ULong] value to [Double].\n *\n * The resulting value is the closest `Double` to this `ULong` value.\n * In case when this `ULong` value is exactly between two `Double`s,\n * the one with zero at least significant bit of mantissa is selected.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = ulongToDouble(data)\n\n public override fun toString(): String = ulongToString(data)\n\n}\n\n/**\n * Converts this [Byte] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Byte`.\n *\n * The least significant 8 bits of the resulting `ULong` value are the same as the bits of this `Byte` value,\n * whereas the most significant 56 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toULong(): ULong = ULong(this.toLong())\n/**\n * Converts this [Short] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Short`.\n *\n * The least significant 16 bits of the resulting `ULong` value are the same as the bits of this `Short` value,\n * whereas the most significant 48 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toULong(): ULong = ULong(this.toLong())\n/**\n * Converts this [Int] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Int`.\n *\n * The least significant 32 bits of the resulting `ULong` value are the same as the bits of this `Int` value,\n * whereas the most significant 32 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toULong(): ULong = ULong(this.toLong())\n/**\n * Converts this [Long] value to [ULong].\n *\n * If this value is positive, the resulting `ULong` value represents the same numerical value as this `Long`.\n *\n * The resulting `ULong` value has the same binary representation as this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toULong(): ULong = ULong(this)\n\n/**\n * Converts this [Float] value to [ULong].\n *\n * The fractional part, if any, is rounded down towards zero.\n * Returns zero if this `Float` value is negative or `NaN`, [ULong.MAX_VALUE] if it's bigger than `ULong.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Float.toULong(): ULong = doubleToULong(this.toDouble())\n/**\n * Converts this [Double] value to [ULong].\n *\n * The fractional part, if any, is rounded down towards zero.\n * Returns zero if this `Double` value is negative or `NaN`, [ULong.MAX_VALUE] if it's bigger than `ULong.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Double.toULong(): ULong = doubleToULong(this)\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UByte @PublishedApi internal constructor(@PublishedApi internal val data: Byte) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of UByte can have.\n */\n public const val MIN_VALUE: UByte = UByte(0)\n\n /**\n * A constant holding the maximum value an instance of UByte can have.\n */\n public const val MAX_VALUE: UByte = UByte(-1)\n\n /**\n * The number of bytes used to represent an instance of UByte in a binary form.\n */\n public const val SIZE_BYTES: Int = 1\n\n /**\n * The number of bits used to represent an instance of UByte in a binary form.\n */\n public const val SIZE_BITS: Int = 8\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: UByte): Int = this.toInt().compareTo(other.toInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UShort): Int = this.toInt().compareTo(other.toInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UInt): Int = this.toUInt().compareTo(other)\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: ULong): Int = this.toULong().compareTo(other)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): UInt = this.toUInt().plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): UInt = this.toUInt().plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): UInt = this.toUInt().plus(other)\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = this.toULong().plus(other)\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): UInt = this.toUInt().minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): UInt = this.toUInt().minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): UInt = this.toUInt().minus(other)\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = this.toULong().minus(other)\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): UInt = this.toUInt().times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): UInt = this.toUInt().times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): UInt = this.toUInt().times(other)\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = this.toULong().times(other)\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): UInt = this.toUInt().div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): UInt = this.toUInt().div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): UInt = this.toUInt().div(other)\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.toUInt().rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.toUInt().rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = this.toUInt().rem(other)\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UByte = UByte(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): UByte = UByte(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: UByte): UIntRange = UIntRange(this.toUInt(), other.toUInt())\n\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: UByte): UByte = UByte(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: UByte): UByte = UByte(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: UByte): UByte = UByte(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): UByte = UByte(data.inv())\n\n /**\n * Converts this [UByte] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `UByte`. Otherwise the result is negative.\n *\n * The resulting `Byte` value has the same binary representation as this `UByte` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data\n /**\n * Converts this [UByte] value to [Short].\n *\n * The resulting `Short` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `Short` value are the same as the bits of this `UByte` value,\n * whereas the most significant 8 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data.toShort() and 0xFF\n /**\n * Converts this [UByte] value to [Int].\n *\n * The resulting `Int` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `Int` value are the same as the bits of this `UByte` value,\n * whereas the most significant 24 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data.toInt() and 0xFF\n /**\n * Converts this [UByte] value to [Long].\n *\n * The resulting `Long` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `Long` value are the same as the bits of this `UByte` value,\n * whereas the most significant 56 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data.toLong() and 0xFF\n\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = this\n /**\n * Converts this [UByte] value to [UShort].\n *\n * The resulting `UShort` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `UShort` value are the same as the bits of this `UByte` value,\n * whereas the most significant 8 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = UShort(data.toShort() and 0xFF)\n /**\n * Converts this [UByte] value to [UInt].\n *\n * The resulting `UInt` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `UInt` value are the same as the bits of this `UByte` value,\n * whereas the most significant 24 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = UInt(data.toInt() and 0xFF)\n /**\n * Converts this [UByte] value to [ULong].\n *\n * The resulting `ULong` value represents the same numerical value as this `UByte`.\n *\n * The least significant 8 bits of the resulting `ULong` value are the same as the bits of this `UByte` value,\n * whereas the most significant 56 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = ULong(data.toLong() and 0xFF)\n\n /**\n * Converts this [UByte] value to [Float].\n *\n * The resulting `Float` value represents the same numerical value as this `UByte`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toInt().toFloat()\n /**\n * Converts this [UByte] value to [Double].\n *\n * The resulting `Double` value represents the same numerical value as this `UByte`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = this.toInt().toDouble()\n\n public override fun toString(): String = toInt().toString()\n\n}\n\n/**\n * Converts this [Byte] value to [UByte].\n *\n * If this value is positive, the resulting `UByte` value represents the same numerical value as this `Byte`.\n *\n * The resulting `UByte` value has the same binary representation as this `Byte` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toUByte(): UByte = UByte(this)\n/**\n * Converts this [Short] value to [UByte].\n *\n * If this value is positive and less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `Short`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `Short` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toUByte(): UByte = UByte(this.toByte())\n/**\n * Converts this [Int] value to [UByte].\n *\n * If this value is positive and less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `Int`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `Int` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toUByte(): UByte = UByte(this.toByte())\n/**\n * Converts this [Long] value to [UByte].\n *\n * If this value is positive and less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `Long`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUByte(): UByte = UByte(this.toByte())\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.experimental\n\n/** Performs a bitwise AND operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Byte.and(other: Byte): Byte = (this.toInt() and other.toInt()).toByte()\n\n/** Performs a bitwise OR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Byte.or(other: Byte): Byte = (this.toInt() or other.toInt()).toByte()\n\n/** Performs a bitwise XOR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Byte.xor(other: Byte): Byte = (this.toInt() xor other.toInt()).toByte()\n\n/** Inverts the bits in this value. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun Byte.inv(): Byte = (this.toInt().inv()).toByte()\n\n\n/** Performs a bitwise AND operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Short.and(other: Short): Short = (this.toInt() and other.toInt()).toShort()\n\n/** Performs a bitwise OR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Short.or(other: Short): Short = (this.toInt() or other.toInt()).toShort()\n\n/** Performs a bitwise XOR operation between the two values. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline infix fun Short.xor(other: Short): Short = (this.toInt() xor other.toInt()).toShort()\n\n/** Inverts the bits in this value. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun Short.inv(): Short = (this.toInt().inv()).toShort()\n\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\nimport kotlin.comparisons.naturalOrder\nimport kotlin.random.Random\n\n/** Returns the array if it's not `null`, or an empty array otherwise. */\n@kotlin.internal.InlineOnly\npublic actual inline fun Array?.orEmpty(): Array = this ?: emptyArray()\n\n@kotlin.internal.InlineOnly\npublic actual inline fun Collection.toTypedArray(): Array = copyToArray(this)\n\n@JsName(\"copyToArray\")\n@PublishedApi\ninternal fun copyToArray(collection: Collection): Array {\n return if (collection.asDynamic().toArray !== undefined)\n collection.asDynamic().toArray().unsafeCast>()\n else\n copyToArrayImpl(collection).unsafeCast>()\n}\n\n@JsName(\"copyToArrayImpl\")\ninternal actual fun copyToArrayImpl(collection: Collection<*>): Array {\n val array = emptyArray()\n val iterator = collection.iterator()\n while (iterator.hasNext())\n array.asDynamic().push(iterator.next())\n return array\n}\n\n@JsName(\"copyToExistingArrayImpl\")\ninternal actual fun copyToArrayImpl(collection: Collection<*>, array: Array): Array {\n if (array.size < collection.size)\n return copyToArrayImpl(collection).unsafeCast>()\n\n val iterator = collection.iterator()\n var index = 0\n while (iterator.hasNext()) {\n array[index++] = iterator.next().unsafeCast()\n }\n if (index < array.size) {\n array[index] = null.unsafeCast()\n }\n return array\n}\n\n/**\n * Returns an immutable list containing only the specified object [element].\n */\npublic fun listOf(element: T): List = arrayListOf(element)\n\n/**\n * Returns an immutable set containing only the specified object [element].\n */\npublic fun setOf(element: T): Set = hashSetOf(element)\n\n/**\n * Returns an immutable map, mapping only the specified key to the\n * specified value.\n */\npublic fun mapOf(pair: Pair): Map = hashMapOf(pair)\n\n/**\n * Fills the list with the provided [value].\n *\n * Each element in the list gets replaced with the [value].\n */\n@SinceKotlin(\"1.2\")\npublic actual fun MutableList.fill(value: T): Unit {\n for (index in 0..lastIndex) {\n this[index] = value\n }\n}\n\n/**\n * Randomly shuffles elements in this list.\n *\n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.2\")\npublic actual fun MutableList.shuffle(): Unit = shuffle(Random)\n\n/**\n * Returns a new list with the elements of this list randomly shuffled.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Iterable.shuffled(): List = toMutableList().apply { shuffle() }\n\n/**\n * Sorts elements in the list in-place according to their natural sort order.\n *\n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun > MutableList.sort(): Unit {\n collectionsSort(this, naturalOrder())\n}\n\n/**\n * Sorts elements in the list in-place according to the order specified with [comparator].\n *\n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun MutableList.sortWith(comparator: Comparator): Unit {\n collectionsSort(this, comparator)\n}\n\nprivate fun collectionsSort(list: MutableList, comparator: Comparator) {\n if (list.size <= 1) return\n\n val array = copyToArray(list)\n sortArrayWith(array, comparator)\n\n for (i in 0 until array.size) {\n list[i] = array[i]\n }\n}\n\ninternal actual fun arrayOfNulls(reference: Array, size: Int): Array {\n return arrayOfNulls(size).unsafeCast>()\n}\n\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@JsName(\"arrayCopy\")\ninternal fun arrayCopy(source: Array, destination: Array, destinationOffset: Int, startIndex: Int, endIndex: Int) {\n AbstractList.checkRangeIndexes(startIndex, endIndex, source.size)\n val rangeSize = endIndex - startIndex\n AbstractList.checkRangeIndexes(destinationOffset, destinationOffset + rangeSize, destination.size)\n\n if (js(\"ArrayBuffer\").isView(destination) && js(\"ArrayBuffer\").isView(source)) {\n val subrange = source.asDynamic().subarray(startIndex, endIndex)\n destination.asDynamic().set(subrange, destinationOffset)\n } else {\n if (source !== destination || destinationOffset <= startIndex) {\n for (index in 0 until rangeSize) {\n destination[destinationOffset + index] = source[startIndex + index]\n }\n } else {\n for (index in rangeSize - 1 downTo 0) {\n destination[destinationOffset + index] = source[startIndex + index]\n }\n }\n }\n}\n\n// no singleton map implementation in js, return map as is\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Map.toSingletonMapOrSelf(): Map = this\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Map.toSingletonMap(): Map = this.toMutableMap()\n\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Array.copyToArrayOfAny(isVarargs: Boolean): Array =\n if (isVarargs)\n // no need to copy vararg array in JS\n this\n else\n this.copyOf()\n\n\n\n@PublishedApi\ninternal actual fun checkIndexOverflow(index: Int): Int {\n if (index < 0) {\n throwIndexOverflow()\n }\n return index\n}\n\n@PublishedApi\ninternal actual fun checkCountOverflow(count: Int): Int {\n if (count < 0) {\n throwCountOverflow()\n }\n return count\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component5(): T {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the collection.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Iterable.contains(element: T): Boolean {\n if (this is Collection)\n return contains(element)\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic fun Iterable.elementAt(index: Int): T {\n if (this is List)\n return get(index)\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"Collection doesn't contain element at index $index.\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAt(index: Int): T {\n return get(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\npublic fun Iterable.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n if (this is List)\n return this.getOrElse(index, defaultValue)\n if (index < 0)\n return defaultValue(index)\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\npublic fun Iterable.elementAtOrNull(index: Int): T? {\n if (this is List)\n return this.getOrNull(index)\n if (index < 0)\n return null\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the collection is empty.\n */\npublic fun Iterable.first(): T {\n when (this) {\n is List -> return this.first()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns first element.\n * @throws [NoSuchElementException] if the list is empty.\n */\npublic fun List.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Iterable.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first element, or `null` if the collection is empty.\n */\npublic fun Iterable.firstOrNull(): T? {\n when (this) {\n is List -> {\n if (isEmpty())\n return null\n else\n return this[0]\n }\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns the first element, or `null` if the list is empty.\n */\npublic fun List.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Iterable.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n */\npublic fun List.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.indexOf(element: T): Int {\n if (this is List) return this.indexOf(element)\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.indexOf(element: T): Int {\n return indexOf(element)\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfLast(predicate: (T) -> Boolean): Int {\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfLast(predicate: (T) -> Boolean): Int {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n if (predicate(iterator.previous())) {\n return iterator.nextIndex()\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the collection is empty.\n */\npublic fun Iterable.last(): T {\n when (this) {\n is List -> return this.last()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element.\n * @throws [NoSuchElementException] if the list is empty.\n */\npublic fun List.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Iterable.last(predicate: (T) -> Boolean): T {\n var last: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n last = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return last as T\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun List.last(predicate: (T) -> Boolean): T {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"List contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.lastIndexOf(element: T): Int {\n if (this is List) return this.lastIndexOf(element)\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns last index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.lastIndexOf(element: T): Int {\n return lastIndexOf(element)\n}\n\n/**\n * Returns the last element, or `null` if the collection is empty.\n */\npublic fun Iterable.lastOrNull(): T? {\n when (this) {\n is List -> return if (isEmpty()) null else this[size - 1]\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element, or `null` if the list is empty.\n */\npublic fun List.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun Iterable.lastOrNull(predicate: (T) -> Boolean): T? {\n var last: T? = null\n for (element in this) {\n if (predicate(element)) {\n last = element\n }\n }\n return last\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n */\npublic inline fun List.lastOrNull(predicate: (T) -> Boolean): T? {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this collection.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Collection.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Collection is empty.\")\n return elementAt(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the collection is empty or has more than one element.\n */\npublic fun Iterable.single(): T {\n when (this) {\n is List -> return this.single()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n val single = iterator.next()\n if (iterator.hasNext())\n throw IllegalArgumentException(\"Collection has more than one element.\")\n return single\n }\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the list is empty or has more than one element.\n */\npublic fun List.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"List is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"List has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Iterable.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Collection contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns single element, or `null` if the collection is empty or has more than one element.\n */\npublic fun Iterable.singleOrNull(): T? {\n when (this) {\n is List -> return if (size == 1) this[0] else null\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n val single = iterator.next()\n if (iterator.hasNext())\n return null\n return single\n }\n }\n}\n\n/**\n * Returns single element, or `null` if the list is empty or has more than one element.\n */\npublic fun List.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Iterable.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Iterable.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return toList()\n val list: ArrayList\n if (this is Collection<*>) {\n val resultSize = size - n\n if (resultSize <= 0)\n return emptyList()\n if (resultSize == 1)\n return listOf(last())\n list = ArrayList(resultSize)\n if (this is List) {\n if (this is RandomAccess) {\n for (index in n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(n))\n list.add(item)\n }\n return list\n }\n }\n else {\n list = ArrayList()\n }\n var count = 0\n for (item in this) {\n if (count >= n) list.add(item) else ++count\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun List.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun List.dropLastWhile(predicate: (T) -> Boolean): List {\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n return take(iterator.nextIndex() + 1)\n }\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Iterable.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n */\npublic inline fun Iterable.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun Iterable.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n */\npublic inline fun > Iterable.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n */\npublic inline fun Iterable<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n */\npublic inline fun > Iterable<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n */\npublic inline fun Iterable.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n */\npublic fun Iterable.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n */\npublic fun , T : Any> Iterable.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n */\npublic inline fun > Iterable.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n */\npublic inline fun > Iterable.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun List.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return this.subList(indices.start, indices.endInclusive + 1).toList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun List.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Iterable.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (this is Collection) {\n if (n >= size) return toList()\n if (n == 1) return listOf(first())\n }\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun List.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(last())\n val list = ArrayList(n)\n if (this is RandomAccess) {\n for (index in size - n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(size - n))\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun List.takeLastWhile(predicate: (T) -> Boolean): List {\n if (isEmpty())\n return emptyList()\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n iterator.next()\n val expectedSize = size - iterator.nextIndex()\n if (expectedSize == 0) return emptyList()\n return ArrayList(expectedSize).apply {\n while (iterator.hasNext())\n add(iterator.next())\n }\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Iterable.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the list in-place.\n */\npublic expect fun MutableList.reverse(): Unit\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Iterable.reversed(): List {\n if (this is Collection && size <= 1) return toList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Sorts elements in the list in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > MutableList.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sorted(): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray>() as Array).apply { sort() }.asList()\n }\n return toMutableList().apply { sort() }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Iterable.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Iterable.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Iterable.sortedWith(comparator: Comparator): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray() as Array).apply { sortWith(comparator) }.asList()\n }\n return toMutableList().apply { sortWith(comparator) }\n}\n\n/**\n * Returns an array of Boolean containing all of the elements of this collection.\n */\npublic fun Collection.toBooleanArray(): BooleanArray {\n val result = BooleanArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this collection.\n */\npublic fun Collection.toByteArray(): ByteArray {\n val result = ByteArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Char containing all of the elements of this collection.\n */\npublic fun Collection.toCharArray(): CharArray {\n val result = CharArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Double containing all of the elements of this collection.\n */\npublic fun Collection.toDoubleArray(): DoubleArray {\n val result = DoubleArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Float containing all of the elements of this collection.\n */\npublic fun Collection.toFloatArray(): FloatArray {\n val result = FloatArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Int containing all of the elements of this collection.\n */\npublic fun Collection.toIntArray(): IntArray {\n val result = IntArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Long containing all of the elements of this collection.\n */\npublic fun Collection.toLongArray(): LongArray {\n val result = LongArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Short containing all of the elements of this collection.\n */\npublic fun Collection.toShortArray(): ShortArray {\n val result = ShortArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n */\npublic inline fun Iterable.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given collection indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given collection\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic inline fun > Iterable.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are elements from the given collection and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun Iterable.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap(mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given collection,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > Iterable.associateWithTo(destination: M, valueSelector: (K) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Iterable.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a [HashSet] of all elements.\n */\npublic fun Iterable.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(collectionSizeOrDefault(12))))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Iterable.toList(): List {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(if (this is List) get(0) else iterator().next())\n else -> this.toMutableList()\n }\n }\n return this.toMutableList().optimizeReadOnlyList()\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this collection.\n */\npublic fun Iterable.toMutableList(): MutableList {\n if (this is Collection)\n return this.toMutableList()\n return toCollection(ArrayList())\n}\n\n/**\n * Returns a [MutableList] filled with all elements of this collection.\n */\npublic fun Collection.toMutableList(): MutableList {\n return ArrayList(this)\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toSet(): Set {\n if (this is Collection) {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(if (this is List) this[0] else iterator().next())\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n }\n return toCollection(LinkedHashSet()).optimizeReadOnlySet()\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection.\n */\npublic inline fun Iterable.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\npublic inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a collection to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Iterable.map(transform: (T) -> R): List {\n return mapTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(checkIndexOverflow(index++), item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original collection.\n */\npublic inline fun Iterable.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original collection\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Iterable.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original collection\n * and appends the results to the given [destination].\n */\npublic inline fun > Iterable.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original collection\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun Iterable.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given collection.\n * \n * The elements in the resulting list are in the same order as they were in the source collection.\n */\npublic fun Iterable.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given collection\n * having distinct keys returned by the given [selector] function.\n * \n * The elements in the resulting list are in the same order as they were in the source collection.\n */\npublic inline fun Iterable.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this collection and the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun Iterable.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this collection and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic infix fun Iterable.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a mutable set containing all distinct elements from the given collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toMutableSet(): MutableSet {\n return when (this) {\n is Collection -> LinkedHashSet(this)\n else -> toCollection(LinkedHashSet())\n }\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original collection.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun Iterable.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Iterable.all(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if collection has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Iterable.any(): Boolean {\n if (this is Collection) return !isEmpty()\n return iterator().hasNext()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Iterable.any(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return false\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this collection.\n */\npublic fun Iterable.count(): Int {\n if (this is Collection) return size\n var count = 0\n for (element in this) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Returns the number of elements in this collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Iterable.count(predicate: (T) -> Boolean): Int {\n if (this is Collection && isEmpty()) return 0\n var count = 0\n for (element in this) if (predicate(element)) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Iterable.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Iterable.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(checkIndexOverflow(index++), accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun List.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@kotlin.internal.HidesMembers\npublic inline fun Iterable.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the desired action on the element.\n */\npublic inline fun Iterable.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(checkIndexOverflow(index++), item)\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.max(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n if (max.isNaN()) return max\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.max(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n if (max.isNaN()) return max\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\npublic fun > Iterable.max(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\npublic inline fun > Iterable.maxBy(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxElem = iterator.next()\n if (!iterator.hasNext()) return maxElem\n var maxValue = selector(maxElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n } while (iterator.hasNext())\n return maxElem\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Iterable.maxWith(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.min(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n if (min.isNaN()) return min\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.1\")\npublic fun Iterable.min(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n if (min.isNaN()) return min\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (e.isNaN()) return e\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\npublic fun > Iterable.min(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\npublic inline fun > Iterable.minBy(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minElem = iterator.next()\n if (!iterator.hasNext()) return minElem\n var minValue = selector(minElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n } while (iterator.hasNext())\n return minElem\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\npublic fun Iterable.minWith(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the collection has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Iterable.none(): Boolean {\n if (this is Collection) return isEmpty()\n return !iterator().hasNext()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Iterable.none(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each element and returns the collection itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > C.onEach(action: (T) -> Unit): C {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right to current accumulator value and each element.\n */\npublic inline fun Iterable.reduce(operation: (acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself and calculates the next accumulator value.\n */\npublic inline fun Iterable.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left to each element and current accumulator value.\n */\npublic inline fun List.reduceRight(operation: (T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with last element and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\npublic inline fun Iterable.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\npublic inline fun Iterable.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Iterable.requireNoNulls(): Iterable {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Iterable\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun List.requireNoNulls(): List {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as List\n}\n\n/**\n * Splits this collection into a list of lists each not exceeding the given [size].\n * \n * The last list in the resulting list may have less elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int): List> {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this collection into several lists each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return list of results of the [transform] applied to an each list.\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last list may have less elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int, transform: (List) -> R): List {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\npublic operator fun Iterable.minus(element: T): List {\n val result = ArrayList(collectionSizeOrDefault(10))\n var removed = false\n return this.filterTo(result) { if (!removed && it == element) { removed = true; false } else true }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] array.\n * \n * The [elements] array may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Array): List {\n if (elements.isEmpty()) return this.toList()\n val other = elements.toHashSet()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] collection.\n * \n * The [elements] collection may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Iterable): List {\n val other = elements.convertToSetForSetOperationWith(this)\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] sequence.\n * \n * The [elements] sequence may be converted to a [HashSet] to speed up the operation, thus the elements are required to have\n * a correct and stable implementation of `hashCode()` that doesn't change between successive invocations.\n */\npublic operator fun Iterable.minus(elements: Sequence): List {\n val other = elements.toHashSet()\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minusElement(element: T): List {\n return minus(element)\n}\n\n/**\n * Splits the original collection into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n */\npublic inline fun Iterable.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Iterable.plus(element: T): List {\n if (this is Collection) return this.plus(element)\n val result = ArrayList()\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Collection.plus(element: T): List {\n val result = ArrayList(size + 1)\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Iterable.plus(elements: Array): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Collection.plus(elements: Array): List {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Iterable.plus(elements: Iterable): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Collection.plus(elements: Iterable): List {\n if (elements is Collection) {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n } else {\n val result = ArrayList(this)\n result.addAll(elements)\n return result\n }\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Iterable.plus(elements: Sequence): List {\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Collection.plus(elements: Sequence): List {\n val result = ArrayList(this.size + 10)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list of snapshots of the window of the given [size]\n * sliding along this collection with the given [step], where each\n * snapshot is a list.\n * \n * Several last lists may have less elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List> {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList>(resultCapacity)\n var index = 0\n while (index in 0 until thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (windowSize < size && !partialWindows) break\n result.add(List(windowSize) { this[it + index] })\n index += step\n }\n return result\n }\n val result = ArrayList>()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = false).forEach {\n result.add(it)\n }\n return result\n}\n\n/**\n * Returns a list of results of applying the given [transform] function to\n * an each list representing a view over the window of the given [size]\n * sliding along this collection with the given [step].\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last lists may have less elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (List) -> R): List {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList(resultCapacity)\n val window = MovingSubList(this)\n var index = 0\n while (index in 0 until thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (!partialWindows && windowSize < size) break\n window.move(index, index + windowSize)\n result.add(transform(window))\n index += step\n }\n return result\n }\n val result = ArrayList()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = true).forEach {\n result.add(transform(it))\n }\n return result\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val arraySize = other.size\n val list = ArrayList(minOf(collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in this) {\n if (i >= arraySize) break\n list.add(transform(element, other[i++]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] collection with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val first = iterator()\n val second = other.iterator()\n val list = ArrayList(minOf(collectionSizeOrDefault(10), other.collectionSizeOrDefault(10)))\n while (first.hasNext() && second.hasNext()) {\n list.add(transform(first.next(), second.next()))\n }\n return list\n}\n\n/**\n * Returns a list of pairs of each two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.zipWithNext(): List> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to an each pair of two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic inline fun Iterable.zipWithNext(transform: (a: T, b: T) -> R): List {\n val iterator = iterator()\n if (!iterator.hasNext()) return emptyList()\n val result = mutableListOf()\n var current = iterator.next()\n while (iterator.hasNext()) {\n val next = iterator.next()\n result.add(transform(current, next))\n current = next\n }\n return result\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Iterable.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Iterable.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Returns this collection as an [Iterable].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.asIterable(): Iterable {\n return this\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original collection returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromCollection\n */\npublic fun Iterable.asSequence(): Sequence {\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Iterable.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Iterable.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Iterable.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n","/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\nimport kotlin.experimental.*\n\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UInt @PublishedApi internal constructor(@PublishedApi internal val data: Int) : Comparable {\n\n companion object {\n /**\n * A constant holding the minimum value an instance of UInt can have.\n */\n public const val MIN_VALUE: UInt = UInt(0)\n\n /**\n * A constant holding the maximum value an instance of UInt can have.\n */\n public const val MAX_VALUE: UInt = UInt(-1)\n\n /**\n * The number of bytes used to represent an instance of UInt in a binary form.\n */\n public const val SIZE_BYTES: Int = 4\n\n /**\n * The number of bits used to represent an instance of UInt in a binary form.\n */\n public const val SIZE_BITS: Int = 32\n }\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UByte): Int = this.compareTo(other.toUInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: UShort): Int = this.compareTo(other.toUInt())\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n @Suppress(\"OVERRIDE_BY_INLINE\")\n public override inline operator fun compareTo(other: UInt): Int = uintCompare(this.data, other.data)\n\n /**\n * Compares this value with the specified value for order.\n * Returns zero if this value is equal to the specified other value, a negative number if it's less than other,\n * or a positive number if it's greater than other.\n */\n @kotlin.internal.InlineOnly\n public inline operator fun compareTo(other: ULong): Int = this.toULong().compareTo(other)\n\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UByte): UInt = this.plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UShort): UInt = this.plus(other.toUInt())\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: UInt): UInt = UInt(this.data.plus(other.data))\n /** Adds the other value to this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun plus(other: ULong): ULong = this.toULong().plus(other)\n\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UByte): UInt = this.minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UShort): UInt = this.minus(other.toUInt())\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: UInt): UInt = UInt(this.data.minus(other.data))\n /** Subtracts the other value from this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun minus(other: ULong): ULong = this.toULong().minus(other)\n\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UByte): UInt = this.times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UShort): UInt = this.times(other.toUInt())\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: UInt): UInt = UInt(this.data.times(other.data))\n /** Multiplies this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun times(other: ULong): ULong = this.toULong().times(other)\n\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UByte): UInt = this.div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UShort): UInt = this.div(other.toUInt())\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: UInt): UInt = uintDivide(this, other)\n /** Divides this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun div(other: ULong): ULong = this.toULong().div(other)\n\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UByte): UInt = this.rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UShort): UInt = this.rem(other.toUInt())\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: UInt): UInt = uintRemainder(this, other)\n /** Calculates the remainder of dividing this value by the other value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rem(other: ULong): ULong = this.toULong().rem(other)\n\n /** Increments this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun inc(): UInt = UInt(data.inc())\n /** Decrements this value. */\n @kotlin.internal.InlineOnly\n public inline operator fun dec(): UInt = UInt(data.dec())\n\n /** Creates a range from this value to the specified [other] value. */\n @kotlin.internal.InlineOnly\n public inline operator fun rangeTo(other: UInt): UIntRange = UIntRange(this, other)\n\n /** Shifts this value left by the [bitCount] number of bits. */\n @kotlin.internal.InlineOnly\n public inline infix fun shl(bitCount: Int): UInt = UInt(data shl bitCount)\n /** Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros. */\n @kotlin.internal.InlineOnly\n public inline infix fun shr(bitCount: Int): UInt = UInt(data ushr bitCount)\n /** Performs a bitwise AND operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun and(other: UInt): UInt = UInt(this.data and other.data)\n /** Performs a bitwise OR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun or(other: UInt): UInt = UInt(this.data or other.data)\n /** Performs a bitwise XOR operation between the two values. */\n @kotlin.internal.InlineOnly\n public inline infix fun xor(other: UInt): UInt = UInt(this.data xor other.data)\n /** Inverts the bits in this value. */\n @kotlin.internal.InlineOnly\n public inline fun inv(): UInt = UInt(data.inv())\n\n /**\n * Converts this [UInt] value to [Byte].\n *\n * If this value is less than or equals to [Byte.MAX_VALUE], the resulting `Byte` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `Byte` value is represented by the least significant 8 bits of this `UInt` value.\n * Note that the resulting `Byte` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toByte(): Byte = data.toByte()\n /**\n * Converts this [UInt] value to [Short].\n *\n * If this value is less than or equals to [Short.MAX_VALUE], the resulting `Short` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `Short` value is represented by the least significant 16 bits of this `UInt` value.\n * Note that the resulting `Short` value may be negative.\n */\n @kotlin.internal.InlineOnly\n public inline fun toShort(): Short = data.toShort()\n /**\n * Converts this [UInt] value to [Int].\n *\n * If this value is less than or equals to [Int.MAX_VALUE], the resulting `Int` value represents\n * the same numerical value as this `UInt`. Otherwise the result is negative.\n *\n * The resulting `Int` value has the same binary representation as this `UInt` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toInt(): Int = data\n /**\n * Converts this [UInt] value to [Long].\n *\n * The resulting `Long` value represents the same numerical value as this `UInt`.\n *\n * The least significant 32 bits of the resulting `Long` value are the same as the bits of this `UInt` value,\n * whereas the most significant 32 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toLong(): Long = data.toLong() and 0xFFFF_FFFF\n\n /**\n * Converts this [UInt] value to [UByte].\n *\n * If this value is less than or equals to [UByte.MAX_VALUE], the resulting `UByte` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `UByte` value is represented by the least significant 8 bits of this `UInt` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUByte(): UByte = data.toUByte()\n /**\n * Converts this [UInt] value to [UShort].\n *\n * If this value is less than or equals to [UShort.MAX_VALUE], the resulting `UShort` value represents\n * the same numerical value as this `UInt`.\n *\n * The resulting `UShort` value is represented by the least significant 16 bits of this `UInt` value.\n */\n @kotlin.internal.InlineOnly\n public inline fun toUShort(): UShort = data.toUShort()\n /** Returns this value. */\n @kotlin.internal.InlineOnly\n public inline fun toUInt(): UInt = this\n /**\n * Converts this [UInt] value to [ULong].\n *\n * The resulting `ULong` value represents the same numerical value as this `UInt`.\n *\n * The least significant 32 bits of the resulting `ULong` value are the same as the bits of this `UInt` value,\n * whereas the most significant 32 bits are filled with zeros.\n */\n @kotlin.internal.InlineOnly\n public inline fun toULong(): ULong = ULong(data.toLong() and 0xFFFF_FFFF)\n\n /**\n * Converts this [UInt] value to [Float].\n *\n * The resulting value is the closest `Float` to this `UInt` value.\n * In case when this `UInt` value is exactly between two `Float`s,\n * the one with zero at least significant bit of mantissa is selected.\n */\n @kotlin.internal.InlineOnly\n public inline fun toFloat(): Float = this.toDouble().toFloat()\n /**\n * Converts this [UInt] value to [Double].\n *\n * The resulting `Double` value represents the same numerical value as this `UInt`.\n */\n @kotlin.internal.InlineOnly\n public inline fun toDouble(): Double = uintToDouble(data)\n\n public override fun toString(): String = toLong().toString()\n\n}\n\n/**\n * Converts this [Byte] value to [UInt].\n *\n * If this value is positive, the resulting `UInt` value represents the same numerical value as this `Byte`.\n *\n * The least significant 8 bits of the resulting `UInt` value are the same as the bits of this `Byte` value,\n * whereas the most significant 24 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Byte.toUInt(): UInt = UInt(this.toInt())\n/**\n * Converts this [Short] value to [UInt].\n *\n * If this value is positive, the resulting `UInt` value represents the same numerical value as this `Short`.\n *\n * The least significant 16 bits of the resulting `UInt` value are the same as the bits of this `Short` value,\n * whereas the most significant 16 bits are filled with the sign bit of this value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Short.toUInt(): UInt = UInt(this.toInt())\n/**\n * Converts this [Int] value to [UInt].\n *\n * If this value is positive, the resulting `UInt` value represents the same numerical value as this `Int`.\n *\n * The resulting `UInt` value has the same binary representation as this `Int` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Int.toUInt(): UInt = UInt(this)\n/**\n * Converts this [Long] value to [UInt].\n *\n * If this value is positive and less than or equals to [UInt.MAX_VALUE], the resulting `UInt` value represents\n * the same numerical value as this `Long`.\n *\n * The resulting `UInt` value is represented by the least significant 32 bits of this `Long` value.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Long.toUInt(): UInt = UInt(this.toInt())\n\n/**\n * Converts this [Float] value to [UInt].\n *\n * The fractional part, if any, is rounded down towards zero.\n * Returns zero if this `Float` value is negative or `NaN`, [UInt.MAX_VALUE] if it's bigger than `UInt.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Float.toUInt(): UInt = doubleToUInt(this.toDouble())\n/**\n * Converts this [Double] value to [UInt].\n *\n * The fractional part, if any, is rounded down towards zero.\n * Returns zero if this `Double` value is negative or `NaN`, [UInt.MAX_VALUE] if it's bigger than `UInt.MAX_VALUE`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun Double.toUInt(): UInt = doubleToUInt(this)\n",null,"/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.js.*\nimport primitiveArrayConcat\nimport withType\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun Array.elementAt(index: Int): T {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun ByteArray.elementAt(index: Int): Byte {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun ShortArray.elementAt(index: Int): Short {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun IntArray.elementAt(index: Int): Int {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun LongArray.elementAt(index: Int): Long {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun FloatArray.elementAt(index: Int): Float {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun DoubleArray.elementAt(index: Int): Double {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun BooleanArray.elementAt(index: Int): Boolean {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this array.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic actual fun CharArray.elementAt(index: Int): Char {\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"index: $index, size: $size}\") }\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic actual fun Array.asList(): List {\n return ArrayList(this.unsafeCast>())\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun ByteArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun ShortArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun IntArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun LongArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun FloatArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun DoubleArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun BooleanArray.asList(): List {\n return this.unsafeCast>().asList()\n}\n\n/**\n * Returns a [List] that wraps the original array.\n */\npublic actual fun CharArray.asList(): List {\n return object : AbstractList(), RandomAccess {\n override val size: Int get() = this@asList.size\n override fun isEmpty(): Boolean = this@asList.isEmpty()\n override fun contains(element: Char): Boolean = this@asList.contains(element)\n override fun get(index: Int): Char {\n AbstractList.checkElementIndex(index, size)\n return this@asList[index]\n }\n override fun indexOf(element: Char): Int {\n if ((element as Any?) !is Char) return -1\n return this@asList.indexOf(element)\n }\n override fun lastIndexOf(element: Char): Int {\n if ((element as Any?) !is Char) return -1\n return this@asList.lastIndexOf(element)\n }\n }\n}\n\n/**\n * Returns `true` if the two specified arrays are *deeply* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * If two corresponding elements are nested arrays, they are also compared deeply.\n * If any of arrays contains itself on any nesting level the behavior is undefined.\n * \n * The elements of other types are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayDeepEquals\")\npublic actual infix fun Array.contentDeepEquals(other: Array): Boolean {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level the behavior is undefined.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayDeepHashCode\")\npublic actual fun Array.contentDeepHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of this array as if it is a [List].\n * Nested arrays are treated as lists too.\n * \n * If any of arrays contains itself on any nesting level that reference\n * is rendered as `\"[...]\"` to prevent recursion.\n * \n * @sample samples.collections.Arrays.ContentOperations.contentDeepToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayDeepToString\")\npublic actual fun Array.contentDeepToString(): String {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun Array.contentEquals(other: Array): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun ByteArray.contentEquals(other: ByteArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun ShortArray.contentEquals(other: ShortArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun IntArray.contentEquals(other: IntArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun LongArray.contentEquals(other: LongArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun FloatArray.contentEquals(other: FloatArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun DoubleArray.contentEquals(other: DoubleArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun BooleanArray.contentEquals(other: BooleanArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns `true` if the two specified arrays are *structurally* equal to one another,\n * i.e. contain the same number of the same elements in the same order.\n * \n * The elements are compared for equality with the [equals][Any.equals] function.\n * For floating point numbers it means that `NaN` is equal to itself and `-0.0` is not equal to `0.0`.\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayEquals\")\npublic actual infix fun CharArray.contentEquals(other: CharArray): Boolean {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun Array.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun ByteArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun ShortArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun IntArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun LongArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun FloatArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun DoubleArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun BooleanArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a hash code based on the contents of this array as if it is [List].\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayHashCode\")\npublic actual fun CharArray.contentHashCode(): Int {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun Array.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun ByteArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun ShortArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun IntArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun LongArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun FloatArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun DoubleArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun BooleanArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Returns a string representation of the contents of the specified array as if it is [List].\n * \n * @sample samples.collections.Arrays.ContentOperations.contentToString\n */\n@SinceKotlin(\"1.1\")\n@library(\"arrayToString\")\npublic actual fun CharArray.contentToString(): String {\n definedExternally\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun Array.copyInto(destination: Array, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): Array {\n arrayCopy(this, destination, destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun ByteArray.copyInto(destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ByteArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun ShortArray.copyInto(destination: ShortArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): ShortArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun IntArray.copyInto(destination: IntArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): IntArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun LongArray.copyInto(destination: LongArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): LongArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun FloatArray.copyInto(destination: FloatArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): FloatArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun DoubleArray.copyInto(destination: DoubleArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): DoubleArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun BooleanArray.copyInto(destination: BooleanArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): BooleanArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Copies this array or its subrange into the [destination] array and returns that array.\n * \n * It's allowed to pass the same array in the [destination] and even specify the subrange so that it overlaps with the destination range.\n * \n * @param destination the array to copy to.\n * @param destinationOffset the position in the [destination] array to copy to, 0 by default.\n * @param startIndex the beginning (inclusive) of the subrange to copy, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to copy, size of this array by default.\n * \n * @throws IndexOutOfBoundsException or [IllegalArgumentException] when [startIndex] or [endIndex] is out of range of this array indices or when `startIndex > endIndex`.\n * @throws IndexOutOfBoundsException when the subrange doesn't fit into the [destination] array starting at the specified [destinationOffset],\n * or when that index is out of the [destination] array indices range.\n * \n * @return the [destination] array.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual inline fun CharArray.copyInto(destination: CharArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = size): CharArray {\n arrayCopy(this.unsafeCast>(), destination.unsafeCast>(), destinationOffset, startIndex, endIndex)\n return destination\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline fun Array.copyOf(): Array {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun ByteArray.copyOf(): ByteArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun ShortArray.copyOf(): ShortArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun IntArray.copyOf(): IntArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic actual fun LongArray.copyOf(): LongArray {\n return withType(\"LongArray\", this.asDynamic().slice())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun FloatArray.copyOf(): FloatArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline fun DoubleArray.copyOf(): DoubleArray {\n return this.asDynamic().slice()\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic actual fun BooleanArray.copyOf(): BooleanArray {\n return withType(\"BooleanArray\", this.asDynamic().slice())\n}\n\n/**\n * Returns new array which is a copy of the original array.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.copyOf\n */\npublic actual fun CharArray.copyOf(): CharArray {\n return withType(\"CharArray\", this.asDynamic().slice())\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun ByteArray.copyOf(newSize: Int): ByteArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, ByteArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun ShortArray.copyOf(newSize: Int): ShortArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, ShortArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun IntArray.copyOf(newSize: Int): IntArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, IntArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun LongArray.copyOf(newSize: Int): LongArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return withType(\"LongArray\", arrayCopyResize(this, newSize, 0L))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun FloatArray.copyOf(newSize: Int): FloatArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, FloatArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with zero values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with zero values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun DoubleArray.copyOf(newSize: Int): DoubleArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return fillFrom(this, DoubleArray(newSize))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `false` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `false` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun BooleanArray.copyOf(newSize: Int): BooleanArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return withType(\"BooleanArray\", arrayCopyResize(this, newSize, false))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with null char (`\\u0000`) values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with null char (`\\u0000`) values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizedPrimitiveCopyOf\n */\npublic actual fun CharArray.copyOf(newSize: Int): CharArray {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return withType(\"CharArray\", fillFrom(this, CharArray(newSize)))\n}\n\n/**\n * Returns new array which is a copy of the original array, resized to the given [newSize].\n * The copy is either truncated or padded at the end with `null` values if necessary.\n * \n * - If [newSize] is less than the size of the original array, the copy array is truncated to the [newSize].\n * - If [newSize] is greater than the size of the original array, the extra elements in the copy array are filled with `null` values.\n * \n * @sample samples.collections.Arrays.CopyOfOperations.resizingCopyOf\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\")\npublic actual fun Array.copyOf(newSize: Int): Array {\n require(newSize >= 0) { \"Invalid new array size: $newSize.\" }\n return arrayCopyResize(this, newSize, null)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\")\npublic actual fun Array.copyOfRange(fromIndex: Int, toIndex: Int): Array {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return withType(\"LongArray\", this.asDynamic().slice(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return this.asDynamic().slice(fromIndex, toIndex)\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return withType(\"BooleanArray\", this.asDynamic().slice(fromIndex, toIndex))\n}\n\n/**\n * Returns a new array which is a copy of the specified range of the original array.\n * \n * @param fromIndex the start of the range (inclusive), must be in `0..array.size`\n * @param toIndex the end of the range (exclusive), must be in `fromIndex..array.size`\n */\npublic actual fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n return withType(\"CharArray\", this.asDynamic().slice(fromIndex, toIndex))\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun Array.fill(element: T, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun ByteArray.fill(element: Byte, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun ShortArray.fill(element: Short, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun IntArray.fill(element: Int, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun LongArray.fill(element: Long, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun FloatArray.fill(element: Float, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun DoubleArray.fill(element: Double, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun BooleanArray.fill(element: Boolean, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Fills this array or its subrange with the specified [element] value.\n * \n * @param fromIndex the start of the range (inclusive), 0 by default.\n * @param toIndex the end of the range (exclusive), size of this array by default.\n * \n * @throws IndexOutOfBoundsException if [fromIndex] is less than zero or [toIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [fromIndex] is greater than [toIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun CharArray.fill(element: Char, fromIndex: Int = 0, toIndex: Int = size): Unit {\n AbstractList.checkRangeIndexes(fromIndex, toIndex, size)\n this.asDynamic().fill(element, fromIndex, toIndex);\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline operator fun Array.plus(element: T): Array {\n return this.asDynamic().concat(arrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ByteArray.plus(element: Byte): ByteArray {\n return plus(byteArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ShortArray.plus(element: Short): ShortArray {\n return plus(shortArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun IntArray.plus(element: Int): IntArray {\n return plus(intArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun LongArray.plus(element: Long): LongArray {\n return plus(longArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun FloatArray.plus(element: Float): FloatArray {\n return plus(floatArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun DoubleArray.plus(element: Double): DoubleArray {\n return plus(doubleArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun BooleanArray.plus(element: Boolean): BooleanArray {\n return plus(booleanArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun CharArray.plus(element: Char): CharArray {\n return plus(charArrayOf(element))\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\")\npublic actual operator fun Array.plus(elements: Collection): Array {\n return arrayPlusCollection(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun ByteArray.plus(elements: Collection): ByteArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun ShortArray.plus(elements: Collection): ShortArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun IntArray.plus(elements: Collection): IntArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun LongArray.plus(elements: Collection): LongArray {\n return arrayPlusCollection(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun FloatArray.plus(elements: Collection): FloatArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun DoubleArray.plus(elements: Collection): DoubleArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun BooleanArray.plus(elements: Collection): BooleanArray {\n return arrayPlusCollection(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] collection.\n */\npublic actual operator fun CharArray.plus(elements: Collection): CharArray {\n return fillFromCollection(this.copyOf(size + elements.size), this.size, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline operator fun Array.plus(elements: Array): Array {\n return this.asDynamic().concat(elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ByteArray.plus(elements: ByteArray): ByteArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun ShortArray.plus(elements: ShortArray): ShortArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun IntArray.plus(elements: IntArray): IntArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun LongArray.plus(elements: LongArray): LongArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun FloatArray.plus(elements: FloatArray): FloatArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun DoubleArray.plus(elements: DoubleArray): DoubleArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then all elements of the given [elements] array.\n */\n@Suppress(\"NOTHING_TO_INLINE\")\npublic actual inline operator fun CharArray.plus(elements: CharArray): CharArray {\n return primitiveArrayConcat(this, elements)\n}\n\n/**\n * Returns an array containing all elements of the original array and then the given [element].\n */\n@Suppress(\"ACTUAL_WITHOUT_EXPECT\", \"NOTHING_TO_INLINE\")\npublic actual inline fun Array.plusElement(element: T): Array {\n return this.asDynamic().concat(arrayOf(element))\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@library(\"primitiveArraySort\")\npublic actual fun IntArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\npublic actual fun LongArray.sort(): Unit {\n if (size > 1) sort { a: Long, b: Long -> a.compareTo(b) }\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@library(\"primitiveArraySort\")\npublic actual fun ByteArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@library(\"primitiveArraySort\")\npublic actual fun ShortArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@library(\"primitiveArraySort\")\npublic actual fun DoubleArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@library(\"primitiveArraySort\")\npublic actual fun FloatArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place.\n * \n * @sample samples.collections.Arrays.Sorting.sortArray\n */\n@library(\"primitiveArraySort\")\npublic actual fun CharArray.sort(): Unit {\n definedExternally\n}\n\n/**\n * Sorts the array in-place according to the natural order of its elements.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @sample samples.collections.Arrays.Sorting.sortArrayOfComparable\n */\npublic actual fun > Array.sort(): Unit {\n if (size > 1) sortArray(this)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Array.sort(comparison: (a: T, b: T) -> Int): Unit {\n if (size > 1) sortArrayWith(this, comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ByteArray.sort(noinline comparison: (a: Byte, b: Byte) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun ShortArray.sort(noinline comparison: (a: Short, b: Short) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun IntArray.sort(noinline comparison: (a: Int, b: Int) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun LongArray.sort(noinline comparison: (a: Long, b: Long) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun FloatArray.sort(noinline comparison: (a: Float, b: Float) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun DoubleArray.sort(noinline comparison: (a: Double, b: Double) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparison] function.\n */\n@kotlin.internal.InlineOnly\npublic inline fun CharArray.sort(noinline comparison: (a: Char, b: Char) -> Int): Unit {\n asDynamic().sort(comparison)\n}\n\n/**\n * Sorts the array in-place according to the order specified by the given [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic actual fun Array.sortWith(comparator: Comparator): Unit {\n if (size > 1) sortArrayWith(this, comparator)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun ByteArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun ShortArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun IntArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun LongArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun FloatArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun DoubleArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun BooleanArray.toTypedArray(): Array {\n return js(\"[]\").slice.call(this)\n}\n\n/**\n * Returns a *typed* object array containing all of the elements of this primitive array.\n */\npublic actual fun CharArray.toTypedArray(): Array {\n return Array(size) { index -> this[index] }\n}\n\n",null,null,"/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.text\n\nimport kotlin.js.RegExp\n\n/**\n * Converts the characters in the specified array to a string.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun String(chars: CharArray): String {\n var result = \"\"\n for (char in chars) {\n result += char\n }\n return result\n}\n\n/**\n * Converts the characters from a portion of the specified array to a string.\n *\n * @throws IndexOutOfBoundsException if either [offset] or [length] are less than zero\n * or `offset + length` is out of [chars] array bounds.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun String(chars: CharArray, offset: Int, length: Int): String {\n if (offset < 0 || length < 0 || chars.size - offset < length)\n throw IndexOutOfBoundsException(\"size: ${chars.size}; offset: $offset; length: $length\")\n var result = \"\"\n for (index in offset until offset + length) {\n result += chars[index]\n }\n return result\n}\n\n/**\n * Concatenates characters in this [CharArray] into a String.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun CharArray.concatToString(): String {\n var result = \"\"\n for (char in this) {\n result += char\n }\n return result\n}\n\n/**\n * Concatenates characters in this [CharArray] or its subrange into a String.\n *\n * @param startIndex the beginning (inclusive) of the subrange of characters, 0 by default.\n * @param endIndex the end (exclusive) of the subrange of characters, size of this array by default.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun CharArray.concatToString(startIndex: Int = 0, endIndex: Int = this.size): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, this.size)\n var result = \"\"\n for (index in startIndex until endIndex) {\n result += this[index]\n }\n return result\n}\n\n/**\n * Returns a [CharArray] containing characters of this string.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun String.toCharArray(): CharArray {\n return CharArray(length) { get(it) }\n}\n\n/**\n * Returns a [CharArray] containing characters of this string or its substring.\n *\n * @param startIndex the beginning (inclusive) of the substring, 0 by default.\n * @param endIndex the end (exclusive) of the substring, length of this string by default.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the length of this string.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun String.toCharArray(startIndex: Int = 0, endIndex: Int = this.length): CharArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n return CharArray(endIndex - startIndex) { get(startIndex + it) }\n}\n\n/**\n * Decodes a string from the bytes in UTF-8 encoding in this array.\n *\n * Malformed byte sequences are replaced by the replacement char `\\uFFFD`.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun ByteArray.decodeToString(): String {\n return decodeUtf8(this, 0, size, false)\n}\n\n/**\n * Decodes a string from the bytes in UTF-8 encoding in this array or its subrange.\n *\n * @param startIndex the beginning (inclusive) of the subrange to decode, 0 by default.\n * @param endIndex the end (exclusive) of the subrange to decode, size of this array by default.\n * @param throwOnInvalidSequence specifies whether to throw an exception on malformed byte sequence or replace it by the replacement char `\\uFFFD`.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the size of this array.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n * @throws CharacterCodingException if the byte array contains malformed UTF-8 byte sequence and [throwOnInvalidSequence] is true.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun ByteArray.decodeToString(\n startIndex: Int = 0,\n endIndex: Int = this.size,\n throwOnInvalidSequence: Boolean = false\n): String {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, this.size)\n return decodeUtf8(this, startIndex, endIndex, throwOnInvalidSequence)\n}\n\n/**\n * Encodes this string to an array of bytes in UTF-8 encoding.\n *\n * Any malformed char sequence is replaced by the replacement byte sequence.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalStdlibApi\npublic actual fun String.encodeToByteArray(): ByteArray {\n return encodeUtf8(this, 0, length, false)\n}\n\n/**\n * Encodes this string or its substring to an array of bytes in UTF-8 encoding.\n *\n * @param startIndex the beginning (inclusive) of the substring to encode, 0 by default.\n * @param endIndex the end (exclusive) of the substring to encode, length of this string by default.\n * @param throwOnInvalidSequence specifies whether to throw an exception on malformed char sequence or replace.\n *\n * @throws IndexOutOfBoundsException if [startIndex] is less than zero or [endIndex] is greater than the length of this string.\n * @throws IllegalArgumentException if [startIndex] is greater than [endIndex].\n * @throws CharacterCodingException if this string contains malformed char sequence and [throwOnInvalidSequence] is true.\n */\n@SinceKotlin(\"1.3\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\n@ExperimentalStdlibApi\npublic actual fun String.encodeToByteArray(\n startIndex: Int = 0,\n endIndex: Int = this.length,\n throwOnInvalidSequence: Boolean = false\n): ByteArray {\n AbstractList.checkBoundsIndexes(startIndex, endIndex, length)\n return encodeUtf8(this, startIndex, endIndex, throwOnInvalidSequence)\n}\n\n/**\n * Returns a copy of this string converted to upper case using the rules of the default locale.\n *\n * @sample samples.text.Strings.toUpperCase\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toUpperCase(): String = asDynamic().toUpperCase()\n\n/**\n * Returns a copy of this string converted to lower case using the rules of the default locale.\n *\n * @sample samples.text.Strings.toLowerCase\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun String.toLowerCase(): String = asDynamic().toLowerCase()\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeIndexOf(str: String, fromIndex: Int): Int = asDynamic().indexOf(str, fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal actual inline fun String.nativeLastIndexOf(str: String, fromIndex: Int): Int = asDynamic().lastIndexOf(str, fromIndex)\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeStartsWith(s: String, position: Int): Boolean = asDynamic().startsWith(s, position)\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeEndsWith(s: String): Boolean = asDynamic().endsWith(s)\n\n@kotlin.internal.InlineOnly\npublic actual inline fun String.substring(startIndex: Int): String = asDynamic().substring(startIndex)\n\n@kotlin.internal.InlineOnly\npublic actual inline fun String.substring(startIndex: Int, endIndex: Int): String = asDynamic().substring(startIndex, endIndex)\n\n@kotlin.internal.InlineOnly\npublic inline fun String.concat(str: String): String = asDynamic().concat(str)\n\n@kotlin.internal.InlineOnly\npublic inline fun String.match(regex: String): Array? = asDynamic().match(regex)\n\n//native public fun String.trim(): String\n//TODO: String.replace to implement effective trimLeading and trimTrailing\n\n@kotlin.internal.InlineOnly\ninternal inline fun String.nativeReplace(pattern: RegExp, replacement: String): String = asDynamic().replace(pattern, replacement)\n\n@SinceKotlin(\"1.2\")\n@Suppress(\"ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS\")\npublic actual fun String.compareTo(other: String, ignoreCase: Boolean = false): Int {\n if (ignoreCase) {\n val n1 = this.length\n val n2 = other.length\n val min = minOf(n1, n2)\n if (min == 0) return n1 - n2\n var start = 0\n while (true) {\n val end = minOf(start + 16, min)\n var s1 = this.substring(start, end)\n var s2 = other.substring(start, end)\n if (s1 != s2) {\n s1 = s1.toUpperCase()\n s2 = s2.toUpperCase()\n if (s1 != s2) {\n s1 = s1.toLowerCase()\n s2 = s2.toLowerCase()\n if (s1 != s2) {\n return s1.compareTo(s2)\n }\n }\n }\n if (end == min) break\n start = end\n }\n return n1 - n2\n } else {\n return compareTo(other)\n }\n}\n\n\nprivate val STRING_CASE_INSENSITIVE_ORDER = Comparator { a, b -> a.compareTo(b, ignoreCase = true) }\n\n@SinceKotlin(\"1.2\")\npublic actual val String.Companion.CASE_INSENSITIVE_ORDER: Comparator\n get() = STRING_CASE_INSENSITIVE_ORDER\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\ninternal object EmptyIterator : ListIterator {\n override fun hasNext(): Boolean = false\n override fun hasPrevious(): Boolean = false\n override fun nextIndex(): Int = 0\n override fun previousIndex(): Int = -1\n override fun next(): Nothing = throw NoSuchElementException()\n override fun previous(): Nothing = throw NoSuchElementException()\n}\n\ninternal object EmptyList : List, Serializable, RandomAccess {\n private const val serialVersionUID: Long = -7390468764508069838L\n\n override fun equals(other: Any?): Boolean = other is List<*> && other.isEmpty()\n override fun hashCode(): Int = 1\n override fun toString(): String = \"[]\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n override fun contains(element: Nothing): Boolean = false\n override fun containsAll(elements: Collection): Boolean = elements.isEmpty()\n\n override fun get(index: Int): Nothing = throw IndexOutOfBoundsException(\"Empty list doesn't contain element at index $index.\")\n override fun indexOf(element: Nothing): Int = -1\n override fun lastIndexOf(element: Nothing): Int = -1\n\n override fun iterator(): Iterator = EmptyIterator\n override fun listIterator(): ListIterator = EmptyIterator\n override fun listIterator(index: Int): ListIterator {\n if (index != 0) throw IndexOutOfBoundsException(\"Index: $index\")\n return EmptyIterator\n }\n\n override fun subList(fromIndex: Int, toIndex: Int): List {\n if (fromIndex == 0 && toIndex == 0) return this\n throw IndexOutOfBoundsException(\"fromIndex: $fromIndex, toIndex: $toIndex\")\n }\n\n private fun readResolve(): Any = EmptyList\n}\n\ninternal fun Array.asCollection(): Collection = ArrayAsCollection(this, isVarargs = false)\n\nprivate class ArrayAsCollection(val values: Array, val isVarargs: Boolean) : Collection {\n override val size: Int get() = values.size\n override fun isEmpty(): Boolean = values.isEmpty()\n override fun contains(element: T): Boolean = values.contains(element)\n override fun containsAll(elements: Collection): Boolean = elements.all { contains(it) }\n override fun iterator(): Iterator = values.iterator()\n // override hidden toArray implementation to prevent copying of values array\n public fun toArray(): Array = values.copyToArrayOfAny(isVarargs)\n}\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\npublic fun emptyList(): List = EmptyList\n\n/**\n * Returns a new read-only list of given elements. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.readOnlyList\n */\npublic fun listOf(vararg elements: T): List = if (elements.size > 0) elements.asList() else emptyList()\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\n@kotlin.internal.InlineOnly\npublic inline fun listOf(): List = emptyList()\n\n/**\n * Returns an empty new [MutableList].\n * @sample samples.collections.Collections.Lists.emptyMutableList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableListOf(): MutableList = ArrayList()\n\n/**\n * Returns an empty new [ArrayList].\n * @sample samples.collections.Collections.Lists.emptyArrayList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun arrayListOf(): ArrayList = ArrayList()\n\n/**\n * Returns a new [MutableList] with the given elements.\n * @sample samples.collections.Collections.Lists.mutableList\n */\npublic fun mutableListOf(vararg elements: T): MutableList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new [ArrayList] with the given elements.\n * @sample samples.collections.Collections.Lists.arrayList\n */\npublic fun arrayListOf(vararg elements: T): ArrayList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new read-only list either of single given element, if it is not null, or empty list if the element is null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(element: T?): List = if (element != null) listOf(element) else emptyList()\n\n/**\n * Returns a new read-only list only of those given elements, that are not null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(vararg elements: T?): List = elements.filterNotNull()\n\n/**\n * Creates a new read-only list with the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each list element sequentially starting from the first one.\n * It should return the value for a list element given its index.\n *\n * @sample samples.collections.Collections.Lists.readOnlyListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun List(size: Int, init: (index: Int) -> T): List = MutableList(size, init)\n\n/**\n * Creates a new mutable list with the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each list element sequentially starting from the first one.\n * It should return the value for a list element given its index.\n *\n * @sample samples.collections.Collections.Lists.mutableListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun MutableList(size: Int, init: (index: Int) -> T): MutableList {\n val list = ArrayList(size)\n repeat(size) { index -> list.add(init(index)) }\n return list\n}\n\n/**\n * Returns an [IntRange] of the valid indices for this collection.\n * @sample samples.collections.Collections.Collections.indicesOfCollection\n */\npublic val Collection<*>.indices: IntRange\n get() = 0..size - 1\n\n/**\n * Returns the index of the last item in the list or -1 if the list is empty.\n *\n * @sample samples.collections.Collections.Lists.lastIndexOfList\n */\npublic val List.lastIndex: Int\n get() = this.size - 1\n\n/**\n * Returns `true` if the collection is not empty.\n * @sample samples.collections.Collections.Collections.collectionIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable collection is either null or empty.\n * @sample samples.collections.Collections.Collections.collectionIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.isEmpty()\n}\n\n/**\n * Returns this Collection if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Collections.collectionOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.orEmpty(): Collection = this ?: emptyList()\n\n/**\n * Returns this List if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Lists.listOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun List?.orEmpty(): List = this ?: emptyList()\n\n/**\n * Returns this collection if it's not empty\n * or the result of calling [defaultValue] function if the collection is empty.\n *\n * @sample samples.collections.Collections.Collections.collectionIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : Collection<*>, C : R =\n if (isEmpty()) defaultValue() else this\n\n\n/**\n * Checks if all elements in the specified collection are contained in this collection.\n *\n * Allows to overcome type-safety restriction of `containsAll` that requires to pass a collection of type `Collection`.\n * @sample samples.collections.Collections.Collections.collectionContainsAll\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> Collection.containsAll(elements: Collection): Boolean = this.containsAll(elements)\n\ninternal fun List.optimizeReadOnlyList() = when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of its elements,\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchOnComparable\n * @sample samples.collections.Collections.Lists.binarySearchWithBoundaries\n */\npublic fun > List.binarySearch(element: T?, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = compareValues(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the specified [comparator],\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted according to the specified [comparator].\n * @sample samples.collections.Collections.Lists.binarySearchWithComparator\n */\npublic fun List.binarySearch(element: T, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparator.compare(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for an element having the key returned by the specified [selector] function\n * equal to the provided [key] value using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of keys of its elements.\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements with the specified [key], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element with the specified [key], if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchByKey\n */\npublic inline fun > List.binarySearchBy(\n key: K?,\n fromIndex: Int = 0,\n toIndex: Int = size,\n crossinline selector: (T) -> K?\n): Int =\n binarySearch(fromIndex, toIndex) { compareValues(selector(it), key) }\n\n// do not introduce this overload --- too rare\n//public fun List.binarySearchBy(key: K, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size(), selector: (T) -> K): Int =\n// binarySearch(fromIndex, toIndex) { comparator.compare(selector(it), key) }\n\n\n/**\n * Searches this list or its range for an element for which the given [comparison] function returns zero using the binary search algorithm.\n *\n * The list is expected to be sorted so that the signs of the [comparison] function's return values ascend on the list elements,\n * i.e. negative values come before zero and zeroes come before positive values.\n * Otherwise, the result is undefined.\n *\n * If the list contains multiple elements for which [comparison] returns zero, there is no guarantee which one will be found.\n *\n * @param comparison function that returns zero when called on the list element being searched.\n * On the elements coming before the target element, the function must return negative values;\n * on the elements coming after the target element, the function must return positive values.\n *\n * @return the index of the found element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchWithComparisonFunction\n */\npublic fun List.binarySearch(fromIndex: Int = 0, toIndex: Int = size, comparison: (T) -> Int): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparison(midVal)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Checks that `from` and `to` are in\n * the range of [0..size] and throws an appropriate exception, if they aren't.\n */\nprivate fun rangeCheck(size: Int, fromIndex: Int, toIndex: Int) {\n when {\n fromIndex > toIndex -> throw IllegalArgumentException(\"fromIndex ($fromIndex) is greater than toIndex ($toIndex).\")\n fromIndex < 0 -> throw IndexOutOfBoundsException(\"fromIndex ($fromIndex) is less than zero.\")\n toIndex > size -> throw IndexOutOfBoundsException(\"toIndex ($toIndex) is greater than size ($size).\")\n }\n}\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkIndexOverflow(index: Int): Int\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkCountOverflow(count: Int): Int\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwIndexOverflow() { throw ArithmeticException(\"Index overflow has happened.\") }\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwCountOverflow() { throw ArithmeticException(\"Count overflow has happened.\") }\n\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StandardKt\")\npackage kotlin\n\nimport kotlin.contracts.*\n\n/**\n * An exception is thrown to indicate that a method body remains to be implemented.\n */\npublic class NotImplementedError(message: String = \"An operation is not implemented.\") : Error(message)\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n */\n\n@kotlin.internal.InlineOnly\npublic inline fun TODO(): Nothing = throw NotImplementedError()\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n *\n * @param reason a string explaining why the implementation is missing.\n */\n@kotlin.internal.InlineOnly\npublic inline fun TODO(reason: String): Nothing = throw NotImplementedError(\"An operation is not implemented: $reason\")\n\n\n\n/**\n * Calls the specified function [block] and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun run(block: () -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.run(block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with the given [receiver] as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#with).\n */\n@kotlin.internal.InlineOnly\npublic inline fun with(receiver: T, block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return receiver.block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#apply).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.apply(block: T.() -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block()\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#also).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.also(block: (T) -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block(this)\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#let).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.let(block: (T) -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block(this)\n}\n\n/**\n * Returns `this` value if it satisfies the given [predicate] or `null`, if it doesn't.\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeIf(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (predicate(this)) this else null\n}\n\n/**\n * Returns `this` value if it _does not_ satisfy the given [predicate] or `null`, if it does.\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeUnless(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (!predicate(this)) this else null\n}\n\n/**\n * Executes the given function [action] specified number of [times].\n *\n * A zero-based index of current iteration is passed as a parameter to [action].\n *\n * @sample samples.misc.ControlFlow.repeat\n */\n@kotlin.internal.InlineOnly\npublic inline fun repeat(times: Int, action: (Int) -> Unit) {\n contract { callsInPlace(action) }\n\n for (index in 0 until times) {\n action(index)\n }\n}\n",null,"/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:Suppress(\"UNUSED_PARAMETER\", \"NOTHING_TO_INLINE\")\n\npackage kotlin\n\n/**\n * Returns an empty array of the specified type [T].\n */\npublic inline fun emptyArray(): Array = js(\"[]\")\n\n@library\npublic fun arrayOf(vararg elements: T): Array = definedExternally\n\n@library\npublic fun doubleArrayOf(vararg elements: Double): DoubleArray = definedExternally\n\n@library\npublic fun floatArrayOf(vararg elements: Float): FloatArray = definedExternally\n\n@library\npublic fun longArrayOf(vararg elements: Long): LongArray = definedExternally\n\n@library\npublic fun intArrayOf(vararg elements: Int): IntArray = definedExternally\n\n@library\npublic fun charArrayOf(vararg elements: Char): CharArray = definedExternally\n\n@library\npublic fun shortArrayOf(vararg elements: Short): ShortArray = definedExternally\n\n@library\npublic fun byteArrayOf(vararg elements: Byte): ByteArray = definedExternally\n\n@library\npublic fun booleanArrayOf(vararg elements: Boolean): BooleanArray = definedExternally\n\n/**\n * Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].\n */\npublic actual fun lazy(initializer: () -> T): Lazy = UnsafeLazyImpl(initializer)\n\n/**\n * Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].\n *\n * The [mode] parameter is ignored. */\npublic actual fun lazy(mode: LazyThreadSafetyMode, initializer: () -> T): Lazy = UnsafeLazyImpl(initializer)\n\n/**\n * Creates a new instance of the [Lazy] that uses the specified initialization function [initializer].\n *\n * The [lock] parameter is ignored.\n */\npublic actual fun lazy(lock: Any?, initializer: () -> T): Lazy = UnsafeLazyImpl(initializer)\n\n\ninternal fun fillFrom(src: dynamic, dst: dynamic): dynamic {\n val srcLen: Int = src.length\n val dstLen: Int = dst.length\n var index: Int = 0\n while (index < srcLen && index < dstLen) dst[index] = src[index++]\n return dst\n}\n\n\ninternal fun arrayCopyResize(source: dynamic, newSize: Int, defaultValue: Any?): dynamic {\n val result = source.slice(0, newSize)\n copyArrayType(source, result)\n var index: Int = source.length\n if (newSize > index) {\n result.length = newSize\n while (index < newSize) result[index++] = defaultValue\n }\n return result\n}\n\ninternal fun arrayPlusCollection(array: dynamic, collection: Collection): dynamic {\n val result = array.slice()\n result.length += collection.size\n copyArrayType(array, result)\n var index: Int = array.length\n for (element in collection) result[index++] = element\n return result\n}\n\ninternal fun fillFromCollection(dst: dynamic, startIndex: Int, collection: Collection): dynamic {\n var index = startIndex\n for (element in collection) dst[index++] = element\n return dst\n}\n\ninternal inline fun copyArrayType(from: dynamic, to: dynamic) {\n if (from.`$type$` !== undefined) {\n to.`$type$` = from.`$type$`\n }\n}\n\ninternal inline fun jsIsType(obj: dynamic, jsClass: dynamic) = js(\"Kotlin\").isType(obj, jsClass)",null,"/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"ArraysKt\")\n\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\n\n/**\n * Returns a single list of all elements from all arrays in the given array.\n * @sample samples.collections.Arrays.Transformations.flattenArray\n */\npublic fun Array>.flatten(): List {\n val result = ArrayList(sumBy { it.size })\n for (element in this) {\n result.addAll(element)\n }\n return result\n}\n\n/**\n * Returns a pair of lists, where\n * *first* list is built from the first values of each pair from this array,\n * *second* list is built from the second values of each pair from this array.\n * @sample samples.collections.Arrays.Transformations.unzipArray\n */\npublic fun Array>.unzip(): Pair, List> {\n val listT = ArrayList(size)\n val listR = ArrayList(size)\n for (pair in this) {\n listT.add(pair.first)\n listR.add(pair.second)\n }\n return listT to listR\n}\n\n/**\n * Returns `true` if this nullable array is either null or empty.\n * @sample samples.collections.Arrays.Usage.arrayIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Array<*>?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.isEmpty()\n}\n\n/**\n * Returns this array if it's not empty\n * or the result of calling [defaultValue] function if the array is empty.\n *\n * @sample samples.collections.Arrays.Usage.arrayIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\n@Suppress(\"UPPER_BOUND_CANNOT_BE_ARRAY\")\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : Array<*>, C : R =\n if (isEmpty()) defaultValue() else this\n\n\n@UseExperimental(ExperimentalUnsignedTypes::class)\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@kotlin.jvm.JvmName(\"contentDeepEquals\")\n@kotlin.js.JsName(\"contentDeepEqualsImpl\")\ninternal fun Array.contentDeepEqualsImpl(other: Array): Boolean {\n if (this === other) return true\n if (this.size != other.size) return false\n\n for (i in indices) {\n val v1 = this[i]\n val v2 = other[i]\n\n if (v1 === v2) {\n continue\n } else if (v1 == null || v2 == null) {\n return false\n }\n\n when {\n v1 is Array<*> && v2 is Array<*> -> if (!v1.contentDeepEquals(v2)) return false\n v1 is ByteArray && v2 is ByteArray -> if (!v1.contentEquals(v2)) return false\n v1 is ShortArray && v2 is ShortArray -> if (!v1.contentEquals(v2)) return false\n v1 is IntArray && v2 is IntArray -> if (!v1.contentEquals(v2)) return false\n v1 is LongArray && v2 is LongArray -> if (!v1.contentEquals(v2)) return false\n v1 is FloatArray && v2 is FloatArray -> if (!v1.contentEquals(v2)) return false\n v1 is DoubleArray && v2 is DoubleArray -> if (!v1.contentEquals(v2)) return false\n v1 is CharArray && v2 is CharArray -> if (!v1.contentEquals(v2)) return false\n v1 is BooleanArray && v2 is BooleanArray -> if (!v1.contentEquals(v2)) return false\n\n v1 is UByteArray && v2 is UByteArray -> if (!v1.contentEquals(v2)) return false\n v1 is UShortArray && v2 is UShortArray -> if (!v1.contentEquals(v2)) return false\n v1 is UIntArray && v2 is UIntArray -> if (!v1.contentEquals(v2)) return false\n v1 is ULongArray && v2 is ULongArray -> if (!v1.contentEquals(v2)) return false\n\n else -> if (v1 != v2) return false\n }\n\n }\n return true\n}\n\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@kotlin.jvm.JvmName(\"contentDeepToString\")\n@kotlin.js.JsName(\"contentDeepToStringImpl\")\ninternal fun Array.contentDeepToStringImpl(): String {\n val length = size.coerceAtMost((Int.MAX_VALUE - 2) / 5) * 5 + 2 // in order not to overflow Int.MAX_VALUE\n return buildString(length) {\n contentDeepToStringInternal(this, mutableListOf())\n }\n}\n\n@UseExperimental(ExperimentalUnsignedTypes::class)\nprivate fun Array.contentDeepToStringInternal(result: StringBuilder, processed: MutableList>) {\n if (this in processed) {\n result.append(\"[...]\")\n return\n }\n processed.add(this)\n result.append('[')\n\n for (i in indices) {\n if (i != 0) {\n result.append(\", \")\n }\n val element = this[i]\n when (element) {\n null -> result.append(\"null\")\n is Array<*> -> element.contentDeepToStringInternal(result, processed)\n is ByteArray -> result.append(element.contentToString())\n is ShortArray -> result.append(element.contentToString())\n is IntArray -> result.append(element.contentToString())\n is LongArray -> result.append(element.contentToString())\n is FloatArray -> result.append(element.contentToString())\n is DoubleArray -> result.append(element.contentToString())\n is CharArray -> result.append(element.contentToString())\n is BooleanArray -> result.append(element.contentToString())\n\n is UByteArray -> result.append(element.contentToString())\n is UShortArray -> result.append(element.contentToString())\n is UIntArray -> result.append(element.contentToString())\n is ULongArray -> result.append(element.contentToString())\n\n else -> result.append(element.toString())\n }\n }\n\n result.append(']')\n processed.removeAt(processed.lastIndex)\n}",null,null,null,"/*\n * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n// Auto-generated file. DO NOT EDIT!\n\npackage kotlin\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\npublic inline class UByteArray\n@Suppress(\"NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS\")\n@PublishedApi\ninternal constructor(@PublishedApi internal val storage: ByteArray) : Collection {\n\n /** Creates a new array of the specified [size], with all elements initialized to zero. */\n public constructor(size: Int) : this(ByteArray(size))\n\n /**\n * Returns the array element at the given [index]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun get(index: Int): UByte = storage[index].toUByte()\n\n /**\n * Sets the element at the given [index] to the given [value]. This method can be called using the index operator.\n *\n * If the [index] is out of bounds of this array, throws an [IndexOutOfBoundsException] except in Kotlin/JS\n * where the behavior is unspecified.\n */\n public operator fun set(index: Int, value: UByte) {\n storage[index] = value.toByte()\n }\n\n /** Returns the number of elements in the array. */\n public override val size: Int get() = storage.size\n\n /** Creates an iterator over the elements of the array. */\n public override operator fun iterator(): UByteIterator = Iterator(storage)\n\n private class Iterator(private val array: ByteArray) : UByteIterator() {\n private var index = 0\n override fun hasNext() = index < array.size\n override fun nextUByte() = if (index < array.size) array[index++].toUByte() else throw NoSuchElementException(index.toString())\n }\n\n override fun contains(element: UByte): Boolean {\n // TODO: Eliminate this check after KT-30016 gets fixed.\n // Currently JS BE does not generate special bridge method for this method.\n if ((element as Any?) !is UByte) return false\n\n return storage.contains(element.toByte())\n }\n\n override fun containsAll(elements: Collection): Boolean {\n return (elements as Collection<*>).all { it is UByte && storage.contains(it.toByte()) }\n }\n\n override fun isEmpty(): Boolean = this.storage.size == 0\n}\n\n/**\n * Creates a new array of the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each array element sequentially starting from the first one.\n * It should return the value for an array element given its index.\n */\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun UByteArray(size: Int, init: (Int) -> UByte): UByteArray {\n return UByteArray(ByteArray(size) { index -> init(index).toByte() })\n}\n\n@SinceKotlin(\"1.3\")\n@ExperimentalUnsignedTypes\n@kotlin.internal.InlineOnly\npublic inline fun ubyteArrayOf(vararg elements: UByte): UByteArray = elements\n",null,"/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\nimport kotlin.random.Random\n\n/**\n * Removes a single instance of the specified element from this\n * collection, if it is present.\n *\n * Allows to overcome type-safety restriction of `remove` that requires to pass an element of type `E`.\n *\n * @return `true` if the element has been successfully removed; `false` if it was not present in the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.remove(element: T): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).remove(element)\n\n/**\n * Removes all of this collection's elements that are also contained in the specified collection.\n\n * Allows to overcome type-safety restriction of `removeAll` that requires to pass a collection of type `Collection`.\n *\n * @return `true` if any of the specified elements was removed from the collection, `false` if the collection was not modified.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.removeAll(elements: Collection): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).removeAll(elements)\n\n/**\n * Retains only the elements in this collection that are contained in the specified collection.\n *\n * Allows to overcome type-safety restriction of `retainAll` that requires to pass a collection of type `Collection`.\n *\n * @return `true` if any element was removed from the collection, `false` if the collection was not modified.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.retainAll(elements: Collection): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).retainAll(elements)\n\n/**\n * Removes the element at the specified [index] from this list.\n * In Kotlin one should use the [MutableList.removeAt] function instead.\n */\n@Deprecated(\"Use removeAt(index) instead.\", ReplaceWith(\"removeAt(index)\"), level = DeprecationLevel.ERROR)\n@kotlin.internal.InlineOnly\npublic inline fun MutableList.remove(index: Int): T = removeAt(index)\n\n/**\n * Adds the specified [element] to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(element: T) {\n this.add(element)\n}\n\n/**\n * Adds all elements of the given [elements] collection to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Iterable) {\n this.addAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] array to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Array) {\n this.addAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] sequence to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Sequence) {\n this.addAll(elements)\n}\n\n/**\n * Removes a single instance of the specified [element] from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(element: T) {\n this.remove(element)\n}\n\n/**\n * Removes all elements contained in the given [elements] collection from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Iterable) {\n this.removeAll(elements)\n}\n\n/**\n * Removes all elements contained in the given [elements] array from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Array) {\n this.removeAll(elements)\n}\n\n/**\n * Removes all elements contained in the given [elements] sequence from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Sequence) {\n this.removeAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] collection to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Iterable): Boolean {\n when (elements) {\n is Collection -> return addAll(elements)\n else -> {\n var result: Boolean = false\n for (item in elements)\n if (add(item)) result = true\n return result\n }\n }\n}\n\n/**\n * Adds all elements of the given [elements] sequence to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Sequence): Boolean {\n var result: Boolean = false\n for (item in elements) {\n if (add(item)) result = true\n }\n return result\n}\n\n/**\n * Adds all elements of the given [elements] array to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Array): Boolean {\n return addAll(elements.asList())\n}\n\n/**\n * Removes all elements from this [MutableIterable] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when no elements were removed and collection was not modified.\n */\npublic fun MutableIterable.removeAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, true)\n\n/**\n * Retains only elements of this [MutableIterable] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when all elements were retained and collection was not modified.\n */\npublic fun MutableIterable.retainAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, false)\n\nprivate fun MutableIterable.filterInPlace(predicate: (T) -> Boolean, predicateResultToRemove: Boolean): Boolean {\n var result = false\n with(iterator()) {\n while (hasNext())\n if (predicate(next()) == predicateResultToRemove) {\n remove()\n result = true\n }\n }\n return result\n}\n\n/**\n * Removes all elements from this [MutableList] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when no elements were removed and collection was not modified.\n */\npublic fun MutableList.removeAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, true)\n\n/**\n * Retains only elements of this [MutableList] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when all elements were retained and collection was not modified.\n */\npublic fun MutableList.retainAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, false)\n\nprivate fun MutableList.filterInPlace(predicate: (T) -> Boolean, predicateResultToRemove: Boolean): Boolean {\n if (this !is RandomAccess)\n return (this as MutableIterable).filterInPlace(predicate, predicateResultToRemove)\n\n var writeIndex: Int = 0\n for (readIndex in 0..lastIndex) {\n val element = this[readIndex]\n if (predicate(element) == predicateResultToRemove)\n continue\n\n if (writeIndex != readIndex)\n this[writeIndex] = element\n\n writeIndex++\n }\n if (writeIndex < size) {\n for (removeIndex in lastIndex downTo writeIndex)\n removeAt(removeIndex)\n\n return true\n } else {\n return false\n }\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] collection.\n */\npublic fun MutableCollection.removeAll(elements: Iterable): Boolean {\n return removeAll(elements.convertToSetForSetOperationWith(this))\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] sequence.\n */\npublic fun MutableCollection.removeAll(elements: Sequence): Boolean {\n val set = elements.toHashSet()\n return set.isNotEmpty() && removeAll(set)\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] array.\n */\npublic fun MutableCollection.removeAll(elements: Array): Boolean {\n return elements.isNotEmpty() && removeAll(elements.toHashSet())\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] collection.\n */\npublic fun MutableCollection.retainAll(elements: Iterable): Boolean {\n return retainAll(elements.convertToSetForSetOperationWith(this))\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] array.\n */\npublic fun MutableCollection.retainAll(elements: Array): Boolean {\n if (elements.isNotEmpty())\n return retainAll(elements.toHashSet())\n else\n return retainNothing()\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] sequence.\n */\npublic fun MutableCollection.retainAll(elements: Sequence): Boolean {\n val set = elements.toHashSet()\n if (set.isNotEmpty())\n return retainAll(set)\n else\n return retainNothing()\n}\n\nprivate fun MutableCollection<*>.retainNothing(): Boolean {\n val result = isNotEmpty()\n clear()\n return result\n}\n\n/**\n * Randomly shuffles elements in this mutable list using the specified [random] instance as the source of randomness.\n *\n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.3\")\npublic fun MutableList.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n val copy = this[i]\n this[i] = this[j]\n this[j] = copy\n }\n}\n\n/**\n * Returns a new list with the elements of this list randomly shuffled\n * using the specified [random] instance as the source of randomness.\n */\n@SinceKotlin(\"1.3\")\npublic fun Iterable.shuffled(random: Random): List = toMutableList().apply { shuffle(random) }\n\n",null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;;mBAiGA,mC;uBC+kRA,gD;mBC1hRI,mB;mBCGA,mB;eCxIJ,a;oBCHA,qC;gCC2wCA,yD;oBCnuCI,iC;;;;;;;;;;gBCzCJ,K;aL4NiE,wB;;;kBMoSjE,mC;yBHgrBA,+C;eAOA,wC;;;;;;mBChlCI,gC;sBAaA,mC;;;;;;;;;;;;;;;;;;;;;;;;EG/GJ,kB;IAAA,sB;IAMI,aAAkB,K;G;;;;;;;EANtB,8B;IAAA,6B;MAAA,Y;;IAAA,sB;G;ECOgE,0C;IAAE,OAAA,ECmJE,c;EDnJe,C;EAPnF,mC;IVqqRW,kBAAM,eU/pRE,SV+pRW,OAAb,C;IA6UA,Q;IAAb,wBU5+Re,SV4+Rf,gB;MAAa,WU5+RE,SV4+Rf,M;MACI,WAAY,WD75RsD,WC65RxC,ID75RwC,EWhFhC,EXgFgC,CC65RtD,C;;IU7+RhB,eAA4C,QV8+RrC,WU9+RqC,EAAQ,EAAR,C;IL8hD5B,U;IAAA,SK7hDhB,QL6hDgB,W;IAAhB,OAAgB,gBAAhB,C;MAAgB,2B;MK7hDG,QAAW,aL6hDD,OK7hDC,EAAyB,GAAzB,kCAA8B,4BAA9B,CAAX,C;;EACvB,C;EAIgE,4C;IAAE,OAAA,EC8IE,c;ED9Ie,C;EAFnF,qC;IV2pRW,kBAAM,eU1pRE,SV0pRW,OAAb,C;IA6UA,Q;IAAb,wBUv+Re,SVu+Rf,gB;MAAa,WUv+RE,SVu+Rf,M;MACI,WAAY,WUx+Ra,SVw+RC,IUx+RD,EAAS,EAAT,CVw+Rb,C;;IUx+RhB,eAA4C,QVy+RrC,WUz+RqC,EAAQ,EAAR,C;ILyhD5B,U;IAAA,SKxhDhB,QLwhDgB,W;IAAhB,OAAgB,gBAAhB,C;MAAgB,2B;MKxhDG,QAAW,aLwhDD,OKxhDC,EAAyB,GAAzB,kCAA8B,8BAA9B,CAAX,C;;EACvB,C;EAIgE,4C;IAAE,OAAA,ECyIE,c;EDzIe,C;EAFnF,qC;IVspRW,kBAAM,eUrpRE,SVqpRW,OAAb,C;IA6UA,Q;IAAb,wBUl+Re,SVk+Rf,gB;MAAa,WUl+RE,SVk+Rf,M;MACI,WAAY,WUn+Ra,WVm+RC,IUn+RD,EAAS,EAAT,CVm+Rb,C;;IUn+RhB,eAA4C,QVo+RrC,WUp+RqC,EAAQ,CAAR,C;ILohD5B,U;IAAA,SKnhDhB,QLmhDgB,W;IAAhB,OAAgB,gBAAhB,C;MAAgB,2B;MKnhDG,QAAW,aLmhDD,OKnhDC,EAAyB,GAAzB,kCAA8B,8BAA9B,CAAX,C;;EACvB,C;yGAEA,yB;IAAA,0D;IAAA,sC;IAAA,8C;IAAA,mD;IEoGA,qE;IP+oCA,uF;ID3wCA,uD;IMwBA,qBAesB,yB;MNvCtB,uD;aMuCsB,c;QAAE,ONtC8C,YMsC9C,ENtC8C,C;MMsC5B,C;KAApB,C;IAftB,iD;MACI,WAAW,SAAK,OAAL,GAAY,S;MACvB,cAAc,SAAQ,C;MACtB,qBAAqB,SAAK,OAAL,GAAY,SAAZ,I;ME6GrB,WAAW,eF1G8C,CE0G9C,C;MCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;QDE6B,eF3GiC,WE2GjC,C;;MF3G7B,aE4GO,I;MF1GP,aAAU,CAAV,MAAkB,cAAlB,M;QACI,MAAO,WAAS,MAAL,SAAK,EAAM,qBAAI,SAAJ,GAAoB,YAAC,IAAI,CAAJ,IAAD,EAAU,SAAV,CAApB,CAAN,CAAT,C;;MAEX,IAAI,OAAJ,C;QACI,MAAO,WAAS,MAAL,SAAK,EAAM,kCAAiB,SAAjB,GAAiC,SAAK,OAAtC,CAAN,CAAT,C;;ML8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;MAqEA,Q;MAAA,OKhzCN,MLgzCM,W;MAAb,OAAa,cAAb,C;QAAa,sB;QACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;MKjzChB,ONtCkE,YCw1C3D,WDx1C2D,C;IMwCtE,C;GAjBA,C;EAmBA,wC;IAEY,WJ6F2C,SI7F3C,SJ6FgD,UI7FvC,MJ6FkC,C;II7FrB,eAAU,KAAK,MAAL,I;IAAjC,YJ0F4C,SI1FrB,SJ0F0B,SAAS,QAAd,C;II1FnD,OJsGiD,SAAU,SAAL,GAAc,KAAM,KAAzB,C;EIrGrD,C;EAEA,0C;IAEY,WTwF4C,eSxF5C,STwFkD,yBSxFzC,MTwFyC,CAAN,C;ISxFtB,eAAU,KAAK,MAAL,I;IAAjC,YTqF6C,eSrFtB,STqF4B,gBAAS,QAAT,CAAN,C;ISrFpD,OTiGmD,eAAW,SAAL,KAAc,KAAM,KAApB,CAAN,C;EShGvD,C;EAEA,+B;IAEI,IAAI,SAAK,OAAL,KAAa,KAAM,OAAvB,C;MACI,MAAM,sBAAiB,mDAAjB,C;;IAEW,kBAAd,SFoqBiB,Q;IRqiQjB,kBAAa,eAAa,kBAAb,C;IAgHP,gB;IADb,YAAY,C;IACZ,mD;MAAa,WAAb,iB;mBACI,W;MU1zR2C,cAAO,MV0zRxB,cU1zRwB,EV0zRxB,sBU1zRwB,EV0zRlC,MU1zRkC,C;MV0zRtC,YAAZ,WAAY,EEvuRmC,eCvIgC,OH82R5C,IEvuRuB,KCvIX,GDuIoB,OAAM,KCvIM,CDuIhC,CFuuRnC,C;;IU1zRhB,ONzDkE,YJo3R3D,WIp3R2D,C;EM0DtE,C;EAEA,0C;IAE2B,kBAAX,UAAL,SAAK,EAAQ,CAAR,C;ILmtCL,kBAAM,eAAa,qCAAwB,EAAxB,CAAb,C;IAqEA,Q;IAAA,6B;IAAb,OAAa,cAAb,C;MAAa,sB;MACT,WAAY,WKzxCgB,QLyxCF,IKzxCE,EAAQ,EAAR,CLyxChB,C;;IKzxChB,ON9DkE,YCw1C3D,WDx1C2D,C;EM+DtE,C;EAI6C,gC;IACjC,YAAM,Y;IAAV,IJtB8D,YAAiB,CJkKhD,SQ5I3B,ER4IqC,KAAL,GAAiB,GAAtB,CIlKgD,MAAjB,EJAe,KIAc,KAA7B,CIsB1D,KAAJ,C;MAAA,OACI,MAAO,SAAH,EAAG,EAAS,EAAT,C;;;MADX,OAGO,SAAH,EAAG,EAAS,EAAT,C;;EAEX,C;EARJ,gC;IAEI,OAAY,eAAL,SAAK,EAAyB,EAAzB,kCAA6B,kBAA7B,C;EAOhB,C;;;;;;;;;;;;;;;;;2CIhDI,0D;IAAgC,mB;MAAA,MAAe,I;IAAM,0B;MAAA,aAAkB,mB;WAAvE,6H;G;2CAEA,2D;IACI,4B;MAAA,eChCuC,E;;IDiCvC,mB;MAAA,MCjCuC,E;;IDkCvC,0B;MAAA,aAAkB,mB;WAHtB,+H;G;;;;;;EJLJ,qBAesB,yB;INvCtB,uD;WMuCsB,c;MAAE,ONtC8C,YMsC9C,ENtC8C,C;IMsC5B,C;GAApB,C;EMtBT,kC;IAET,+B;IAFU,mB;MAAA,MAAyB,I;IAAM,0B;M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YJigS3D,aIjgS2D,C;;;MYoI3C,a;IAAf,gBAAe,aAAf,mBDvImC,E;IC0InC,OAAO,oBAAsB,KAAtB,EAAmC,QAAnC,C;EAEX,C;uDAEA,yC;IAYkB,UAeQ,MAfR,EAoBC,MApBD,EA2BQ,M;IN1J9B,WMwH6B,YNxHb,OAAL,GMwHuC,G;INvHlD,cAAc,SAAQ,C;IACtB,qBMsH6B,YNtHH,OAAL,GMsH6B,GNtH7B,I;IE6GrB,WAAW,eF1G8C,CE0G9C,C;ICDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;MDE6B,eF3GiC,WE2GjC,C;;IF3G7B,aE4GO,I;IF1GP,aAAU,CAAV,MAAkB,cAAlB,M;MACI,MAAO,WAAS,MMgHS,YNhHT,EAAM,qBMgHwB,GNhHxB,GAAoB,YAAC,IAAI,CAAJ,IAAD,EMgHI,GNhHJ,CAApB,CAAN,CAAT,C;;IAEX,IAAI,OAAJ,C;MACI,MAAO,WAAS,MM6GS,YN7GT,EAAM,kCM6GwB,GN7GxB,GM6GG,YN7GmC,OAAtC,CAAN,CAAT,C;;IL8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;IAqEA,U;IAAA,SKhzCN,MLgzCM,W;IAAb,OAAa,gBAAb,C;MAAa,wB;MACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;IWvsCR,qBZhJ0D,YCw1C3D,WDx1C2D,C;IYkJ1D,QAAQ,SR2kBQ,Q;IQzkBT,cAAE,CAAF,C;IAAA,YAAS,6C;IAAT,afFoC,eAAW,UAAL,KAAc,KAAM,KAApB,CAAN,C;IeEpC,cfdqC,eAAM,CAyJrB,eAAW,oBe3IN,GAAI,Of2IE,CAAX,CAzJqB,iBecO,CfdP,CAAN,C;IecrC,afFoC,eAAW,WAAL,KAAc,OAAM,KAApB,CAAN,C;IeEpC,cf2IsB,eAAW,oBe3IwB,Uf2IxB,CAAX,C;Ie3I7B,EAAE,CAAF,IfF2C,eAAW,WAAL,KAAc,OAAM,KAApB,CAAN,C;IeK7B,IAAI,GhBqsMnB,YAAQ,CgBrsMO,C;MACV,IAAI,chBosMT,YAAQ,CgBpsMH,C;QTzJ2C,YAAa,QS0J9C,CT1J8C,C;QAIvD,U;QAAA,SAAA,KAAM,OAAN,GAAa,CAAb,I;QAAb,eAAU,CAAV,uB;UAJuD,cAAa,QS2JnC,GT3JmC,C;UAIvD,U;UAAA,SAAA,OAAM,OAAN,GAAa,CAAb,I;UAAb,eAAU,CAAV,uB;YACI,QAAM,GAAN,ISuJoB,iB;;UTvJpB,MAAM,GAAN,IAEG,O;;QSmJS,OTnJT,K;;;QSyJS,qB;;;;MAGJ,QAAQ,kBAAW,GAAX,CAAR,SAA0B,cAA1B,C;;IAXJ,kB;IAcA,IAAI,OAAQ,OAAR,GAAe,CAAnB,C;MACsB,SAAA,OAAQ,OAAR,GAAe,CAAf,I;MAAlB,eAAU,CAAV,sB;QAC2E,gBAAvE,sBAAS,CAAT,EAAY,QAAQ,GAAR,CAAZ,EAAgD,aAAvB,CAAC,MAAI,CAAJ,IAAD,IAAU,GAAV,IAAuB,CAAhD,EAAgE,KAAhE,C;QR2WhB,UAAU,SAAV,EQ3WgG,CR2WhG,EAD+F,CAC/F,EADoH,CACpH,EADuI,gBACvI,C;;;IQvWuB,QAAM,OAAQ,OAAd,C;WACX,C;QAAK,U;QAAL,K;WACA,C;QAA+B,SAA1B,QAAQ,OAAQ,OAAR,GAAe,CAAf,IAAR,CAA0B,O;QAA/B,K;cACQ,WAAC,OAAQ,OAAR,GAAe,CAAf,IAAD,IAAqB,GAArB,QAAmC,QAAQ,OAAQ,OAAR,GAAe,CAAf,IAAR,CAA0B,OAA7D,I;QAHG,K;;IAAf,qB;IAOsB,IhBkvMvB,EgBlvM2B,OhB0qM3B,YAAQ,CAwER,CgBlvMuB,C;MAClB,2BAAW,QAAQ,OAAQ,OAAR,GAAe,CAAf,IAAR,CAAX,C;;;MTpL2C,cAAa,QSsL3C,ETtL2C,C;MAIvD,U;MAAA,SAAA,OAAM,OAAN,GAAa,CAAb,I;MAAb,eAAU,CAAV,uB;QACI,QAAM,GAAN,ISiL2B,iB;;MAAnB,ST/KL,O;;IS4KC,4B;IAM4D,kBAA5D,sBAAS,CAAT,EAAY,eAAZ,EAAsC,aAAT,QAAS,CAAtC,EAAsD,IAAtD,C;IR0VR,UAAU,WAAV,EQ1V6E,CR0V7E,EAD+F,CAC/F,EADoH,CACpH,EADuI,kBACvI,C;IQvVQ,OAAO,oBAAa,CAAb,C;EACX,C;+CAEA,a;IhB0+QG,kBAAM,egBz+QE,ChBy+QW,OAAb,C;IA6UA,Q;IAAb,wBgBtzRe,ChBszRf,gB;MAAa,WgBtzRE,ChBszRf,M;mBACI,W;MgBrzRa,YAAO,wC;MAAQ,ad4FM,eAAW,ODjFZ,CAhEc,eD02RrB,IC12RgC,KAAL,KAAc,KAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;Mc3FrB,YfzDmC,eD62RtB,IC72R4B,yBeyDlC,CfzDkC,CAAN,C;MeyDnC,cAAa,wC;MAAQ,ad2FA,eAAW,ODjFZ,CAhEc,eAAW,UAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;Mc1FrB,cf1DmC,eD62RtB,IC72R4B,yBe0DlC,Ef1DkC,CAAN,C;Me0DnC,cAAc,wC;MAAQ,ad0FD,eAAW,ODjFZ,CAhEc,eAAW,YAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;MczFrB,cf3DmC,eD62RtB,IC72R4B,yBe2DlC,Ef3DkC,CAAN,C;Me2DnC,cAAc,wC;MAAQ,adyFD,eAAW,ODjFZ,CAhEc,eAAW,YAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;McxFrB,cf5DmC,eD62RtB,IC72R4B,yBe4DlC,Ef5DkC,CAAN,C;Me4DnC,cAAc,wC;MAAQ,adwFD,eAAW,ODjFZ,CAhEc,eAAW,YAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;McvFrB,cf7DmC,eD62RtB,IC72R4B,yBe6DlC,Ef7DkC,CAAN,C;Me6DnC,cAAc,wC;MAAQ,aduFD,eAAW,ODjFZ,CAhEc,eAAW,YAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;MctFrB,cf9DmC,eD62RtB,IC72R4B,yBe8DlC,Ef9DkC,CAAN,C;Me8DnC,cAAc,wC;MAAQ,adsFD,eAAW,ODjFZ,CAhEc,eAAW,YAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,C;McrFrB,cf/DmC,eD62RtB,IC72R4B,yBe+DlC,Ef/DkC,CAAN,C;Me+DnC,cAAc,wC;MhB8yRf,YAAZ,WAAY,EgBtzRJ,yDd6F0B,eAAW,ODjFZ,CAhEc,eAAW,YAAL,KAAc,OAAM,KAApB,CAAN,CAgEd,MCiFY,SAAX,Cc7F1B,ChBszRI,C;;IKp0PT,oBAAU,kB;IAOD,U;IAAA,SL8zPT,WK9zPS,W;IAAhB,OAAgB,gBAAhB,C;MAAgB,2B;MACZ,WW/+BW,SX++BU,OW/+BV,C;MXg/BC,OAAZ,aAAY,EAAO,IAAP,C;;IW5/BR,OZ/L0D,YC6rC3D,aD7rC2D,C;EY6M9D,C;6CAEA,oB;IACI,IAAI,QAAS,OAAT,KAAiB,GAArB,C;MACI,OAAO,Q;;IAGX,IAAI,QAAS,OAAT,GAAgB,GAApB,C;MACI,MAAM,2BAAsB,6BAAtB,C;;ITtNqC,YAAa,QSyN/C,GTzN+C,C;IAIvD,Q;IAAA,OAAA,KAAM,OAAN,GAAa,CAAb,I;IAAb,aAAU,CAAV,iB;MACe,e;MSsNC,IAAG,CAAH,ITtNI,CSsNJ,ITtNI,CSsNJ,GAAoB,eAApB,C;QADJ,cACgC,STtNxB,CSsNwB,C;;;QADhC,cAEY,iB;;MTvNpB,MAAM,CAAN,e;;ISoNI,OTlND,K;ESyNH,C;;;;;;;EA7MJ,yC;IAAA,wC;MAAA,uB;;IAAA,iC;G;;SAwNA,Y;MAAA,oC;K;;qCAgBA,gB;IACI,IAAI,IhBimMD,YAAQ,CgBjmMX,C;MACI,MAAM,sBAAiB,qGAAjB,C;;IAIN,0BAAgB,IAAK,OAArB,QAA4B,GAA5B,C;MAA2C,sBAAe,IAAf,EAAqB,kBAArB,C;SAC3C,0BAAgB,IAAK,OAArB,SAA6B,GAA7B,C;MNzOR,WM0O0B,IN1OV,OAAL,GM0O4B,G;MNzOvC,cAAc,SAAQ,C;MACtB,qBMwO0B,INxOA,OAAL,GMwOkB,GNxOlB,I;ME6GrB,WAAW,eF1G8C,CE0G9C,C;MCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;QDE6B,eF3GiC,WE2GjC,C;;MF3G7B,aE4GO,I;MF1GP,aAAU,CAAV,MAAkB,cAAlB,M;QACI,MAAO,WAAS,MMkOM,INlON,EAAM,qBMkOa,GNlOb,GAAoB,YAAC,IAAI,CAAJ,IAAD,EMkOP,GNlOO,CAApB,CAAN,CAAT,C;;MAEX,IAAI,OAAJ,C;QACI,MAAO,WAAS,MM+NM,IN/NN,EAAM,kCM+Na,GN/Nb,GM+NA,IN/NsC,OAAtC,CAAN,CAAT,C;;ML8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;MAqEA,Q;MAAA,OKhzCN,MLgzCM,W;MAAb,OAAa,cAAb,C;QAAa,sB;QACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;MWrlCJ,cZlQsD,YCw1C3D,WDx1C2D,C;MJkqVlD,U;MAAhB,4BgB/5UY,OhB+5UZ,kB;QAAgB,cgB/5UJ,OhB+5UZ,Q;QgB95UgB,IAAI,sBhB85US,OgB95Ua,OAAtB,QAA6B,GAAjC,C;UACI,sBhB65US,OgB75UT,EAAsB,kBAAtB,C;;;UR6QpB,URgpU6B,OQhpU7B,EQ1QsC,WR0QtC,EQzQ4C,kBRyQ5C,EQxQqC,CRwQrC,EQvQmC,MAAc,kBAAd,IRuQnC,C;UQrQoB,yCAAW,GAAX,C;UACA,oBAAa,WAAb,C;UT/QmC,YAAa,QSgR1B,GThR0B,C;UAIvD,U;UAAA,SAAA,KAAM,OAAN,GAAa,CAAb,I;UAAb,eAAU,CAAV,uB;YACe,e;YS6Q0B,U;YAAA,ShBi5UZ,OgBj5UkB,OAAN,IAAc,GAAd,GAA4B,kBAA5B,K;YAAb,IAAI,CAAJ,IT7QR,GS6QQ,IT7QR,GS6QQ,U;cADJ,chBk5UK,OgBh5UG,CT9QZ,GS8QkB,IAAM,GAAN,GAAoB,kBAApB,KAAN,C;;;cAFR,cAKQ,iB;;YTjR5B,MAAM,GAAN,e;;US2QgB,cTzQb,K;USoRa,qBhBw4US,OgBx4Ua,OAAN,IAAc,GAAd,GAA4B,kBAA5B,K;;;;EAOpC,C;qCACA,gB;IAEoC,gBAApB,kBAAL,IAAK,C;IhB84QT,kBAAM,eAAa,gBAAb,C;IA6UA,Q;IAAb,iD;MAAa,WAAb,e;MACI,WAAY,WEvwRsB,eFuwRR,IEvwRQ,CFuwRtB,C;;IgB5tRZ,oBZpS8D,YJigS3D,WIjgS2D,CYoS9D,C;EACJ,C;uCAEA,wB;IR2OA,UQ1OI,KR0OJ,EQ1OiC,WR0OjC,EQ1O6D,KR0O7D,EQ1OiF,CR0OjF,EQ1O+F,KAAM,OR0OrG,C;IQzOI,0CAAiB,KAAM,OAAvB,I;EACJ,C;qCAEA,iB;IACI,SAAI,iDAAS,MAAT,EAAY,KAAZ,EAAmB,YAAnB,EAA4B,KAA5B,C;EA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,EAAd,C;IAArD,OZ0CyC,SAAU,YAAL,GAAc,OAAM,KAAzB,C;EYzC7C,C;oCAEA,mB;IACa,WZgCgC,SYhChC,CZgC0C,KAAL,GYhC/B,CZgCmD,KAAzB,C;IYhCjB,YAAM,c;IAAtB,cZgCiC,SAAU,CAMV,SYtCjB,CZsC2B,KAAL,GAAc,KAAM,KAAzB,CANU,MAAL,GYhCD,CZgCqB,KAAzB,C;IYhCzC,OZsCyC,SAAU,SAAL,GAAc,OAAM,KAAzB,C;EYrC7C,C;qCAEA,mB;IACc,WZ4B+B,SY5B/B,CZ4ByC,KAAL,GY5B9B,CZ4BkD,KAAzB,C;IY5BhC,YZ4BgC,SY5BjB,CZ4B2B,KAAL,GY5BhB,CZ4BoC,KAAzB,C;IY5BhC,aZkCgC,SAAU,SAAL,GAAc,KAAM,KAAzB,C;IYlChC,cZ4BgC,SY5BH,CZ4Ba,KAAL,GY5BF,CZ4BsB,KAAzB,C;IY5BzC,OZkCyC,SAAU,WAAL,GAAc,OAAM,KAAzB,C;EYjC7C,C;6CAEA,iB;IXpHmD,YAAa,QWqHxC,EXrHwC,C;IAIvD,Q;IAAA,OAAA,KAAM,OAAN,GAAa,CAAb,I;IAAb,aAAU,CAAV,iB;MACe,e;MWkHC,IAAG,CAAH,IXlHI,CWkHJ,IXlHI,CWkHJ,GAAW,EAAX,C;QACqB,aZec,SAAK,CJ0ErB,SgBzFE,MXnHjB,CWmHwB,GAAK,CAAL,IAAP,ChByFQ,KAAL,GAAiB,GAAtB,CI1EqB,UYfU,EZef,C;QYff,YZee,SAAK,CJ0ErB,SgBxFN,MAAM,CXpHf,CWoHgB,GAAK,CAAL,IAAD,IAAW,CAAX,IAAN,ChBwFgB,KAAL,GAAiB,GAAtB,CI1EqB,UYdM,EZcX,C;QYff,aZvDiB,SAAU,WAAK,GAAK,KAAM,KAAX,IAAf,C;QYuDjB,cZee,SAAK,CJ0ErB,SgBvFN,MAAM,CXrHf,CWqHgB,GAAK,CAAL,IAAD,IAAW,CAAX,IAAN,ChBuFgB,KAAL,GAAiB,GAAtB,CI1EqB,UYbM,CZaX,C;QYff,aZvDiB,SAAU,WAAK,GAAK,OAAM,KAAX,IAAf,C;QYuDjB,chByFD,SgBtFN,MAAM,CXtHf,CWsHgB,GAAK,CAAL,IAAD,IAAW,CAAX,IAAN,ChBsFgB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6GrB,WAAW,eF1G8C,CE0G9C,C;MCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;QDE6B,eF3GiC,WE2GjC,C;;MF3G7B,aE4GO,I;MF1GP,aAAU,CAAV,MAAkB,cAAlB,M;QACI,MAAO,WAAS,MQoNM,IRpNN,EAAM,qBQoNa,ERpNb,GAAoB,YAAC,IAAI,CAAJ,IAAD,EQoNP,ERpNO,CAApB,CAAN,CAAT,C;;MAEX,IAAI,OAAJ,C;QACI,MAAO,WAAS,MQiNM,IRjNN,EAAM,kCQiNa,ERjNb,GQiNA,IRjNsC,OAAtC,CAAN,CAAT,C;;ML8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;MAqEA,Q;MAAA,OKhzCN,MLgzCM,W;MAAb,OAAa,cAAb,C;QAAa,sB;QACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;ManmCJ,cdpPsD,YCw1C3D,WDx1C2D,C;MJkqVlD,U;MAAhB,4BkB76UY,OlB66UZ,kB;QAAgB,ckB76UJ,OlB66UZ,Q;QkB56UgB,IAAI,sBlB46US,OkB56Ua,OAAtB,QAA6B,EAAjC,C;UACI,sBlB26US,OkB36UT,EAAsB,kBAAtB,C;;;UV2RpB,URgpU6B,OQhpU7B,EUxRsC,WVwRtC,EUvR4C,kBVuR5C,EUtRqC,CVsRrC,EUrRmC,KAAsB,kBAAtB,IVqRnC,C;UUnRoB,8BAAW,EAAX,I;UACA,oBAAa,WAAb,C;UXjQmC,YAAa,QWkQ1B,EXlQ0B,C;UAIvD,U;UAAA,SAAA,KAAM,OAAN,GAAa,CAAb,I;UAAb,eAAU,CAAV,uB;YACe,e;YW+P0B,U;YAAA,SlB+5UZ,OkB/5UkB,OAAN,IAAc,EAAd,GAAoC,kBAApC,K;YAAb,IAAI,CAAJ,IX/PR,GW+PQ,IX/PR,GW+PQ,U;cADJ,clBg6UK,OkB95UG,CXhQZ,GWgQkB,IAAM,EAAN,GAA4B,kBAA5B,KAAN,C;;;cAFR,cAKQ,iB;;YXnQ5B,MAAM,GAAN,e;;UW6PgB,cX3Pb,K;UWsQa,qBlBs5US,OkBt5Ua,OAAN,IAAc,EAAd,GAAoC,kBAApC,K;;;;EAMpC,C;oCAEA,iB;IACI,QAAQ,6CAAY,KAAZ,C;IACE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;IAAb,iD;MAAa,WAAb,e;MACI,WAAY,WEvwRsB,eFuwRR,IEvwRQ,CFuwRtB,C;;ImB5sRZ,OAAO,oBfpTuD,YJigS3D,WIjgS2D,CeoTvD,C;EACX,C;oCAEA,gB;IACI,IAAI,InBoiMD,YAAQ,CmBpiMX,C;MACI,MAAM,sBAAiB,qGAAjB,C;;IAIN,0BAAgB,IAAK,OAArB,QAA4B,GAA5B,C;MAAmD,sBAAe,IAAf,EAAqB,kBAArB,C;SACnD,0BAAgB,IAAK,OAArB,SAA6B,GAA7B,C;MTtSR,WSuS0B,ITvSV,OAAL,GSuS4B,G;MTtSvC,cAAc,SAAQ,C;MACtB,qBSqS0B,ITrSA,OAAL,GSqSkB,GTrSlB,I;ME6GrB,WAAW,eF1G8C,CE0G9C,C;MCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;QDE6B,eF3GiC,WE2GjC,C;;MF3G7B,aE4GO,I;MF1GP,aAAU,CAAV,MAAkB,cAAlB,M;QACI,MAAO,WAAS,MS+RM,IT/RN,EAAM,qBS+Ra,GT/Rb,GAAoB,YAAC,IAAI,CAAJ,IAAD,ES+RP,GT/RO,CAApB,CAAN,CAAT,C;;MAEX,IAAI,OAAJ,C;QACI,MAAO,WAAS,MS4RM,IT5RN,EAAM,kCS4Ra,GT5Rb,GS4RA,IT5RsC,OAAtC,CAAN,CAAT,C;;ML8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;MAqEA,Q;MAAA,OKhzCN,MLgzCM,W;MAAb,OAAa,cAAb,C;QAAa,sB;QACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;McxhCJ,cf/TsD,YCw1C3D,WDx1C2D,C;MJkqVlD,U;MAAhB,4BmBl2UY,OnBk2UZ,kB;QAAgB,cmBl2UJ,OnBk2UZ,Q;QmBj2UgB,IAAI,sBnBi2US,OmBj2Ua,OAAtB,QAA6B,GAAjC,C;UACI,sBnBg2US,OmBh2UT,EAAsB,kBAAtB,C;;;UXgNpB,URgpU6B,OQhpU7B,EW7MsC,WX6MtC,EW5M4C,kBX4M5C,EW3MqC,CX2MrC,EW1MmC,MAAsB,kBAAtB,IX0MnC,C;UWxMoB,8BAAW,GAAX,I;UACA,oBAAa,WAAb,C;UZ5UmC,YAAa,QY6U1B,GZ7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,CAAV,C;MAA7B,clBIuC,eCvIgC,ODuIrB,YCvIX,GDuIoB,OAAM,KCvIM,CDuIhC,C;MkBJvC,cAAyD,4BAAU,WAAM,CAAN,EAAS,CAAT,CAAV,C;MAAzD,elBIuC,eCvIgC,ODuIrB,YCvIX,GDuIoB,OAAM,KCvIM,CDuIhC,C;MkBJvC,eAAqF,6BAAU,WAAM,CAAN,EAAS,CAAT,CAAV,C;MADzF,OAAc,CAAd,IlBK2C,eCvIgC,ODuIrB,aCvIX,GDuIoB,QAAM,KCvIM,CDuIhC,C;;IMsYnD,UYxYI,UZwYJ,EYxYwB,UZwYxB,EAD+F,CAC/F,EADoH,CACpH,EYxYI,UZuYmI,OACvI,C;EYvYA,C;yCAEA,yB;IACI,OlBF+C,eCvIgC,OiByIxE,KlBFmD,KCvIX,GiByI9B,MlBFwD,KCvIM,CDuIhC,C;EkBGnD,C;8CAEA,yB;IAKiB,IACL,I;IALR,aAAmB,W;IACnB,elB6D+B,SkB7DhB,KlB6D0B,KAAL,GAAiB,GAAtB,C;IkB5D/B,gBlB4D+B,SkB5Df,MlB4DyB,KAAL,GAAiB,GAAtB,C;IkB3D/B,YAAkB,W;IAClB,aAAU,CAAV,OAAa,CAAb,M;MACQ,qB;MAAA,YAAc,W;MAAlB,IAAI,QdXqC,SAAU,UAAL,GAAc,KAAM,KAAzB,CcWrC,wBAAuB,WAAvB,QAAJ,C;QACa,oB;QAAA,cAAW,Q;QAApB,SdNqC,SAAU,YAAL,GAAc,OAAM,KAAzB,C;;McQjC,sB;MAAA,cAAa,a;MAArB,QddyC,SAAU,YAAL,GAAc,OAAM,KAAzB,C;McezC,WdrB2C,ScqBhC,QdrBqC,ScqBxB,CdrBmB,C;McsB3C,IAAI,6BAAS,aAAT,QAAJ,C;QACe,sB;QAAA,cAAa,Y;QAAxB,WdXqC,SAAU,YAAL,GAAc,OAAM,KAAzB,C;;McazC,YdtB2C,ScsB/B,SdtBoC,UcsBtB,CdtBiB,C;McuBhC,sB;MAAA,cAAa,a;MAAxB,WdpByC,SAAU,YAAL,GAAc,OAAM,KAAzB,C;;IcsB7C,OlB+GiC,eAAW,OkB/GrC,MdyC0B,KJsEW,CAAX,C;EkB9GrC,C;8BAEA,Y;IAEI,aAAU,CAAV,MAAkB,CAAlB,M;MACI,sBAA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C,EfhE2C,C;MAIvD,Q;MAAA,OAAA,KAAM,OAAN,GAAa,CAAb,I;MAAb,aAAU,CAAV,iB;QACI,MAAM,CAAN,IL6QiC,eAAW,OoBjNhC,EpBiNgC,CAAX,C;;MoBlNzB,OfzDL,K;;Ie8DC,IAAI,QAAS,OAAT,GAAgB,EAApB,C;MACI,MAAM,2BAAsB,6BAAtB,C;;IftEqC,cAAa,QeyE/C,EfzE+C,C;IAIvD,U;IAAA,SAAA,OAAM,OAAN,GAAa,CAAb,I;IAAb,eAAU,CAAV,uB;MACe,e;MesEC,IAAY,qBAAZ,kBftEI,GesEJ,E;QADJ,cAC2B,SftEnB,GesEmB,C;;;QAD3B,cpBwMyB,eAAW,mBAAX,C;;MK7QjC,QAAM,GAAN,e;;IeoEI,OflED,O;EeyEH,C;;;;;;;EA1DJ,wC;IAAA,uC;MAAA,sB;;IAAA,gC;G;qCA0EA,gB;IAGQ,0BAAgB,IAAK,OAArB,QAA4B,EAA5B,C;MAA2C,sBAAe,IAAf,EAAqB,kBAArB,C;SAC3C,0BAAgB,IAAK,OAArB,SAA6B,EAA7B,C;MZ3ER,WY4E0B,IZ5EV,OAAL,GY4E4B,E;MZ3EvC,cAAc,SAAQ,C;MACtB,qBY0E0B,IZ1EA,OAAL,GY0EkB,EZ1ElB,I;ME6GrB,WAAW,eF1G8C,CE0G9C,C;MCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;QDE6B,eF3GiC,WE2GjC,C;;MF3G7B,aE4GO,I;MF1GP,aAAU,CAAV,MAAkB,cAAlB,M;QACI,MAAO,WAAS,MYoEM,IZpEN,EAAM,qBYoEa,EZpEb,GAAoB,YAAC,IAAI,CAAJ,IAAD,EYoEP,EZpEO,CAApB,CAAN,CAAT,C;;MAEX,IAAI,OAAJ,C;QACI,MAAO,WAAS,MYiEM,IZjEN,EAAM,kCYiEa,EZjEb,GYiEA,IZjEsC,OAAtC,CAAN,CAAT,C;;ML8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;MAqEA,Q;MAAA,OKhzCN,MLgzCM,W;MAAb,OAAa,cAAb,C;QAAa,sB;QACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;MiBnvCJ,clBpGsD,YCw1C3D,WDx1C2D,C;MJkqVlD,U;MAAhB,4BsB7jVY,OtB6jVZ,kB;QAAgB,csB7jVJ,OtB6jVZ,Q;QsB5jVgB,IAAI,sBtB4jVS,OsB5jVa,OAAtB,QAA6B,EAAjC,C;UACI,sBtB2jVS,OsB3jVT,EAAsB,kBAAtB,C;;;Ud2apB,URgpU6B,OQhpU7B,EcxasC,WdwatC,Ecva4C,kBdua5C,EctaqC,CdsarC,EcramC,KAAc,kBAAd,IdqanC,C;UcnaoB,2B;UAAA,gBAAU,oBAAa,WAAb,C;UCnE9B,SAAK,WAAI,SAAJ,C;UhB7CkD,YAAa,QeiH1B,EfjH0B,C;UAIvD,U;UAAA,SAAA,KAAM,OAAN,GAAa,CAAb,I;UAAb,eAAU,CAAV,uB;YACe,e;Ye8G0B,U;YAAA,StBgjVZ,OsBhjVkB,OAAN,IAAc,EAAd,GAA4B,kBAA5B,K;YAAb,IAAI,CAAJ,If9GR,Ge8GQ,If9GR,Ge8GQ,U;cADJ,ctBijVK,OsB/iVG,Cf/GZ,Ge+GkB,IAAM,EAAN,GAAoB,kBAApB,KAAN,C;;;cAFR,cAKQ,iB;;YflH5B,MAAM,GAAN,e;;Ue4GgB,cf1Gb,K;UeqHa,qBtBuiVS,OsBviVa,OAAN,IAAc,EAAd,GAA4B,kBAA5B,K;;;;EAOpC,C;6BAEA,Y;IAKI,IAAI,qBAAgB,CAApB,C;MACI,sBAAsB,4CAAW,WAAX,C;MACtB,IAAI,eAAgB,OAAhB,GAAuB,EAA3B,C;QZnHR,WYoHyB,eZpHT,OAAL,GYoHsC,E;QZnHjD,cAAc,SAAQ,C;QACtB,qBYkHyB,eZlHC,OAAL,GYkH4B,EZlH5B,I;QE6GrB,WAAW,eF1G8C,CE0G9C,C;QCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;UDE6B,eF3GiC,WE2GjC,C;;QF3G7B,aE4GO,I;QF1GP,aAAU,CAAV,MAAkB,cAAlB,M;UACI,MAAO,WAAS,MY4GK,eZ5GL,EAAM,qBY4GuB,EZ5GvB,GAAoB,YAAC,IAAI,CAAJ,IAAD,EY4GG,EZ5GH,CAApB,CAAN,CAAT,C;;QAEX,IAAI,OAAJ,C;UACI,MAAO,WAAS,MYyGK,eZzGL,EAAM,kCYyGuB,EZzGvB,GYyGD,eZzGuC,OAAtC,CAAN,CAAT,C;;QL8uCJ,kBAAM,eAAa,wBK3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;IAGgD,8B;MAAA,iBAAgC,I;IAC5E,aAAa,WAAO,MAAP,8BAA6B,cAA7B,C;IACb,MAAO,iBAAQ,IAAR,C;IACP,OAAO,MAAO,U;EAClB,C;;;;;;;EAjCJ,wC;IAAA,uC;MAAA,sB;;IAAA,gC;G;qCAmDA,gB;IAGQ,0BAAgB,IAAK,OAArB,QAA4B,EAA5B,C;MAA2C,sBAAe,IAAf,EAAqB,kBAArB,C;SAC3C,0BAAgB,IAAK,OAArB,SAA6B,EAA7B,C;MdzDR,Wc0D0B,Id1DV,OAAL,Gc0D4B,E;MdzDvC,cAAc,SAAQ,C;MACtB,qBcwD0B,IdxDA,OAAL,GcwDkB,EdxDlB,I;ME6GrB,WAAW,eF1G8C,CE0G9C,C;MCDX,iBAAc,CAAd,UHzGyD,CGyGzD,U;QDE6B,eF3GiC,WE2GjC,C;;MF3G7B,aE4GO,I;MF1GP,aAAU,CAAV,MAAkB,cAAlB,M;QACI,MAAO,WAAS,MckDM,IdlDN,EAAM,qBckDa,EdlDb,GAAoB,YAAC,IAAI,CAAJ,IAAD,EckDP,EdlDO,CAApB,CAAN,CAAT,C;;MAEX,IAAI,OAAJ,C;QACI,MAAO,WAAS,Mc+CM,Id/CN,EAAM,kCc+Ca,Ed/Cb,Gc+CA,Id/CsC,OAAtC,CAAN,CAAT,C;;ML8uCJ,kBAAM,eAAa,wBK3uCnB,ML2uCmB,EAAwB,EAAxB,CAAb,C;MAqEA,Q;MAAA,OKhzCN,MLgzCM,W;MAAb,OAAa,cAAb,C;QAAa,sB;QACT,WAAY,WDv1CkD,YCu1CpC,IDv1CoC,CCu1ClD,C;;MmBrwCJ,cpBlFsD,YCw1C3D,WDx1C2D,C;MJkqVlD,U;MAAhB,4BwB/kVY,OxB+kVZ,kB;QAAgB,cwB/kVJ,OxB+kVZ,Q;QwB9kVgB,IAAI,sBxB8kVS,OwB9kVa,OAAtB,QAA6B,EAAjC,C;UACI,sBxB6kVS,OwB7kVT,EAAsB,kBAAtB,C;;;UhB6bpB,URgpU6B,OQhpU7B,EgB1bsC,WhB0btC,EgBzb4C,kBhByb5C,EgBxbqC,ChBwbrC,EgBvbmC,KAAc,kBAAd,IhBubnC,C;UgBrboB,2B;UAAA,gBAAU,oBAAa,WAAb,EAAqB,iBAArB,C;UDjD9B,SAAK,WAAI,SAAJ,C;UCkDe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ACT,OAAO,M;EACX,C;;;;;;wDAlBJ,Y;IAC0C,yB;G;wDAD1C,Y;IAC4E,0B;G;0DAD5E,yC;IAAA,0CAC0C,6DAD1C,EAC4E,gEAD5E,C;G;sDAAA,Y;IAAA,OAC0C,qFAD1C,IAC4E,0DAD5E,O;G;EC3KA,6B;IAAA,e;IAAA,iB;IAAA,uB;G;EAAA,2B;IAAA,8B;K;IAOI,8C;IAAS,8C;G;;EAAT,oC;IAAA,iB;IAAA,4B;G;;EAAS,oC;IAAA,iB;IAAA,4B;G;;;;;;EAPb,uB;IAAA,+D;G;;EAAA,4B;IAAA,a;MAAA,e;QAAA,iC;MAAA,e;QAAA,iC;MAAA,QAAA,6E;;G;;ECAA,gB;IAAA,oB;IAMI,eAAc,C;G;0CACd,kB;InBXuD,YAAa,QmBmB5C,MnBnB4C,C;IAIvD,Q;IAAA,OAAA,KAAM,OAAN,GAAa,CAAb,I;IAAb,aAAU,CAAV,iB;MmBemC,U;MnBd/B,MAAM,CAAN,IL6QiC,eAAW,QwB/Pb,qBxB+Pa,EwB/Pb,6BxB+Pa,UAAX,C;;IwB/PjC,OnBZG,K;EmBaP,C;;;;;;;EAhBJ,4B;IAAA,2B;MAAA,U;;IAAA,oB;G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.meta.js b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.meta.js deleted file mode 100644 index 70cb656..0000000 --- a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto.meta.js +++ /dev/null @@ -1 +0,0 @@ -// Kotlin.kotlin_module_metadata(393729, "multiplatform-crypto", "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"); diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/crypto.kjsm b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/crypto.kjsm deleted file mode 100644 index e0919f985ac7302a159c5358a4847545b25d6eb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 894 zcmZ`!U2obj6m^`$F&7FZT{}qEs^YN^Rm49iT{SjM)5M3=*C==)D%dCl3HI0r_THyy z(*8&H2lkuxxEpZkP&HZh@jd5UpKC&hO$f1YQ{3z%XvTVanQAqkrRwrd=M#iDTg`F} zKPlL#f@fr4TOF7&uxqWpqzTwpY6b4wo6hhZcpa@LGE(65d!Mk3^+M$`1N*(op_<6N z7pak+c2>EZgL{=_5w;GC5?C}X%+S19&SaKOrOKnpP|eds$VwaH$EV$T2qCl>4pnbh7dx)a zgdfnb)LrvOPJ=^nh}FSX533;*-I4?7+><&~oC zTr@GGjzS&NPd4e_oR^LoI%@xMoQgNtC(N7}vmenGr~gc_o26Y5XU}|hFZ7-|KzZ{! zw_7d#n>L&_4OxeB+7p6dmUp`z{NN7v1pb}0I)#Tnc|M$p^7F$ub9M8p-M4!sQ7V|* Pb=BlNa_fOJAjSF%c2T8Y diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/blake2b/blake2b.kjsm b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/blake2b/blake2b.kjsm deleted file mode 100644 index 4ea08375d74bd23195da17b1a9d4fe92a949caba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1925 zcmY*Y-FDkV5SC;~UQcXiqBM!)0!age@)umU;im=KC<%4a{Pf87A-&3x?X{y5TN1Y1 zQ{Ql)7kL0KI2EQ4~d`PovMgU*2v9gB>sM zN1^BMTnAB~OnW#9qhROC9bN6T`tCKaw%{KFGDL-}pz}QKNo&bawgUxpM%SBR_%#`{aE8#ijkKaaf1q>E6XJ=ECAC4np z*prAuA?S8TJlYS&)D|_^^?bK)_k;E|WbGj6bJqv6b} zxZjJeU?C3IqoGG9o6@cvz6trz8*o2z`}L^P_gZ_Q2l;L=9JrCgN8^43nSu8P)YqW8 zpteA5gW3U=kO?q~IMiDQvIBXpF^qi(-A*G&I%Q*@ybkX`p&54E$Zhp`{DR9v{?nLR z=N;jSKCdD$TjOq*?pjFf^y=BR)S&2wA@@b`gr_%skMwdAVMmcWBq`c7k>deR&No`I zVEIHRd2@pV=XBawbi_dyeZl&?98I5|$LF2KB;+IOFBLRYKxYc7w5q7ls$quK4C=J% zXn@HKG)oFu6SJ|^k&)GiZL%B!?L}6R)&*Q7ERPuTa#)u3uC$xdzAx>^(tZ+K9lw$O zQ)z1@rJVVL8C$;^>?TvnR<#PVHKrXu!FS8d(k-pBSSeQX_+HA}kRDRZ#Cv6}QXsoU zcIiJ=Io`z&<_LNGFy(E}c_w~DNl;rAX_Zu(iT5dFRT*xV^^!`vDS3^^zcGz1A8+8N zbH!3!)-+M_96ytUAZ?ZGBE=sHn-tu|M{_0eI8`DkzdIK* z@k>#rrieZ^@GBV-lI8L1nHSe}mM|yS7dMSRnL)$xi%QT!8qx^L$I$Nww=5G21QjT> zlxC|AqIC<2fzt?CP9X{*cT&hRLRL~pg^<-0vPsBV3i+9kQVJrtx0((bTi^OuW7(3qDTeUQV>N5vWoy>$>syR|fyd&E`04Ep3kldR zLp-EN15%7B@jMC1@8S2vULmoc&BUh1+!HmD$6QBSQub$*B(yX?i^+I0JRr7JTRmoY zDDrCB@jCt>D?Fd85Kr@p44L>mPFsunc5>4v)JdTyv!sigqEIM@-x8bVph(;AXj>3l cYySU}O!+s^!>2@`B2rIr-s;~>{3@XQ4^**u=>Px# diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/hash.kjsm b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/hash/hash.kjsm deleted file mode 100644 index 716532e312e22381ace5aca7d24f57bf8b0263b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmZ9G%}(1u5XaZ+^=311%#gO!@u8|Xa7?3IIRy#Hjmo7V5j>DhSTz7nkvT8DE}!J3n25``K6+E^T7by8UkerEDpdqz-_YH+W01yFDQqD^WyFlg+hEi#jW>~wtkGuK6S zqm50rD^q5v(d+Xn*Ch;B`8u)5_pNSj`t8ks^S8CBL99$>LDb+V2aXJcV(3tIkW=R9 zQg%^*R06$_5yPpLD5;SSiaqab6hY0nL2^X0hLQ zPCz{dt=(dG8ycM_Eaq^%#m)TWN1Jx&uLfOXJXT1ZU9!pZHj>p3D@fl{T{WM^2+58hqGL%yhNaaD3;eErJ`fj)spPi#|+;xZWLlJ`H1a`H^&bJ>fMD zx}`AAsCupsrW2If9QaP3wAZP}h8@1(-Vz@ zlOETTdTedA0I*)J?#fPrDtAG6(F-F*tA)EI*FV>l{#6AH6){KPT~Z_?CE!Ny$HSXAk2 z6udye&uz`dt!wy>Og2R)NZ`9s>QKxwzQ^Z%vEti!Ya+}06Qd8J(WpSTWzH4G5&7X| zGK2Z(K)23gFVcx1#eNFolmZS<56*0p+UQ4{sHsUx-Jiz45r32SVXFnUUYY#iY#?L5vraZs3grCcG_s7-+ z?UIpG7Tynn7lNMHzbrV7g=p>JX_Cdo@grJ9#ZJ=a$D_|Qj@^A2DOGds**|P0_j}-} z%mq&+WQQ@brx@8&;nhk{G0FBhC)ra>ve6{@DtRjLB2V$T`7gqFh2qFlVU|%{!_ml7 zG#c55J;k}$Q|AR@PhB80Sc)!_JSAga)>C-dQyNhZXrst^zo}PrQ3i{AnvuaQ`o&M$ chQv(TCL|_oGxtBY4N1PrHtKWR00or)0DFbuLI3~& diff --git a/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/symmetric/symmetric.kjsm b/multiplatform-crypto-delegated/node_modules/multiplatform-crypto/com/ionspin/kotlin/crypto/symmetric/symmetric.kjsm deleted file mode 100644 index c544f70172342b02f430ae3f2dedca29cdb5b7ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4016 zcmb_e&2k&Z5e62E#b5ve&E=0k$R;RAvK+-$AUKvS*|AN4bRbBSY><+v*om{i4#71S zyYT+lVvaf}m8%afmvhSls?)kdEZ?>39 zr822hDvdu4f5zqN#eqM%=J;MXcD!pxe&nJV1jpmZzZM>kMl1@P0sRxD8H}Sj6-W&k zNevlF^GR%GlZ7*v#e$B`+TJS#bZL=f|EM(#&lyqS=5iXf}+jh|z*&+hUi;>km99qI7`B z1BJvAVDqx7s5!J;-w8i-m}_s^Sm(eA!iX9n!+vbKG_}1GyOA??kI~7Z+sParT5im+ z4VR4=0xIGzACGjG<-m3ior9?7e;ra&O%M+|0lKJsJI>>_@5Uo9q$-c?#(h5IkkV1I zNymZXMZ2P75{}uxIY6@W;mIK+oTO!j2O}H=pVZp+<1q^y4$^WTc%d`&n7wyA#^Rik zc7H$%t-JTzcRp`D+S}fx!Z7Z^9$-yx@mfJ=mA{Nj~DuCHr zxV`Dwx8=U`2P;BhJ!FFjbLrT!_xzUY4~{5_JzOEnR3G^^qxueiE~~n;c}71zIKWdD zq@5hPFo=TyJG&o8TvU|js*?;~`U(Tzb@6b17ieK8j;y}R?mEc!;y7SmIer|TAg4LR z!{O7CH6AmMLzU-pp#{h?$|H+0Wv$nNw>v5pWDf5ASaK4Kx8!8qpMQrDsa!genW~Wk9=Qm zzRfQ{<_I6gE`Bb&Ar=0cP44Hf%{Om|R}8t!ykT@m3BJm!WKJ&Q8_kvzec}grAxncp zHaNl*6jfsIBb9+S6Ysh2A#2yC-kVe(_+!MxzKkt5q**^Y#F3CgD?Ds- zU69CEaF>Ka+*yI-w(qrjk3QO?xvg#aqHiNs^Di3JAVqbOf;2wUpy5-43_dfUQ-kP` zt)$Rq!9c6wzCm)36TTeel`SY+Ru+WS!Bp!tWnWgdsq7oV>hMcpO>qW4^Oo|zhgQe) zw(-q#|MzK+78n9T^8Vk)LEG6Fmq*EBS zoH))5>j4nV&+k9k`kwHHQ@tWk^w9k$I+p3>p~zSKwFnEz#uH7a8dhYr+zEo!gGqt;x5h z3D@Sq%03PFg-UG*TY>9ni&wPXzf2O^;Y2Ae0}V= zSDsTt&wvUhm5|OVw=(tob5a$r-w=%~{yzr7;tDERA*mnLlgo3mZ{X|_)(@I~0ZayHx8 z&_m>G{YP1^b1cn;1>RkS-=i(#@I+a(7Wenm8ozMA zo9#~}V!-D-@JTweQNO4(!9QgGOp`y7N{ye|s+mRTC+WDlnXGVFT@wb0qw_2yefBBe zYrycZTC;>-kEw!UJyo*vEX^w{!2w3+n*@ec9lv{|^R3n;aLDm?R=as{@a;n9A8G7v zsv2jnJcn@hmTIcI (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/path-is-absolute/package.json b/multiplatform-crypto-delegated/node_modules/path-is-absolute/package.json deleted file mode 100644 index 78bdef1..0000000 --- a/multiplatform-crypto-delegated/node_modules/path-is-absolute/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_from": "path-is-absolute@^1.0.0", - "_id": "path-is-absolute@1.0.1", - "_inBundle": false, - "_integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "_location": "/path-is-absolute", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "path-is-absolute@^1.0.0", - "name": "path-is-absolute", - "escapedName": "path-is-absolute", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/glob" - ], - "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "_spec": "path-is-absolute@^1.0.0", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/glob", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/path-is-absolute/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Node.js 0.12 path.isAbsolute() ponyfill", - "devDependencies": { - "xo": "^0.16.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/path-is-absolute#readme", - "keywords": [ - "path", - "paths", - "file", - "dir", - "absolute", - "isabsolute", - "is-absolute", - "built-in", - "util", - "utils", - "core", - "ponyfill", - "polyfill", - "shim", - "is", - "detect", - "check" - ], - "license": "MIT", - "name": "path-is-absolute", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-is-absolute.git" - }, - "scripts": { - "test": "xo && node test.js" - }, - "version": "1.0.1" -} diff --git a/multiplatform-crypto-delegated/node_modules/path-is-absolute/readme.md b/multiplatform-crypto-delegated/node_modules/path-is-absolute/readme.md deleted file mode 100644 index 8dbdf5f..0000000 --- a/multiplatform-crypto-delegated/node_modules/path-is-absolute/readme.md +++ /dev/null @@ -1,59 +0,0 @@ -# path-is-absolute [![Build Status](https://travis-ci.org/sindresorhus/path-is-absolute.svg?branch=master)](https://travis-ci.org/sindresorhus/path-is-absolute) - -> Node.js 0.12 [`path.isAbsolute()`](http://nodejs.org/api/path.html#path_path_isabsolute_path) [ponyfill](https://ponyfill.com) - - -## Install - -``` -$ npm install --save path-is-absolute -``` - - -## Usage - -```js -const pathIsAbsolute = require('path-is-absolute'); - -// Running on Linux -pathIsAbsolute('/home/foo'); -//=> true -pathIsAbsolute('C:/Users/foo'); -//=> false - -// Running on Windows -pathIsAbsolute('C:/Users/foo'); -//=> true -pathIsAbsolute('/home/foo'); -//=> false - -// Running on any OS -pathIsAbsolute.posix('/home/foo'); -//=> true -pathIsAbsolute.posix('C:/Users/foo'); -//=> false -pathIsAbsolute.win32('C:/Users/foo'); -//=> true -pathIsAbsolute.win32('/home/foo'); -//=> false -``` - - -## API - -See the [`path.isAbsolute()` docs](http://nodejs.org/api/path.html#path_path_isabsolute_path). - -### pathIsAbsolute(path) - -### pathIsAbsolute.posix(path) - -POSIX specific version. - -### pathIsAbsolute.win32(path) - -Windows specific version. - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/multiplatform-crypto-delegated/node_modules/supports-color/browser.js b/multiplatform-crypto-delegated/node_modules/supports-color/browser.js deleted file mode 100644 index 62afa3a..0000000 --- a/multiplatform-crypto-delegated/node_modules/supports-color/browser.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -module.exports = { - stdout: false, - stderr: false -}; diff --git a/multiplatform-crypto-delegated/node_modules/supports-color/index.js b/multiplatform-crypto-delegated/node_modules/supports-color/index.js deleted file mode 100644 index 62d14de..0000000 --- a/multiplatform-crypto-delegated/node_modules/supports-color/index.js +++ /dev/null @@ -1,131 +0,0 @@ -'use strict'; -const os = require('os'); -const hasFlag = require('has-flag'); - -const env = process.env; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false')) { - forceColor = false; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = true; -} -if ('FORCE_COLOR' in env) { - forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0; -} - -function translateLevel(level) { - if (level === 0) { - return false; - } - - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} - -function supportsColor(stream) { - if (forceColor === false) { - return 0; - } - - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } - - if (hasFlag('color=256')) { - return 2; - } - - if (stream && !stream.isTTY && forceColor !== true) { - return 0; - } - - const min = forceColor ? 1 : 0; - - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows - // release that supports 256 colors. Windows 10 build 14931 is the first release - // that supports 16m/TrueColor. - const osRelease = os.release().split('.'); - if ( - Number(process.versions.node.split('.')[0]) >= 8 && - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - - return 1; - } - - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } - - return min; - } - - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - - if (env.COLORTERM === 'truecolor') { - return 3; - } - - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } - - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - - if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - - if ('COLORTERM' in env) { - return 1; - } - - if (env.TERM === 'dumb') { - return min; - } - - return min; -} - -function getSupportLevel(stream) { - const level = supportsColor(stream); - return translateLevel(level); -} - -module.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) -}; diff --git a/multiplatform-crypto-delegated/node_modules/supports-color/license b/multiplatform-crypto-delegated/node_modules/supports-color/license deleted file mode 100644 index e7af2f7..0000000 --- a/multiplatform-crypto-delegated/node_modules/supports-color/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/supports-color/package.json b/multiplatform-crypto-delegated/node_modules/supports-color/package.json deleted file mode 100644 index 392ddb3..0000000 --- a/multiplatform-crypto-delegated/node_modules/supports-color/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_from": "supports-color@5.4.0", - "_id": "supports-color@5.4.0", - "_inBundle": false, - "_integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "_location": "/supports-color", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "supports-color@5.4.0", - "name": "supports-color", - "escapedName": "supports-color", - "rawSpec": "5.4.0", - "saveSpec": null, - "fetchSpec": "5.4.0" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "_shasum": "1c6b337402c2137605efe19f10fec390f6faab54", - "_spec": "supports-color@5.4.0", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/mocha", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "browser": "browser.js", - "bugs": { - "url": "https://github.com/chalk/supports-color/issues" - }, - "bundleDependencies": false, - "dependencies": { - "has-flag": "^3.0.0" - }, - "deprecated": false, - "description": "Detect whether a terminal supports color", - "devDependencies": { - "ava": "*", - "import-fresh": "^2.0.0", - "xo": "*" - }, - "engines": { - "node": ">=4" - }, - "files": [ - "index.js", - "browser.js" - ], - "homepage": "https://github.com/chalk/supports-color#readme", - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "ansi", - "styles", - "tty", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "support", - "supports", - "capability", - "detect", - "truecolor", - "16m" - ], - "license": "MIT", - "name": "supports-color", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/supports-color.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "5.4.0" -} diff --git a/multiplatform-crypto-delegated/node_modules/supports-color/readme.md b/multiplatform-crypto-delegated/node_modules/supports-color/readme.md deleted file mode 100644 index f6e4019..0000000 --- a/multiplatform-crypto-delegated/node_modules/supports-color/readme.md +++ /dev/null @@ -1,66 +0,0 @@ -# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color) - -> Detect whether a terminal supports color - - -## Install - -``` -$ npm install supports-color -``` - - -## Usage - -```js -const supportsColor = require('supports-color'); - -if (supportsColor.stdout) { - console.log('Terminal stdout supports color'); -} - -if (supportsColor.stdout.has256) { - console.log('Terminal stdout supports 256 colors'); -} - -if (supportsColor.stderr.has16m) { - console.log('Terminal stderr supports 16 million colors (truecolor)'); -} -``` - - -## API - -Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported. - -The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag: - -- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors) -- `.level = 2` and `.has256 = true`: 256 color support -- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors) - - -## Info - -It obeys the `--color` and `--no-color` CLI flags. - -Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks. - -Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively. - - -## Related - -- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module -- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right - - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Josh Junon](https://github.com/qix-) - - -## License - -MIT diff --git a/multiplatform-crypto-delegated/node_modules/wrappy/LICENSE b/multiplatform-crypto-delegated/node_modules/wrappy/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/multiplatform-crypto-delegated/node_modules/wrappy/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/multiplatform-crypto-delegated/node_modules/wrappy/README.md b/multiplatform-crypto-delegated/node_modules/wrappy/README.md deleted file mode 100644 index 98eab25..0000000 --- a/multiplatform-crypto-delegated/node_modules/wrappy/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# wrappy - -Callback wrapping utility - -## USAGE - -```javascript -var wrappy = require("wrappy") - -// var wrapper = wrappy(wrapperFunction) - -// make sure a cb is called only once -// See also: http://npm.im/once for this specific use case -var once = wrappy(function (cb) { - var called = false - return function () { - if (called) return - called = true - return cb.apply(this, arguments) - } -}) - -function printBoo () { - console.log('boo') -} -// has some rando property -printBoo.iAmBooPrinter = true - -var onlyPrintOnce = once(printBoo) - -onlyPrintOnce() // prints 'boo' -onlyPrintOnce() // does nothing - -// random property is retained! -assert.equal(onlyPrintOnce.iAmBooPrinter, true) -``` diff --git a/multiplatform-crypto-delegated/node_modules/wrappy/package.json b/multiplatform-crypto-delegated/node_modules/wrappy/package.json deleted file mode 100644 index e750638..0000000 --- a/multiplatform-crypto-delegated/node_modules/wrappy/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "_from": "wrappy@1", - "_id": "wrappy@1.0.2", - "_inBundle": false, - "_integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "_location": "/wrappy", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "wrappy@1", - "name": "wrappy", - "escapedName": "wrappy", - "rawSpec": "1", - "saveSpec": null, - "fetchSpec": "1" - }, - "_requiredBy": [ - "/inflight", - "/once" - ], - "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "_spec": "wrappy@1", - "_where": "/home/ionspin/Projects/Future/kotlin-multiplatform-crypto/crypto/src/jsMain/npm/node_modules/inflight", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/npm/wrappy/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Callback wrapping utility", - "devDependencies": { - "tap": "^2.3.1" - }, - "directories": { - "test": "test" - }, - "files": [ - "wrappy.js" - ], - "homepage": "https://github.com/npm/wrappy", - "license": "ISC", - "main": "wrappy.js", - "name": "wrappy", - "repository": { - "type": "git", - "url": "git+https://github.com/npm/wrappy.git" - }, - "scripts": { - "test": "tap --coverage test/*.js" - }, - "version": "1.0.2" -} diff --git a/multiplatform-crypto-delegated/node_modules/wrappy/wrappy.js b/multiplatform-crypto-delegated/node_modules/wrappy/wrappy.js deleted file mode 100644 index bb7e7d6..0000000 --- a/multiplatform-crypto-delegated/node_modules/wrappy/wrappy.js +++ /dev/null @@ -1,33 +0,0 @@ -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -}

      Build Status Coverage Status FOSSA Status Gitter OpenCollective OpenCollective -